标签: delphi-xe2

设计师如何设计出firemonkey风格

Firemonkey使我们能够为我们的应用程序添加样式,矢量图形,位图,效果,动画等.但我不是设计师,所以我需要雇一个来做这些奇特的工作.但据我所知,所有的设计工作都在IDE中完成.

是否有一种简单的方法可以让设计人员处理项目而无需拥有Delphi XE2的副本和源代码的完整副本?

(是的,他们可以编辑.style文件,但这不完全是视觉或方便).

delphi styles delphi-xe2 firemonkey

19
推荐指数
1
解决办法
4153
查看次数

减少exe文件

使用Delphi(或者通常是任何工具,如果存在的话),是否可以减小exe文件的大小,删除所有未使用但存在的代码?
(例如,存在但从不调用的函数或过程).
我记得使用Pascal,使用unit(没有对象),编译器只包含真正使用的过程和函数,并将从最终的exe中删除单元中未使用的例程.

使用Object-pascal,我记得在Delphi 1中,一个对象的所有成员都包含在exe中;
有什么变化,直到Delphi-XE2?

delphi exe file delphi-xe2

19
推荐指数
2
解决办法
9869
查看次数

需要控件和对象之间的双向LiveBindings

在Delphi XE2 LiveBindings中,我需要将任何类型的VCL控件绑定到任意(非组件)对象上的任何类型的属性.我可以单向做到这一点.但我需要双向进行.

假设我想将TPerson.PersonName:string绑定到TEdit.Text.

我现在拥有的很简单.

  • 创建一个新的VCL应用程序,添加一个TBindScope,TBindingsList,TEdit.
  • 创建名为person1的TPerson实例.
  • 使用BindingList,添加TBindExpression属性.
  • 使用BindExpression
    • 将ControlComponent设置为Edit1
    • 将ControlExpression设置为'Text'
    • 将SourceComponent设置为BindScope1
    • 将SourceExpression设置为PersonName
  • 添加一个按钮; 到我添加的Click事件:BindScope1.DataObject:= person1;
  • 添加一个按钮; 我添加的Click事件(只有一个是必要的,但直到它工作,我会尝试它们两个).
    • TBindings.Notify(发件人,'');
    • BindingsList1.Notify(sender,'');

第一个按钮在第一个方向上绑定.第二个按钮似乎永远不会将值写回person1.PersonName属性.

我已经尝试了通知代码,绑定方向,绑定类型,表达式,SourceMember等.有时我在bindexpression配置中得到运行时错误,其余时间绑定只是单向的.

我希望单击第二个按钮,看到写入person1.PersonName的Edit1.Text的内容.

如果我必须从代​​码中完成所有这些,我会考虑它并且这样的例子是受欢迎的,但我真的想通过设计师尽可能地做到这一点.

请注意,我对两个控件之间的绑定不感兴趣.

另请注意,我已经下载并检查了LiveBinding示例项目,但没有找到任何执行此操作的项目.如果这是错误的,请在指出时具体说明.我也读过DocWiki.除了使用DB LiveBinding控件之外,它不包括双向绑定.我没有使用DB LiveBinding控件,也没有使用DataSet.所以,除非你能向我解释为什么要使用它们,否则我不需要任何有关这些控件的信息.

delphi delphi-xe2 livebindings

19
推荐指数
1
解决办法
5851
查看次数

如何更改RAD Studio(2010及更高版本)IDE格式化代码的方式?

begin当我使用该Format Source选项时,如何配置RAD Studio IDE以使用相同行或下一行格式化我的代码?

最常见的偏好之一是begin- 在同一条线上或它自己的线上的位置.如何设置Delphi begin在Delphi XE2中使用一行或另一行格式化源代码?这是指当你去Edit>时Format Source

delphi code-formatting delphi-xe2

19
推荐指数
1
解决办法
1913
查看次数

TComponent中的观察者属性

