小编Jam*_*amo的帖子

"隐式导入"在Delphi包中总是一件坏事吗?

试图为一组TFrame-descendent组件重新安排我的包,我发现它似乎有必要将我的一些实用程序TFrame后代与使用它们的对话框形式分开,主要是因为前者在调色板中注册为true组件和IDE似乎有时会混淆IDE使用它们的对话框形式.反过来,对话框形式由非可视组件调用,这些组件是第三个包的一部分.这一点,到目前为止,似乎让大多数编译器的依赖性有关的投诉 /混乱走开.(但我还没出来).

当使用对话框窗体(调用框架)编译包时,我收到警告"单元'MyFrames'被隐式导入包'MyDialogForms'"

鉴于它显示为编译器警告,我很久以前就给人的印象是"隐式导入"一个单元通常不是一件好事.是否有特定情况并非如此?即隐含导入单位是否合适,和/或适当的做法?......如果是,那些具体案例是什么?

ide delphi packages custom-component

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

在运行时控制z轴/从前到前(Delphi)

在Delphi中,如何在运行时控制可视控件的z轴位置?例如,如何,以编程方式和在运行时,您是否在设计时完成(从IDE主菜单)"编辑 - >带到前面"的等效项?

forms delphi controls

17
推荐指数
2
解决办法
7800
查看次数

Delphi IDE项目"清理"命令 - 它做什么?

运行Delphi 2007(也可能是其他版本,我猜),如果我右键单击项目管理器中的项目(在这种情况下是BPL的EXE),则在编译和构建之上有一个"清理"命令.它到底是做什么用的?

ide delphi compiler-construction packages

16
推荐指数
3
解决办法
6108
查看次数

"无法加载包A,它包含单元X,它也包含在包B中"

(更多包/组件为我安装乐趣 - 感谢大家为您提供的所有帮助).

我在Delphi 2007中将错误列为标题.包A是我的基于框架的"查看器面板"包.包B是含有几个组件,这些组件用于显示关于链接到数据库gven(它们的SQL,状态,类型,等),其中之一是一个非可视组件数据集的信息的包(我们将称之为Inspector)创建并调用显示该信息的表单.单位X是该表格的单位.

我加入了督察组分在包我的观众面板之一,但此后删除了它,并不能找到在查看源代码,为项目的任何引用,也不在基于帧的查看器面板的单位我把它添加到.引用隐藏在哪里?

另外,将Inspector组件添加到其中一个视图面板框架(也作为已注册的组件安装)会导致此问题?

这可能与之前的问题这个问题有关,但我决定从这个特定的symtpom /问题开始,只是为了保持简洁明了,希望以后对其他人有用.在此先感谢您的帮助.


更新:

感谢Loren,我能够找到并删除仍然存在并导致问题的USES引用.但是,我仍然不清楚如何完成我想要完成的任务.:\这是最新的:

Inspector是一个简单的非可视组件,它包含一个DataSet属性和一个内部"Info Form".调用ShowInfo方法会创建表单,并使用与链接的DataSet相关的各种信息填充该表单.我想用它来调试驱动观众的SQL.

如上所述,Inspector包含在包B中.查看器位于包A中.我想在某些TFrame后代(注册为真正的调色板组件)上使用Inspector组件.当我将该组件放在给定的TFrame上然后使用它,并编译/安装包A时,我得到"无法加载包A,它包含单元X,它也包含在包B中"错误.它现在显然是原因,我可以按需重新创建问题.

moobaa的建议在下面是有道理的,但似乎即使我试图做他所建议的方法#2,它也行不通.我错过了什么?看起来这应该是可行的,事实上,似乎我见过的大多数软件包一直使用其他已安装的软件包(包括VCL本身).

注意:据我所知,包B不依赖于包A(我已经单独安装它,所以这似乎同意).

(顺便说一句,是否有任何工具来"规划"这样的包依赖?我正在使用D2007)

一如既往,感谢您的时间和帮助.

delphi packages custom-component

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

删除表单上某个类的所有组件(Delphi)

这可能是一个愚蠢的问题,但我的大脑已经足够熟了我想我将使用我的一条"生命线"来看看我是否可以从我的堆栈溢出的朋友那里得到一些帮助.;)

