Delphi 开发新的TEditButton类型需要dclfmxstd包,该包不作为dcp存在
我正在使用Delphi Berlin Enterprise,我需要扩展TClearEditButton和TDropDownEditButton的一些功能。因此,我开发了自己的TMEClearEditButton和TMEDropDownListEditButton。它们是标准FireMonkey的子类,所以我使用了FMX.Edit单元。我通过代码创建按钮做了一些测试,到目前为止没有问题 当我决定构建一个只包含设计时的包,以便能够直接在IDE中添加编辑按钮时,问题就开始了。从FMX.Editors复制一些代码后,我得出以下结论:Delphi 开发新的TEditButton类型需要dclfmxstd包,该包不作为dcp存在,delphi,packages,firemonkey,delphi-10.1-berlin,Delphi,Packages,Firemonkey,Delphi 10.1 Berlin,我正在使用Delphi Berlin Enterprise,我需要扩展TClearEditButton和TDropDownEditButton的一些功能。因此,我开发了自己的TMEClearEditButton和TMEDropDownListEditButton。它们是标准FireMonkey的子类,所以我使用了FMX.Edit单元。我通过代码创建按钮做了一些测试,到目前为止没有问题 当我决定构建一个只包含设计时的包,以便能够直接在IDE中添加编辑按钮时,问题就开始了。从FMX.Editors复
Unit ME.Editors;
Interface
Uses
System.Classes,
DesignIntf,
FMX.Editor.Items,
FMX.Design.Items;
Type
TMEEditEditor = Class(TItemsEditor)
Public
Constructor Create(AComponent: TComponent; ADesigner: IDesigner); Override;
End;
Implementation
Uses
FMX.Edit,
ME.Edit;
Constructor TMEEditEditor.Create(AComponent: TComponent; ADesigner: IDesigner);
Begin
Inherited Create(AComponent, ADesigner);
FAllowChild := False;
SetLength(FItemsClasses, 10);
FItemsClasses[0] := TItemClassDesc.Create(TEditButton);
FItemsClasses[1] := TItemClassDesc.Create(TMEClearEditButton);
FItemsClasses[2] := TItemClassDesc.Create(TPasswordEditButton);
FItemsClasses[3] := TItemClassDesc.Create(TSearchEditButton);
FItemsClasses[4] := TItemClassDesc.Create(TEllipsesEditButton);
FItemsClasses[5] := TItemClassDesc.Create(TDropDownEditButton);
FItemsClasses[6] := TItemClassDesc.Create(TMEDropDownListEditButton);
FItemsClasses[7] := TItemClassDesc.Create(TMEDropDownDateEditButton);
FItemsClasses[8] := TItemClassDesc.Create(TMEDropDownTimeEditButton);
FItemsClasses[9] := TItemClassDesc.Create(TSpinEditButton);
End;
End.
现在编译它需要一些标准的delphi designtime包:
- 指定人
- fmxdesigner
- dclcommon
- FMX.Design.Lang
- FmxDsnConst
- FMX.Editor.Items
- FMX.Design.Items
我已经报告了这个问题,我想我会把它作为一个答案发布出来,因为尽管它不能以一种非常令人满意的方式解决您的问题,但我至少已经得到了一个FMX组件,我可以在IDE中安装它,它有一个自定义的设计器。我所做的可能会给你一些下一步的想法 以下是我所做的:
Requires
子句设置为列出RTL.DCP、FMX.DCP和FMXDesigner.DCP祝你好运!非常感谢Martyn。添加FMX组件将是一件非常痛苦的事情,因为Embarcadero提供了源代码,但没有提供重建的包……见鬼,仅此一点就可能给我们一些见解。我还确信,一定有一些FMX作者在附近的某个地方知道如何解决这个问题。我在EDN上写道论坛,但没有得到答案,但我并没有提交一份QP报告。