Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
 Delphi_IT技术博客_编程技术问答 - 「Fatal编程技术网」

Delphi 为什么插入符号突然在编辑字段中居中?

我在Delphi 2006登录表单上有一个“用户名”TEdit。当应用程序启动时,要求用户输入用户名。TEdit获得焦点,插入符号出于某种原因被放置在其水平中心。一旦输入任何内容,插入符号将再次左对齐,所有内容看起来都正常 奇怪的是,事情并非总是这样。这种行为几年前突然开始(我相信当时我们仍然使用Delphi6)。你知道是什么引起的吗 其他信息(已要求): 这个问题很普遍:D2006和D6(我相信),在尽可能多的计算机上有5或6个Delphi实例,所有应用程序都使用该登录表单。该效果仅限于形式,

Delphi的字典(来自Python)组件?

是否有类似于Delphi的Python字典的组件 我现在使用TStringList映射字符串/对象对,但我希望使用更通用的方法,并且可能更强大(排序时,TStringList具有二进制搜索) D2009之前的解决方案也受欢迎。在Delphi 2009中有。添加了一个全新的容器单元,Dictionary类是可用的类之一 将它与泛型结合起来,您就有了一组非常强大的类。我自己也没有尝试过,但是这个包怎么样?(感谢谷歌)。如果您正在寻找一些哈希表实现,请查看我的allways used。它包括序列、映射

如何将tiff图像与Delphi合并?

我有4个小tiff图像,我想通过合并4个单个图像来生成一个大图像。是否有人知道如何直接使用Delphi或一些好的组件来完成此操作?您可以使用Mike Lischke的GraphicEx来加载Tiff图像: 您可以使用Mike Lischke的GraphicEx加载Tiff图像: 另一个优秀的Delphi图形库是 编辑:正如Vegar所说,Graphics32似乎无法用于加载TIFF格式 另一个优秀的Delphi图形库是 编辑:正如Vegar所说,Graphics32似乎无法用于加载TIFF格式

如何使用Delphi制作rocketdock/OSX风格的启动栏

我想做一个带有图标的工具栏,当你把鼠标放在上面时,图标会变大。我不介意重新发明轮子,但如果有人能提出一个好的建议: 图像格式(不确定位图是否适用,也不确定如何使用矢量) 现有控件(付费或免费,只要我可以在封闭源代码应用程序中使用) 集装箱等级(TPanel是否足够?) 我还没有亲自使用过它,但也许可以看看TMS TAdvSmoothDock,而不是重新发明轮子 在delphi.about.com网站上有一些示例代码正是这样做的 下面的链接显示了代码以及运行时dock的示例图像 我不知道代码是否

Delphi 2009-在自定义Delphi组件中设置默认属性值

这应该很简单,但我找不到我想要的确切答案。我有一个基于TSpeedButton的自定义delphi控件。我希望SpeedButton的Caption属性始终为“Comments”,但我不希望在运行时设置它,我希望在组件本身中设置它,以便当我将其放置在表单上时,它已经填充了此文本。我还想设置按钮的高度和宽度,但我想这样做的方法与设置标题的方法相同 为完整起见,以下是组件代码: unit CustomSpeedButton; interface uses SysUtils, Classes,

从C+;升级复杂应用程序需要知道什么+;从2007年到2010年? 我公司的主要应用程序主要是用C++编写的(带有一些Delphi代码和组件)。我们正在从RAD Studio 2007升级到2010,下一个版本将在大约一周后开始。我需要知道什么才能确保升级顺利进行

到目前为止,我想到的几点是: Unicode。这个看起来很复杂。我们的应用程序包含std::string-s和AnsiString-s的可怕组合,它们之间有转换。关于这个问题,我有很多问题,比如“WString是否能够保持所有的UnoDeString都可以,我们应该做一个搜索/替换”,或者“我们应该避免所有的C++字符串类型,并使用UnoDeString”,“尽管现有的.HPPs事件处理程序方法原型已被编译器翻译为AnsiString,但我们是否可以将所有事件处理程序更改为使用字符串?”这是一

Delphi内存分析工具?

