delphi相关内容
我想在过程 InitRadioGroup() 的运行时设置 RadioButton 属性.它失败是因为 RadioGroup.ControlCount 为 0,尽管 RadioGroup 中有 3 个 RadioButton. D2010 RadioGroup 出了什么问题?相同的代码在 Delphi 2007 中运行良好. procedure InitRadioGroup(RadioGr
..
我在 Form2 上有一些 TRAdioButton,并使用以下代码从 Form1 调用 Form2: procedure TForm1.btnCallForm2Click(Sender:TObject);开始Form2.RadioButton2.Checked:= true;Form2.ShowModal;结尾; 如果用户点击btnCallForm2,将显示Form2,然后用户点击Radio
..
网络上是否有资源可以帮助您开始使用 native Metro 应用程序开发 使用 Delphi (Win32)? 到目前为止,我找到了MSDN介绍,Getting从 Metro 风格应用开始,它链接到可用的 API 集,包括两个原生 API: Windows 运行时 (WinRT) - “操作系统内置的原生 API.Metro 风格应用程序的基础知识.用 C++ 实现并支持JavaSc
..
我有一个 TDBLookupComboBox 显示一个 TStringField 类型的 fkLookup,它允许 Null 值(来自可为空的整数数据库列). 下拉列表显示分配的 LookupDataSet 中的项目,该项目来自连接表.如果字段为Null,则不显示任何列表项,组合框为空.如果该字段有值,则会显示正确的描述. 我可以通过按分配的 NullValueKey 将其重置为 Nu
..
我想在 DataSet(不是 ClientDataSet)中创建一个“假"数据字段: 该字段不应存储在数据库中 这不是一个计算字段(应该允许用户输入输入数据) 该字段具有业务逻辑意义,因此用户更新其值后应更新其他字段(使用 OnFieldChange 事件) 我知道我可以有一个简单的无 dbaware 控件,捕获它的 OnChange 事件并在那里执行计算(或调用 DataModu
..
在工作中,我们有一个名为“ClientdatasetGrid"的组件,它允许用户通过单击一个或多个列标题来对网格的记录进行排序. 我还制作了一个用于工作的组件,它是 TEdit 的后代,我称之为 TDBFilterEdit. 一旦您为其分配了 DataSet 或 DBGrid,它就会为 DataSet 创建一个 OnFilterRecord 事件,并且在您停止更改该事件执行的文本之后.
..
该应用程序运行良好,直到我在 OpenOffice.org Calc 中编辑了用户数据库 (*.dbf).现在它给了我关于关闭数据集的上述错误. 解决方案 根据您自己的评论,您无法打开数据库文件,因为它已损坏.因此,您的错误并不意味着您忘记打开它,而是您的应用无法打开损坏的 .dbf 文件. 您可能会收到此错误的其他不那么明显的原因,比您未能将表 Active 属性设置为 true
..
有没有办法只刷新详细数据集而不重新加载所有主数据集? 这是我迄今为止尝试过的: DM.ClientDataSet2.Refresh;DM.ClientDataSet2.RefreshRecord; 我也试过了: DM.ClientDataSet1.Refresh; 但是上面的方法刷新的是整个Master数据集,而不仅仅是当前记录. 现在,下面的代码似乎可以做任何事情: DM.
..
我正在使用 Delphi6 并且有一个带有 ADO DataSet 的数据模块,它被两种形式使用,formA 和 FormB.每个表单在 OnCreate 中都有一个 Dataset.Open() 和在 OnClose 中的 Dataset.Close().如果两个表单同时打开并且 formB 关闭,则数据集在 formA 中关闭.我该如何防止这种情况,基本上我需要为每个表单提供单独的数据集实例,
..
有没有比遍历 ADO 数据集更快的方法 while(不是 ADOQuery1.Eof)做开始/* 做一点事 */ADOQuery1.下一步;结尾; 我需要扫描大约 9000 个项目的数据集,并且只提取与预定义的一组分支编号匹配的记录. 解决方案 这样的任务使用 ADORecordset 会快很多: 而不是 ADOQuery1.Recordset.EOF 做开始ADOQuery1.R
..
我有一个 TClientDataSet,它由 TTable 的数据集提供.数据集有两个字段:postalcode(string, 5) 和 street(string, 20) 在运行时我想显示第三个字段(字符串,20).该字段的例程是获取邮政编码作为参数,并返回属于该邮政编码的城市. 问题只是将计算字段添加到已经存在的字段.填充数据本身不是问题. 我试过了: cds.Set
..
D6 教授 以前我们使用 DBISAM 和 DBISAMTable.它处理 RecNo,并且可以很好地进行修改(删除、编辑等). 现在我们用不处理 RecNo 的 ElevateDB 替换,而且很多时候我们使用查询,而不是表. 查询必须重新打开才能看到修改. 但是如果我们重新打开查询,我们需要重新定位到最后一条记录.仅定位是不够的,因为 Grid 将其显示在另一行中.这是一
..
根据this page,可以使用TClientDataset 作为内存数据集,完全独立于任何实际的数据库或文件.它描述了如何设置数据集的表结构以及如何在运行时将数据加载到其中.但是当我尝试按照 D2009 中的说明进行操作时,第 4 步 (table.Open) 引发了异常.它说它没有指定提供者. 该页面上示例的重点是构建不需要提供程序的数据集.页面是否错误,是否已过时,或者我在某处遗漏了一
..
我在 delphi 中使用了以下代码作为句柄: 过程 TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,MaxProgress:整数;var EventStatus: TEventStatus);开始Progressbar1.Visible:=true;Progressbar1.Max:=MaxProgress;
..
我希望能够在它自己的线程中异步打开一个 TDataSet,以便主 VCL 线程可以继续运行直到完成,然后让主 VCL 线程从该 TDataSet 中读取.我做了一些实验,遇到了一些非常奇怪的情况,所以我想知道以前是否有人这样做过. 我见过一些示例应用程序,其中 TDataSet 在单独的线程中创建,它被打开,然后从中读取数据,但这一切都是在单独的线程中完成的.我想知道在另一个线程打开数据源之
..
我需要在 Delphi 中创建一个具有以下特征的线程: 等到主线程将数据添加到共享队列. 处理队列中的所有数据,将结果返回到主线程(对于最后一部分,我将只向主窗口发送消息).处理非常耗时,因此在工作线程处理之前的条目时,可能会将新数据添加到队列中. 继续等待,使用尽可能少的 CPU 周期. 我无法向线程发送消息,因为它没有窗口句柄. 我应该使用 WaitForObject 的
..
我只是在处理具有可变数据大小的 FIFO 队列(简单的队列,即首先推送的内容,首先弹出),但我不确定我的设计方式.我将存储在那里的数据类型将提前知道,假设对于此类的每个实例都是相同的.我正在考虑使用 TList 来存储具有以下定义的记录(@David - 它适用于 D2007,所以我没有 Generics.Collections 可用 :) 类型PListItem = ^TListItem;TL
..
delphi 中是否可以检索单个组件使用的内存量? 我正在从互联网上下载简单的字符串,我发现在下载过程结束时内存使用量高达 1 GB,但是当我查看包含我下载的所有内容的保存文件时,只有在千字节范围内,显然这些组件发生了一些事情,即使我销毁了它们. 例子: 编辑: 过程 TForm1.OnCreate(Sender: TObject);变量列表:TStringList;开始列表:
..
..
我需要帮助来制作一个控件属性,当您单击它时,它会弹出一个自定义对话框,如设置.就像 TPicture 一样. 有什么想法或建议吗? 解决方案 如果您的类被用作其他组件的属性,并且您想使用 Object Inspector 来调用您的对话框,那么您必须实现并注册一个自定义属性编辑器,例如: 接口用途DesignIntf,设计编辑;类型TMyClassProperty = 类(TP
..