您好Delphi XE2 TComponent有一个新的"Observers"属性.不幸的是,这方面的帮助条目是空的.有谁知道这个新房产有什么用处以及如何使用它?编辑:我知道它与LiveBindings有关,但我想更多地了解它,因为我无法访问XE2源代码,所以我无法调查自己.

delphi delphi-xe2 livebindings

18
推荐指数
1
解决办法
2404
查看次数

DCC提示:H2161警告:重复资源:类型24(用户定义),ID 1; 文件资源......保存; 文件...\WindowsXP.res资源被丢弃

在Delphi XE2中链接我的项目时出现以下错误.重新创建.dproj文件没有帮助.

[DCC Hint] H2161 Warning: Duplicate resource: Type 24 (user-defined), ID 1; File resource <filename>.res kept; file c:\program files\embarcadero\rad studio\9.0\lib\Win32\release\WindowsXP.res resource discarded.

怎么解决?谢谢您的帮助!

delphi delphi-xe2

18
推荐指数
3
解决办法
1万
查看次数

如何在Delphi中将单个枚举值标记为已弃用

我希望有以下内容:

TEnumType = (
  etValue1 = 1,
  etValue2 = 2 deprecated,
  etValue3 = 3);
Run Code Online (Sandbox Code Playgroud)

它返回:

[DCC Error] unt_CollectionImportType.pas(19): E2029 ',' or ')' expected 
but identifier 'deprecated' found.
Run Code Online (Sandbox Code Playgroud)

有没有办法指示编译器不推荐使用此值.

delphi enums deprecated delphi-xe2

18
推荐指数
1
解决办法
609
查看次数

如何在一个地方为多个应用程序定义应用程序版本?

我们有一个由众多应用程序组成的系统.所有应用程序的版本都同时更改.目前,当我们发布新版本时,我们必须手动打开每个应用程序的项目选项并逐个更改版本.有没有办法在同一版本上编译所有应用程序,例如,将其保存在全局文件中并在编译时,读取此文件并将该版本分配给项目?我只是想消除太多步骤,因为我们计划更频繁地更改版本号.我想在一个地方改变它.可以这样做吗?如何?

delphi msbuild compilation version delphi-xe2

18
推荐指数
2
解决办法
1万
查看次数

Delphi XE2数据模块只需要数据库组件吗?

在Delphi的早期版本中,我使用数据模块(TDataModule)作为保留非可视组件的地方,以避免使主表单混乱.在Delphi XE2中,当我创建一个新的数据模块时,它只允许我在其中放置与数据库相关的组件(例如TADOConnectionTDataSource).这是为什么以及如何将其他组件放入其中?还有其他选择吗?

delphi datamodule delphi-xe2

18
推荐指数
2
解决办法
3146
查看次数

为什么不能将地址转换为64位Delphi中的嵌套本地函数?

如.关闭相关问题 - 下面添加更多示例.

下面的简单代码(找到顶级Ie窗口并枚举其子代)与'32位Windows'目标平台一起正常工作.早期版本的Delphi也没有问题:

procedure TForm1.Button1Click(Sender: TObject);

  function EnumChildren(hwnd: HWND; lParam: LPARAM): BOOL; stdcall;
  const
    Server = 'Internet Explorer_Server';
  var
    ClassName: array[0..24] of Char;
  begin
    Assert(IsWindow(hwnd));            // <- Assertion fails with 64-bit
    GetClassName(hwnd, ClassName, Length(ClassName));
    Result := ClassName <> Server;
    if not Result then
      PUINT_PTR(lParam)^ := hwnd;
  end;

var
  Wnd, WndChild: HWND;
begin
  Wnd := FindWindow('IEFrame', nil); // top level IE
  if Wnd <> 0 then begin
    WndChild := 0;
    EnumChildWindows(Wnd, @EnumChildren, UINT_PTR(@WndChild));

    if WndChild <> 0 then
      ..    

end; …
Run Code Online (Sandbox Code Playgroud)

delphi delegates nested 32bit-64bit delphi-xe2

17
推荐指数
1
解决办法
1652
查看次数