我建立了一个项目并运行了它,在Process Explorer中查看了它,结果发现它使用的RAM比我想象的要多5倍,只是为了启动。现在,如果我的程序运行得太慢,我将它连接到一个分析器,让它告诉我什么在使用我的所有周期。有没有类似的工具可以连接到它,让它告诉我什么在使用我所有的RAM?AQTime也可以提供帮助。AQTime对我们来说是一个了不起的分析工具。它工作得惊人地好,让我们能够在从未想过会有瓶颈的地方找到瓶颈,而有时它会向我们展示,在我们确信存在瓶颈的地方没有瓶颈 它与Finalbuild

Delphi 为什么DefaultExpression属性仅适用于BDE?

如何将DefaultExpression属性用于MS Access或SQL Server的TField,它似乎只适用于BDE。这不是一个确切的答案,但它是一个解决方法。我只是从数据集的AfterInsert事件处理程序中调用类似于下一个例程的东西: procedure Flds_SetToDefExpr(const AFlds: array of TField); var i : Integer; begin for i := Low(AFlds) to High(AFlds) do

Delphi中是否存在或将来是否会存在条件运算符?

我想我的手离德尔福太久了;在过去的几年里,我一直忙于Java和PHP。现在,当我回去做一点Delphi工作时,我意识到我真的很想念Java和PHP都支持的条件运算符 在Delphi程序中,有多少地方可以找到这样的行 var s : string; begin ...<here the string result is manipulated>... if combo.Text='' then s := 'null' else s := Quo

Delphi 如何将文件从虚拟树视图拖动到Windows资源管理器

我有一个TVirtualStringTree,每个节点代表一个文件,我想做的是允许用户将一个节点拖动到Windows资源管理器或Outlook,目标得到一个真实的文件。似乎我需要实现OnGetUserClipboardFormats和RenderOLEData事件处理程序?但是我不知道从哪里开始……你能帮我吗?看看安德斯·梅兰德的作品。 它是免费的,将为您提供所需的所有功能。谢谢您Holgerwa。我知道这个软件包非常棒,我曾考虑使用Virtual treeview提供的内置拖放支持,但似乎使用

Delphi Move()从动态字符串数组中插入/删除项

使用System.Move()从字符串数组中插入/删除项并不像从其他简单数据类型数组中插入/删除项那样简单。问题是。。。字符串是在Delphi中计数的引用。对引用计数的数据类型使用Move()需要对内部编译器行为有更深入的了解 这里有人能为我解释一下实现这一目标所需的步骤吗,或者更好地使用一些代码片段,或者在互联网上为我提供一个好的参考吗 哦,请不要告诉我使用“惰性但缓慢的方式”,也就是说,对于循环,我知道。要插入字符串,只需在数组(指针数组)的末尾添加一个字符串(惰性方式),然后使用移动更改此

Delphi 6/JEDI-JVCL-不再获取带有详细堆栈转储的自定义消息表单

我正在使用Delphi6和JEDI-JVCL3.x。我的项目设置包括创建JDBG文件并将其插入可执行文件。然而,在这一过程中的某个地方,我做了一些事情,打破了自定义异常处理表单的外观,该表单显示了完整的详细堆栈转储和其他信息,现在我只得到了标准异常对话框,其中只包含单一的异常信息。有谁能告诉我,我所做的最有可能会干扰“自定义异常”对话框的外观 --roschler看起来您已经从项目中删除了Jcl异常对话框。或者它只是稍后初始化,然后出现异常。可能(在某些情况下)未正确捕获异常,因此无法向您显示异

Delphi 如何检测字符串是否为Base64编码?

检测字符串是否为Base64编码的最佳方法是什么(使用Delphi) 你能做的最好的事情就是试着解码它。如果解码失败,则输入不是base64编码的。如果字符串成功解码,则输入可能已被base64编码。您可以检查字符串是否仅包含 =字符用于填充,因此您可以为填充base64字符串的函数添加一个传统的有效值,以检查字符串的长度是否为mod 4除了RRUZ应答之外,您还可以检查字符串的长度(是4的倍数) 函数IsValidBase64(const aValue:string):布尔值; 变量 i:整数

是否有一个Delphi事件保证在应用程序终止但任何表单被销毁之前调用?

我使用的是Delphi6 Pro。我需要一个事件,当我的应用程序肯定是关闭,但在任何形式的火灾被销毁。我曾想过在主窗体WndProc()中捕获WM_QUIT消息,但这不起作用,因为在我看到WM_QUIT消息之前表单就开始破坏。我想知道是否有一个标准的Delphi事件,我可以用来在关闭事件链的这一点上执行代码?我不能使用主窗体的FormClose()事件,因为它不能保证触发,而且FormDestroy()事件太晚了。有什么想法吗?您不会在WndProc()方法中看到WM\u QUIT消息到达,因为

Delphi 有",;“可更改的”;dbx元数据中的命令?

如何使用dbx元数据修改现有数据库?我正在尝试,但我只是能够创建一个新的表,新的列,新的定义。。。例如,我可以将新列添加到现有数据库中吗 “CreateTable”命令不进行更改。。。我是对的?有“可变”命令或类似的东西吗 我正在使用Delphi XE和Firebird 感谢您直接使用SQL命令,然后您可以执行数据库支持的任何操作。不需要DBX干扰这个过程。直接使用SQL命令,然后您就可以执行数据库支持的任何操作。没有必要让DBX干扰这个过程。我认为这不是办法。不管怎样,请告诉我你每天是怎么工作

如何从Delphi6对象中获取类以分配给元类变量?

我有一个Delphi 6元类变量,为设计时服务器组件的组件属性提供服务: type TClientClass = class of TClient; ... FClientClass: class of TClientClass; FClientObj: TClient; 我还有另一个设计时组件,它是客户端组件。在设计时,我通过IDE的属性编辑器使用服务器的“客户机”属性将客户机组件的一个具体实例分配给服务器组件,并将其放到相同的表单上。但是,我还希望将FClientClass变量指定给具

如何在Delphi中为setter提供第二个参数?

我想知道我们是否可以在德尔福这样做: 我有一个私人程序: procedure SetMySend(const oValue: TTM_MySend_Profile; displayValue: string = '...'); 我有一个公共财产: property MySend: TTM_MySend_Profile displayLocateID '...' read FMySend write SetMySend; 我可以在这里给出一个参数displayValue作为se

Delphi 从文件夹中读取无效的文件名

我有一个有趣的问题。我们的一个客户从电话中录制了语音对话,但提供给录音的文件名无效。下面是文件名123:123.wmv 请相信,Windows Media encoder创建了该文件,所有信息都在该文件中,但Windows显然无法识别该文件名,仅在文件夹中将其显示为123,并且该文件为0KB 从这里开始编辑:感谢Keith Miller为我指明了正确的方向,我可以编写一个函数,从文件中提取流名称并使用它 我已经包含了一个工作副本,介绍了如何将两个数据流创建到一个文件中,读取流名称并从每个流中读取

Delphi XE2为项目经理使用哪个工具栏?

在我自己的项目中,我希望使用Delphi XE2 IDE用于项目管理器的相同类型的工具栏:带有图标和为每个图标显示标题的选项。我不需要拖放/停靠功能。Delphi XE2中是否有一个标准组件可以实现这一点 谢谢 项目经理使用 根据Spy++的说法,这是一个TToolBar。对于这个问题的未来读者来说,您正在寻找的屏幕截图可能会很好。幸运的是,RRUZ提供了以下内容。太棒了,我为什么没想到呢?:-)

Delphi RAVE报告错误“;dbrtl160.bpl缺失“;

从IDE(Delphi XE2)运行RAVE Reports Designer时,出现以下错误: “由于您的计算机缺少dbrtl160.bpl,程序无法启动。请尝试重新安装程序以解决此问题” 但是,在Delphi XE2文件夹中存在文件dbrtl160.bpl 这里出了什么问题?文件需要与应用程序位于同一文件夹中,或者位于系统路径上的文件夹中。IDE从它自己的文件夹中使用它,但是当你的应用程序(或者在本例中是RAVE)运行时,它不在IDE文件夹中。IDE通常会在安装过程中将必要的RAVE文件夹添

递归属性(Delphi)

我正在编写一个应用程序,它映射出一个目录结构,该结构需要保存关于每个文件的尽可能多的信息,以便最终用户可以应用自定义过滤器来操作其中的文件和文件夹。同时执行文件搜索的类向UI提供基本信息,让最终用户了解所涉及的数据量。我试图实现的是通过属性递归到类的子对象中,以获得我需要的信息,这样我就只需要访问顶级类来获得所需的信息,而不必担心任何数量的子类中的信息 type TSomeClass = class(TObject) private FContainerForSubOb

Delphi脚本和ASM

我试过了 帕斯卡语 快速脚本 脚本工作室 IdScript引擎 但是,没有一个支持内联ASM。是否有一些库支持它?AFAIK通过其语言扩展模块,特别是语言扩展模块,支持ASM 更新:找到一个他描述功能的地方。看起来您需要安装NASM才能在DWScript中使用ASM块。AFAIK通过其语言扩展模块,特别是 更新:找到一个他描述功能的地方。看起来您需要安装NASM才能在DWScript中使用ASM块。。。我听说要支持asm,代码库需要像5-10k行代码那样庞大。我认为DelphiWebScript

Delphi 拖放时移动图像

我在TPanel上有一个TImage,还有一个(空的)TPanel。我想拖 使用拖放将图像从第一个面板拖动到第二个面板 实际上,我想在图像从一个面板移动到另一个面板时看到它 其他(半透明) 我想我应该使用TDragObject.GetDragImages,但我不知道如何构建整个魔法 procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer)

Delphi 德尔菲对数标度图中的小刻度

关于小刻度,我有一个非常具体的要求。我的客户想要一个图表,根据不同的年代,带有不同数量的小刻度。例如,如果十年小于1,他需要10个标签(1、2、3、4、5、6、7、8、9、10)和以下小刻度(1.5、2.5、3.5、4.5、5.5、6.5、7.5、8.5、9.5) 如果十年是1到2,他需要以下标签(1、2、3、4、5、6、8、10)和以下小刻度(1.5、2.5、3.5、4.5、5.5、7、9) 非常感谢您的帮助。我找不到如何覆盖勾号,以便将它们放置在自定义点。不过我已经找到了定制标签 谢谢我已经

Delphi 排序TListView列-续(升序和降序)

我最近得到了别人的帮助 代码如下: procedure TfrmFind.lvwTagsColumnClick(Sender: TObject; Column: TListColumn); begin ColumnToSort := Column.Index; (Sender as TCustomListView).AlphaSort; end; procedure TfrmFind.lvwTagsCompare(Sender: TObject; Item1, Item2: TListIt

Delphi IDE中是否有解决错误洞察错误的方法?

XE2将在编辑器中标记错误,通常是关于缺少成员函数的错误(如图所示)。但是,它将编译为OK,代码将正常运行。 如果您使用CTRL+SPACE请求列表,它将给出正确的列表 对于Delphi XE2 IDE中的上述错误,是否有解决方法/解决方案? 这样我就不会在编辑器中得到错误的标记了 请注意,此问题:表示存在错误的原因,但未列出解决方案 解决方案,在Delphi 2007、XE2和10.2.x Tokyo中对我有效: 编译/构建您的项目 关闭项目(文件->全部关闭) 重新打开您的项目 错误的错误标

Delphi 为什么不保存ini文件?

我正在尝试保存unicode字符串。这就是我所拥有的: Uses IniFiles; const SZ_APP_NAME; Procedure TForm1.SaveSettings; var _MemIniU: TMemIniFile; SettingsPath: string; begin SettingsPath := GetHomePath + PathDelim + SZ_APP_NAME + PathDelim; _MemIniU := TMemIniFile.Cr

在Delphi中加载OpenGL纹理而不使用glaux

有没有一种方法可以在Delphi中加载openGL纹理进行映射,而不使用任何外部库(如glaux或任何其他库)?我在互联网上搜索过,但找不到任何特指Delphi的源代码。此页面似乎包含用于加载位图和JPEG的代码,而且除了OpenGL单元本身之外,它似乎没有使用任何外部库。啊,非常感谢。不知何故错过了这一个。请参见忽略扩展:*.sgi、*.rgb、*.dds、*.png(因为您没有后面的代码),但其余部分可以工作(jpg在#include中,bmp是本机VCL,pcx解码器在示例中),代码将把图

Delphi Oncellclick不会更改表中的位置。(德尔菲)

我正在使用DBGrid的on cell click过程打开另一个表单,在该表单中显示有关您单击的用户的信息,但我这样做时,它不会更改ADOTable中的位置(以前是这样做的),而是停留在相同的位置,显示您自己的信息,而不是您单击的用户的信息 我希望我已经很好地解释了这个问题。如果不是,我会尽量解释得更好 提前谢谢 procedure TfrmStudentViewer.FormShow(Sender: TObject); begin Adoforteachers.a

Delphi VCL应用程序包

我们有没有办法在delphi中为XE5 vcl应用程序创建可设置/安装的应用程序 像在.NET中一样,我们已经设置了项目模板。要为我的VCL应用程序创建可安装的 我们有没有办法在delphi中为XE5 vcl应用程序创建可设置/安装的应用程序 Delphi没有与旧版本Visual Studio中的安装项目等效的功能。您需要使用第三方设置工具 你可以试试;Windows程序的免费安装程序 在网上有很多关于如何使用它的手册。是的。使用安装生成器。在本网站上搜索[windows]安装(带括号),查找以

Delphi 服务器的MQTT服务器故障周期';s客户端(在同一应用程序上)

我正在使用Pascal和Delphy XE2开发一个MQTT服务器应用程序,用于连接其他应用程序,其中包含MQTT客户端和一个Android应用程序,该应用程序可以接收信息并发送recept Ack。对于一个良好的使用,我需要一个良好的保留 在服务器应用程序上,我制作了一个MQTT客户端,用于跟踪系统的活动并检查消息的良好传输 这个应用程序很好,没有内存泄漏(用FastMM验证),所有功能都正常(我已经检查了一切…)。但我不明白,在几天内,所有的工作都很好,过了一会儿,我的服务器就停下来听客户机

Delphi XE6-在Delphi目录中找不到BPLs

赢得8.1分。我以前有一个旧版本的D2010。卸载所有内容,重新启动,安装Delphi XE6 Professional。正在安装其他各种软件包。。。一切似乎都很顺利。试图安装绝地JCL。我在JCL目录中打开了一个命令提示符,并运行install.bat。过了一会儿,我得到一个名为JediInstaller.exe的错误-系统错误。消息文本为“程序无法启动,因为rtl200.bpl丢失…” 我搜索了它,在多个目录中找到了它,最著名的是“C:\ProgramFiles{X86)\Embarcade

Delphi 何时调用在窗体上创建组件的代码和设置组件属性的代码?

如果我在表单上放置组件,我看不到任何代码,如单位代码中的MyComp:=TMyComponent.Create。我认为组件是自动创建的,但是什么时候?在我将组件放到表单上之后配置的属性也会发生同样的情况。在运行时应用控件和组件的时间?在IDE中设计时编辑的控件和组件及其属性的信息将存储在表单.dfm文件中。在运行时创建该表单将触发自动加载该.dfm文件的过程,此时所有控件和组件都将初始化 这是一个非常简单的解释,可以在表单创建行启动调试器并跟踪那里发生的事情,但这是一个相当长的过程,如果您还在学

Delphi WinHttpWriteData似乎正在“淹没”服务器

我正在使用WinHttpSendRequest/WinHttpWriteData将一个54Mb的大文件上传到我们的服务器,以4Kb的速度发送给用户反馈。据我所知,直到最近,这种方法一直运作良好。现在,当我尝试它时,上传速度非常快,然后WinHttpReceiveResponse调用超时,服务器接收到不完整的数据 我使用的是Win 8.1 64位,IE11.0.15,我认为WinHttp是用IE更新的,但在我同事的PC上,同样版本的Windows IE,上传速度慢得多,响应也不会超时。当我尝试在各

Delphi 继承接口的接口委托是否需要包装类?

Delphi允许使用implements关键字进行接口委派 比如说 IIndep1 = interface function foo2: integer; end; IIndep2 = interface function goo2: integer; end; TIndep1And2 = class(TInterfacedObject, IIndep1, IIndep2) private FNested : IIndep1; //e.g. passed via construc

Delphi XE8 Firemonkey TListView-如何以编程方式设置背景色

TListView与样式相连接。此样式包含名为background的TColorObject。如果您在样式设计器中设置了TColorObject.Color(红色),Treeview将显示此颜色。 如果在TListView的ApplyStyleLookup事件中以编程方式设置颜色,则背景色仍保留在样式中设置的颜色(红色) procedure TTest.TreeViewlistApplyStyleLookup(Sender: TObject); var co: TColorObject; be

Delphi 所以我有一个单位,但没有项目?

在从一个hone记忆棒到另一个hone记忆棒的大量移动中,我似乎丢失了我的项目1,现在我的单元1将无法编译,关于如何获得项目1以便我的单元可以运行,有什么帮助吗 如前所述,这要视情况而定。如果您没有向项目中添加很多模块,那么.dpr文件看起来仍然像 begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. 那么复苏就微不足道了。创建新项目,打开其源代码,删除现

“COM例外情况”;“变量类型错误”;Delphi调用Domino GetDocumentByKey方法时出错

我有一个遗留的Delphi2应用程序,我需要将它从通过OLE自动化与Notes通信转换为通过COM早期绑定进行通信。我使用Delphi7是因为代码库很大,我希望避免在更新版本的Delphi中处理Unicode支持的工作 基本功能正在发挥作用:程序先打开数据库,然后打开视图,然后使用NotesView.GetDocumentByKey方法搜索特定文档。GetDocumentByKey调用在第一个参数是转换为OleVariant的单个字符串时起作用,如下所示(打开DB和视图未显示) 当需要基于多个列

Delphi 在细节带中打印图像而不隐藏图像

我在细节带打印QR图像时遇到问题。 我需要一个浮动QRImage,如果您使用新的QRBand,但仅用于放置QRImage?,它将在第一页打印,而不是在第二页打印,因为如果QRBand不增加,则不会在下一页显示

Delphi 如何将窗体高度设置为大于1096像素? 我使用C++ Builder XE7并有一个奇怪的问题。我需要一个大约1500像素的表格高度。问题是对象检查器不允许我指定大于1096像素的值。如果我设置任何较大的值,它将自动设置为1096。。该问题存在于任何现有或新表单上。我使用的是屏幕分辨率为1920x1080的Windows 7。

此行为的原因是,当您未设置表单大小的约束时,Delphi将通过消息自动获取系统级别的约束,当Delphi通过函数设置表单大小时,会触发此消息。对于最大高度,Delphi使用了ptMaxTrackSize.Y成员,在我的windows 8.1系统上它恰好是1092(分辨率为1920x1080) 因此,如果要强制窗体高度高于系统桌面高度,则必须使用Constraints.MaxHeight覆盖此行为。您可以通过在Vcl.Forms单元的过程TCustomForm.WMGetMinMaxInfo中设置

Delphi 我可以只忽略一次异常吗?

当发生异常时,调试器会给我以下消息: 我可以通过选中忽略此异常类型来选择忽略该异常 然而,这样做会忽略所有未来项目中的异常,这比无用更糟糕,因为我不想忽略每个项目中的异常;我只想在这次跑步中忽略他们 使用工具SAPI,是否有办法: A-仅忽略此运行的异常,或 B-仅忽略此项目的例外情况,或 C-在重新启动Delphi时恢复忽略异常设置 如果我能做A、B或C,我的问题就解决了 我知道忽略异常数据存储在: HKEY\U当前用户\软件\ Embarcadero\BDS\17.0\调试\ Embarc

Delphi 版本相关编译-$ENDIF和$IFEND

我似乎陷入了两难境地。我想添加依赖于编译器版本的代码。好的,这很标准。但是$IF语句的语法在不同版本之间是不同的 以下是我正在努力实现的目标 {$IF CompilerVersion = 28} if (fPendingObject = pObject) and (Addr(fPendingActionEvent) = Addr(pPendingActionEvent) ) then {$ELSE} if (fPendingObject = pObject) and (@fPending

Delphi 如何将idhttp下载的图像从扩展转换为另一个?

我有一个线程,它从web获取图像url,然后将其保存到内存流,然后从内存流保存到文件 我需要将下载的任何图像转换为gif图像,所以我会这样做 unit downloadimgThread; interface uses Windows, SysUtils, Classes, dialogs, IdSSLOpenSSL, IdHttp, IdUri, System.AnsiStrings, Graphics, Jpeg, Vcl.Imaging.GIFImg, PNGImage; type

为什么你真的需要知道这些信息?文件存在可能会经常更改。最好的解决方案是在SQL(order+where)和Delphi中过滤记录,只检查以前未检查过的路径。使用线程许可证进行后台工作,不要冻结应用程序。@Victoria-完全正确。我的经验是,如果你偏离了

为什么你真的需要知道这些信息?文件存在可能会经常更改。最好的解决方案是在SQL(order+where)和Delphi中过滤记录,只检查以前未检查过的路径。使用线程许可证进行后台工作,不要冻结应用程序。@Victoria-完全正确。我的经验是,如果你偏离了问题,试图解决实际问题,问题就会消失,提问者(即使是新手)也会觉得你必须解决没有被问到的问题。我的观点是,我们应该鼓励人们提出更好的问题。“维多利亚-福威特,我希望你能考虑不要放弃,因为我认为你通过你的输入和评论带来了很多价值。”Victori

Delphi 无法创建文件。第二次成功

首先很抱歉-对于这个问题,完全不可能创建一个最小的示例,因为其中涉及一些专用硬件 所以。。我们已经建立了一个记录设备,通过USB连接到PC,并模拟SD卡显示为驱动器。驱动器最初是只读的 但可以通过写入MBR和FAT之间的特殊扇区来切换读/写操作,以便在该驱动器上创建文件 到目前为止还不错。现在Windows似乎在创建文件时产生了一些问题,抱怨媒体是只读的。第二次尝试创建文件实际上成功了 以下是es执行的代码: if not (fMK5UsbComm as TMK5USBComm).IsWrit

Delphi TParallel。速度比经典慢

我需要用TJsonObject来填充TJsonArray TJsonArray和TJsonObject。我正在尝试TParallel.For从System.Threading单元提高性能,但我的TParallel.For比经典的For循环慢 这是我的测试代码: var aLock: TCriticalSection; jItems: TJsonArray; jItem: TJsonObject; aStart: Cardinal; aEnd: Cardinal;

Delphi 在'';任务'';第'列';“窗口任务管理器”;

我有一个名为“UCS1”的delphi应用程序。主窗体标题显示应用程序名、实例号和文件名,例如: UCS1-[1]all.txt 在窗口任务管理器中,应用程序与主窗体的标题完全相同,这是正常的。任务栏上的Hoovering也显示了主窗体的标题 我有另一个名为“CTT”的应用程序,主窗体标题显示与UCS1应用程序中相同的元素,例如: CTT-[1]afile.txt 但是,当在Windows任务管理器中显示时,应用程序显示为“Ctt”,当在任务栏上胡闹时,它也显示“Ctt” 我知道“Ctt”是应用

Delphi 是否有方法从DBGrid中的选定行获取单元格值?(德尔菲)

首先,我对德尔福很陌生 我有一个DBGrid连接到DataSource,并填充了来自SQL server的数据。我想要实现的是,当我按下一个按钮时,它会弹出一个新窗口,其中包含组合框/编辑框,所有这些框都填充了以前选择的(在DBGrid中)行的数据,并对其进行修改,然后执行更新查询 为了做到这一点,我需要所选记录的主键值,这样我的小程序就会知道应该显示和更新哪一行 我的问题是,如何从DBGrid中获取所选记录的特定单元格值(在本例中为id)?如果知道id字段的列,则可以检查其字段属性。字段Val