我需要删除主表单上所有特定组件类型的出现(其中一些是在面板或标签页内,但全部在同一表单上并由其拥有).这就是我现在拥有的:

for i := 0 to frmMain.ComponentCount - 1 do  
  begin  
    if frmMain.Components[i] is TMyClass then frmMain.Components[i].Destroy;  
  end;    
Run Code Online (Sandbox Code Playgroud)

问题是(我知道它将在我编译之前),一旦我销毁组件,表单的组件列表重新索引,我最终超出界限.

解决这个问题的最佳方法是什么?我想过将"found"组件添加到一个独立的数组中,然后在循环之后遍历它以删除它们,我认为这将起作用....但这是最好的方法吗?

TIA


更新:

你们好棒.谢谢.:)

forms delphi components

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

为什么最初创建TDataSource?

创建TDataSource作为数据绑定组件和实际底层TDataSets之间的中介而不是让组件直接连接到TDataSets本身的原因是什么(或将会是什么)?

这看起来像是一个愚蠢的问题,但我正在研究一套广泛的"数据查看器"组件,它们链接到一个通用的"数据连接器"组件等; 在设计这组组件时,我发现自己引用了经典Delphi"TDataSet - > TDataSource - >数据绑定组件"设置的结构作为指导.但是,在我的组件集中,我一直希望将"TDataSource"和"TDataSet"等价物的功能基本上合并到一个类中.它让我想知道首先将它们分开的理由是什么.

delphi oop datasource dataset

11
推荐指数
3
解决办法
2990
查看次数

在Delphi IDE中,如何快速确定打开的非项目相关文件的位置?

这可能是一个容易/简单/明显答案的问题,但我发现自己多次问这个问题,而且从来没有能够回答它:

当我按住Ctrl键单击一个类名时,Delphi会加载定义它的单元(假设它在浏览路径上).一旦它在IDE中打开,有没有办法快速找到PAS文件在硬盘驱动器上的文件夹位置?

ide delphi

10
推荐指数
3
解决办法
785
查看次数

Delphi Win32的最佳共享软件锁

与我上一个问题相同的介绍:

我正在重写和/或整合一堆我的"app框架"类(基本的mainform,关于框,锁定例程和购买链接,自动更新,datamodule初始化程序等) - 基本上,我有一些小的潜在的共享软件应用程序,我想要出门,并希望尽可能重用代码,以及为以后的应用程序构建框架,以节省时间.

但是不同的问题::)

Delphi Win 32应用程序的最佳共享软件锁定组件是什么?(如果那是最好的话,我不介意支付商业费用).

澄清 - 是的,最佳许可证密钥验证/锁定+试用软件组件.

delphi components drm shareware copy-protection

9
推荐指数
3
解决办法
4487
查看次数

Delphi编译器警告指向Delphi自己的单元

在Delphi 2007中,处理一个包含自定义组件的项目,当我进行完整构建时,我将这组警告作为消息中的前四个警告(但不是在我进行直接编译时):

[DCC Warning] Dialogs.pas(1426): W1002 Symbol 'TFileOpenDialog' is specific to a platform
[DCC Warning] Dialogs.pas(1446): W1002 Symbol 'TFileSaveDialog' is specific to a platform
[DCC Warning] ComCtrls.pas(6757): W1036 Variable 'Section' might not have been initialized
[DCC Warning] ComCtrls.pas(19268): W1023 Comparing signed and unsigned types - widened both operands
Run Code Online (Sandbox Code Playgroud)

我通常会尽力消除编译器警告,但这些都是"库存"德尔福单位.这些警告是否是我代码中某些内容的间接结果?如果是这样,我该如何找出/在哪里?如果没有,我该怎么办呢?

ide delphi compiler-construction custom-component

8
推荐指数
2
解决办法
2971
查看次数

Delphi“E2161 错误:RLINK32:在构建全部期间打开文件 ________.drf 时出错”

我正在尝试解决一组显然存在依赖性问题的软件包的问题。有时在构建全部期间,我会收到此错误:

Delphi“E2161 错误:RLINK32:打开文件 ________.drf 时出错”

它是什么意思/表示什么?什么是“drf”文件?

delphi package custom-component

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