Pre*_*ias 2 delphi delphi-7 delphi-2006 custom-component
我工作的组件,用于delphi 7和delphi 2006,组件使用SynTaskDialog.pas从synopse,我已经成功地使用了SynTaskDialog.pas的delphi 7成分,但是当我试图在使用它delphi 2006来创建组件包.我收到一个错误

我在synopse.info/forum上找到了相同的解决方案
引用:
我找到了两个解决方法:要么
Run Code Online (Sandbox Code Playgroud)TD_ICONS_IDENT: array[TTaskDialogIcon] of string =( '', SMsgDlgWarning, SMsgDlgConfirm, SMsgDlgError, SMsgDlgInformation, '', SMsgDlgInformation);
并删除一些LoadResString调用或
2.使用类似函数替换指针数组
Run Code Online (Sandbox Code Playgroud)GetIconIdent(TTaskDialogIcon): Pointer
但即便如此,我无法编译组件的包.而这些错误来了
[Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgOK' from unit 'SynTaskDialog'
[Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgYes' from unit 'SynTaskDialog'
[Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgNo' from unit 'SynTaskDialog'
[Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgCancel' from unit 'SynTaskDialog'
[Pascal Error] E2201 Need imported data reference ($G) to access 'SMsgDlgRetry' from unit 'SynTaskDialog'
[Pascal Error] E2201 Need imported data reference ($G) to access 'SCloseButton' from unit 'SynTaskDialog'
Run Code Online (Sandbox Code Playgroud)
你为什么不问项目论坛的问题?
解决方案可能会增强此开源单元的官方代码.
好的 - 它可以帮助我获得一些SO点.;)
AFAIK这个"E2001"问题已经确定 - 请参阅这篇文章,并且应该在最新的主干中修复.这听起来与Delphi 7一起使用,但不适用于Delphi 2006.
以下是此编译器错误的潜在解决方法:
定义这样一个功能:
function IconMessage(Icon: TTaskDialogIcon): string;
begin
case Icon of
tiWarning: result := SMsgDlgWarning;
tiQuestion: result := SMsgDlgConfirm;
tiError: result := SMsgDlgError;
tiInformation, tiShield: result := SMsgDlgInformation;
else result := '';
end;
end;
Run Code Online (Sandbox Code Playgroud)
要这样使用:
if Inst='' then
Inst := IconMessage(aDialogIcon);
Run Code Online (Sandbox Code Playgroud)
感谢您使用我们的开源组件!
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |