Delphi中的密码加密

我需要在配置文件中存储数据库密码。出于显而易见的原因,我想对它们进行加密(最好使用AES)。有谁知道一个Delphi实现,它可以很容易地引入到一个已有的项目中,其中包含超过10000行历史增长的(呃!)源代码 澄清:Easy意味着将单元添加到项目中,在读取配置文件的地方添加最多5行代码。不应超过15分钟 另一个澄清:需要密码才能创建到db的连接,而不是支持应用程序的用户管理方案。因此,使用散列没有帮助。db引擎检查密码是否有效,而不是应用程序。我已经使用了这个,添加起来非常快。但是没有更多的解决

在Delphi 2009和Finalbuilder 6中使用项目配置

有没有人有过在Finalbuilder 6中使用项目配置选项和Delphi编译操作的经验 目前,构建服务器被设置为直接在编译操作上手动设置所有正确的搜索路径、编译器选项等。这避免了对配置文件的更改破坏构建,并且搜索路径等可能与开发人员机器不同。然而,这可能是一个痛苦的改变,因为它需要在FB而不是在项目中完成 通过Delphi2009中的新BuildConfig选项(以及Finalbuilder 6中对它们的支持),it 应该可以将此配置保存在SCC中,并使其更易于维护和更新 有人试过吗?我使用虚

Delphi 如何在纸上画画

我需要画一个TPanel,最好是直接画,这样上面就不会有另一个组件妨碍mousevent事件捕获(我想画一个小的“大小抓地力”)。我该怎么做呢?最简单的方法就是在面板上放一个标签。但是如果你真的不想这样做,在代码编辑器中输入TCanvas,点击F1,然后在引擎盖下学习它是如何工作的。(不要说我没有警告过你……)这是众多让你的生活更轻松的方法之一。我只是进入Delphi,在TRzPanel上输入: RzPanel1.画布.矩形 我相信还有其他的解决办法,但我不必和雷兹一起寻找 (仅仅是一个满意的客

部署delphi 2010 dbxpress应用程序所需的文件

部署delphi应用程序时遇到问题。它使用dbxpress访问mysql 5.1数据库。当我从另一台计算机运行应用程序时,会发生错误。我已经将midslib.dll包含在我的应用程序中,并将dbxmys.dll和libmysql.dll复制到与我的应用程序相同的文件夹中 希望有人能帮忙。你能用ping命令建立连接吗?你能连接到数据库本身吗?只需使用命令提示符。德尔福没有 可能防火墙正在阻止或远程用户未经授权。您可以使用ping命令建立连接吗?你能连接到数据库本身吗?只需使用命令提示符。德尔福没有

Delphi:如何在ini文件中使用换行符?

是否可以使用Delphi在ini文件中使用换行符 我有一个字符串值,我想使用,但它需要有能力换行。我不需要文本的任何其他格式 我该怎么做 我做Delphi已经有一段时间了,但我认为不能直接包含换行符-换行符就是换行符 但正如Örjan所说,您可以在字符串中包含可以被程序解释为换行符的字符 我怀疑“\n”在.ini文件中是否会自动以任何方式被特别处理,但您可以包含一些其他很少使用的字符,例如管道(|)或波浪线(~),然后让您的应用程序将其转换为换行符。您可以找到一种方法来编码换行符 这取决于你想要

如何在Delphi中显示退出时的最终表单?

这应该是一个简单的一个人。我就是不知道怎么做 退出我的程序后,我想隐藏主窗体并自行显示最后一个“谢谢”窗体,如下所示: procedure TMainForm.ExitExecute(Sender: TObject); begin MainForm.Visible := false; ThankYouForm.Show; MainForm.Close; end; begin Application.Initialize; Application.CreateForm(TMa

Delphi 如何从服务器检查exe是否在终端会话上运行

我正在创建一个更新程序,它将复制更新的.exe文件。它需要检查是否有任何.exe正在终端会话中运行。如果.exes正在运行,它将杀死他们。这将是在具有管理员权限的服务器上运行的服务。代码需要在Delphi中,有人对此有什么想法吗?如果您检查了这些问题,我相信您的问题会得到回答。 它们可能不是专门针对德尔福的,但第二个问题的批准答案提供了指向MSDN网站的链接 或者在网络上的另一次快速搜索中发现了这个代码片段。(这不是我的代码) 似乎GetCurrentSessionid的结果为0,然后您将在

我应该使用什么以编程方式生成Delphi中的打印输出/报告

我需要以编程方式生成报告/打印输出 我的应用程序目前使用FastReport生成报告,包括文本、图像、表格等 它不绑定到任何数据库。一切都是以编程方式构建的 然而,完成的报告在PDF和RTF中看起来并不相同,并且旧代码通常非常复杂 有没有更好的工具以编程方式制作打印输出或报告?最好是输出PDF和文档的文件。您可以试试 它内置了生成PDF、RTF和HTML文档的组件 而且它是免费的。你可以试试 它内置了生成PDF、RTF和HTML文档的组件 而且它是免费的。在我看来,你已经得到了最好的!我使用过Q

Delphi 访问泛型类型的成员

假设我有两个类类型Temploye(具有属性A,B)和TDept(具有属性C,D)。然后我创建了一个从TList派生的类,如下所示: TMyCcontainer<T>=class(TList<T>) TMyCcontainer=class(TList) 因此,我可以创建TMyCcontainer的实例,并用TEmployee或TDept填充。在我的TMyCcontainer类中,是否仍然可以访问Temploye的属性A、B或TDept的属性C、D 当然,该类型是泛型的

Delphi 简单gui设计问题

我有一个非常简单的问题,但我没有找到一个好方法来解决这个问题: 我有一个TEdit领域。当我输入此编辑字段时,我想显示一个面板。 当我点击面板时,面板应该隐藏。 当我离开编辑字段时,面板也应该隐藏,但我不能使用编辑字段的onExit事件,因为这会在我单击面板之前隐藏面板。 我尝试了一段时间来解决这个问题,但找不到一个优雅的方法。。。 有什么想法吗?谢谢 嗯,这是个棘手的问题。您是否考虑过为每个控件(面板和编辑字段除外)隐藏带有onEnter事件的面板 换句话说,当您退出编辑字段并进入面板时,面板

为什么我的C++;生成器程序比我的Delphi程序小这么多? 今天我下载了Delphi和C++ Builder XE试用版。

很长一段时间以来,我一直担心Delphi EXE的大小(在XE中是850 kb),我想,为什么这么大的应用程序甚至只有一个空白表单 但是在C++ Builder XE上,最小大小只有120 KB! 即使我在C++项目中包含了Delphi表单,仍然没有大的大小差异。 < C++如何构建一个几乎相同内容的小EXE?为什么Delphi不能这样做? < P>也许您创建的C++ Builder EXE依赖于运行时包,例如VC66BPL和RTL60.BPL?这可以解释较小的尺寸。很抱歉,有点不理解,谢谢我没

Delphi 鼠标移动时单元格内的虚拟树视图更新提示

我使用TVirtualStringTree作为网格,它运行得非常好 我使用treeviews提示功能在用户将鼠标放置在单元格上时显示提示我必须将HintMode更改为hmHint,因为我希望无论单元格文本长度如何都能显示提示。 我现在要做的是根据鼠标在细胞内的位置显示不同的提示 在使用OnGetHint事件显示提示之前,我可以做到这一点。我的问题是,只有在下次用户将鼠标移动到另一个单元格时才会引发此事件 当提示显示且鼠标在同一单元格内移动时,我找不到更新提示的方法 我已经研究了其他控件的建议,使

Delphi 将对象引用指定给变量

我有一个关于分配的问题,我想知道 “指定”是否创建整个对象的副本,以及 我想知道FTEA.Objects[0]是否也被释放。 我想复制FTEA.Objects[0],当我释放ObjCur时,我不打算释放FTEA.Objects[0]-不确定这样做的正确方法,需要您的帮助,谢谢: function xxxxxxxxxxxxxxxxxxxxxxxx var curQuo, tempQuo:TXX_TEA; begin curQuo :=TXX_TEA(FTEA.Objects[0]);

Delphi 执行查询后数据集的自定义排序顺序?

我希望数据库查询的结果集具有一定的顺序。我要按顺序排序的信息不包含在数据库中,而是在代码中动态生成的,因此我不能使用order by 执行数据库查询后,是否有方法对数据集进行排序?我不需要索引访问,只想对所有记录进行迭代。AFAIK对数据集进行排序的唯一可靠方法是使用ORDER BY 我想: 向查询中添加虚拟订单标记字段。 将结果转储到临时表。 声明一个游标以迭代临时表,并使用自定义逻辑和UPDATE temp_table语句设置order_标记。 从临时表中选择数据,并按标记字段排序。 有可能

Delphi 如何为TCriticalSection注册ExpectedMemoryLeak

这也许很简单。如何在D2007中向Indy9注册TCriticalSection的memleak? 我没有找到任何例子 编辑: 谢谢雷米的回复,但这对我不起作用。在Indy9目录中,我将IdComponent.pas从 initialization GStackCriticalSection := TCriticalSection.Create; finalization // Dont Free. If shutdown is from another Init section, it

奇怪的Delphi整数乘法行为

我正在研究一些古老的Delphi代码,我遇到了一些我不太理解的东西 [bla is set to 130245932] outresult := ((bla * 1103516849) + 12359); [outresult is equal to -413953101] 两个正数相乘如何得到一个负数?为什么我把bla变量从方程中取出来,直接使用整数(像这样) 在应用程序编译之前,我收到一个错误 [DCC Error] Unit1.pas(60): E2099 Overflow in c

Delphi 如何操纵颜色以提供实时发光效果?

我想做一个按钮,当鼠标指向它时,它会发光。背景中必须有一个计时器来控制这些颜色的平滑淡入淡出。它不会从一种颜色跳到另一种颜色,而是逐渐淡入下一种颜色 现在我的问题是,当它淡出到它的常规颜色时,它不会锁定到它的最终颜色。事实上,它不断地从光明跳到黑暗 这是我的一个自定义按钮,我不会发布它的代码,但是这个代码可以放在任何带有鼠标进入/退出事件和颜色属性的东西上 它通过设置变量FMenuDestColor工作提取颜色基于颜色获取RGB值。计时器比较当前颜色和目标颜色之间的每个RGB通道。然后计时器修改

Delphi 确定具有硬链接的目录中使用的实际大小

我最近一直在玩一个程序的硬链接,该程序将文件复制到其目录中的所有位置,删除所有重复的文件,并用硬链接替换它们。我记下来了,好的。我理解硬链接的工作方式,它只是对磁盘上数据本身的另一种引用。因此,如果我从一个创建的硬链接访问数据,它看起来是一样的 问题是找到实际使用的磁盘空间量,这是验证这是否确实节省空间的问题之一。换句话说,如果一个文件以12K文件开始,创建该文件的硬链接,然后在资源管理器中选择两者,它将显示为磁盘上使用的24K,而不是真正应该的12K 我知道我可以在进程前后查询磁盘上的可用空间

Delphi MemoryStream和构造字节数组

我正在使用MemoryStream构造需要发送到服务器的字节数组。我有以下问题: 1) 有没有比这更好的方法来构造字节数组 2) 为什么这段代码在我的内存流中写的是假的 var serial : word; MS : TMemoryStream; const somebytes : array [0..1] of byte = ($72,$72); ... begin MS := TMemoryStream.Create(); try MS.Wri

Delphi Datasnap和TObject引用

如何在datasnap服务器中处理对象引用 我有一个Datasnap服务器方法,它返回TUser对象 TServerMethods.CurrentUser(const AId: Integer): TUser begin Result := GlobalCurrentUser; // <- Don't want to free this object Result.AddReference; end; 当前DataSnap服务器释放了TUser对象,但我想为TreReferenc

Delphi 重新停靠后,我停靠的控件上会出现“关闭”按钮

我有一个油漆盒,我希望用户能够解开和移动。因此,我将其DragKind设置为dkDock,将其DragMode设置为dmAutomatic,并将其放在面板中,将DockSite设置为True。当我将油漆盒卸下并固定到浮动形状后,我遇到了一个相当奇怪的行为。浮动窗体的关闭按钮出现在面板内。我附上了两张截图。一个来自原始状态,另一个在重新对接油漆盒后。我错过了什么 原始状态: 对接后: 更新 使用TLama的解决方案后,结果如下 你没有遗漏任何东西。这就是默认dock manager实现的工作

Delphi 如何在C++;建设者 这个代码的C++等价物是什么?

ImageEnView1.IEBitmap.VirtualBitmapProvider:=TIESlippyMap.Create() 我得到一个编译错误 [bcc32错误]Unit1.cpp(12907):E2285找不到“TIESlippyMap::TIESlippyMap()”的匹配项 在我的密码上 ImageEnview1->IEBitmap->VirtualBitmapProvider = new TIESlippyMap(); 更新:您正在尝试调用此构造函数: const

Delphi接口实现

我希望引用计数应该在接口实现中的外部聚合对象上起作用。 如果我可以参考另一个例子: 以下是该行为的最低限度再现: program SO16210993; {$APPTYPE CONSOLE} type IFoo = interface procedure Foo; end; TFooImpl = class(TInterfacedObject, IFoo) procedure Foo; end; TContainer = class(TInterfac

Delphi 从“恢复”;“对等端重置连接”;Indy TCP客户端

在这种情况下,我应该如何恢复 服务器崩溃,因此连接已异常关闭。对几乎所有内容的调用都会导致“由对等方重置连接”异常。我似乎已经通过在except块内的TIdTCPClient对象上调用Disconnect修复了它,但它会导致最后一个异常,并显示相同的消息(我已在第二个try except块中捕获到) 这是Indy10和Delphi XE2的一个例子 try if not EcomSocket.Connected then EcomSocket.Connect(); ex

Delphi 类标题中的关键字“constructor”是什么意思?

如果我有这样一个类声明: MyCollection<T: TBaseCopyable, constructor> = class MyCollection=class 关键字constructor的作用是什么 不是每个类都已经有了构造函数吗,它在那里做什么呢?它是一个构造函数 约束可以与泛型的类型参数相关联。约束声明在泛型类型的构造中传递给该参数的任何特定类型必须支持的项 此特定约束是: 类型参数可以由保留字“构造函数”的零个或一个实例约束。这意味着实际参数类型必须是定义默认构造

Delphi 美兰德拖带机;Dop-OnClick从不执行

我有一个问题是专门针对Melander的拖放(v5.2)的。我希望这适用于StackOverflow。我想将一些文件从TFileListBox拖动到另一个控件,并使用以下代码执行此操作: procedure TFrmManager.FileListMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); VAR i: Integer; begin //EXIT; <---

Delphi 如何将多行TStrings数据从TIdTCPServer传递到TIdTCPClient

我试图将数据库记录从服务器端应用程序传递到客户端应用程序。在客户端,我需要将数据存储到TStrings集合中 当我传递一个多行字段时,我在客户端收到两个独立的数据项,而不是一个多行数据项!我也尝试使用基于Unicode UTF8的命令来实现这一点,但不幸的是结果是一样的 服务器端代码: procedure TForm1.IdCmdTCPServer1CommandHandlers0Command(ASender: TIdCommand); var myData: TStrings; begi

Delphi中上传速度问题的计算

我使用Delphi2010和聪明的internet suite组件上传文件,并想计算上传速度 我试过这个代码,但它给了我“INF”在标签+错误的速度 那代码有什么问题 private FBytesProceed : Int64; FTimeStamp : TDateTime; FSpeed : double; end; procedure TForm2.clHttp1SendProgress(Sender: TObject; ABytesProceed, ATotalBytes

在Delphi XE3中,无法在项目管理器中看到目标平台节点

我想在Delphi XE3中为64位Windows构建一个现有的32位应用程序。但是我无法选择64位平台,因为我在项目管理器中没有看到节点“目标平台”。你知道原因是什么吗 这是我应该看到的: 我有专业版,并且已经构建了很多WIN64应用程序。将您的项目的DPROJ文件与其他可以使用64位的项目进行比较。失败的项目可能缺少启用非Win32平台的节点,因此项目经理将隐藏目标平台节点 真的 假的 真的 我可以看到目标平台节点。你不能。你的项目有什么特别之处?我已经附上了一张图片,它应该是什么样子(

Delphi TOmniTaskControl:。在WinXP上运行与..计划

在WindowsXP32位虚拟机上测试我的一些代码时,我注意到了一点:我的应用程序总是挂起。我从来没有在我的Windows7 64位计算机上出现过这样的现象,但它在虚拟机上是100%可复制的。 通过远程调试,我发现程序正在挂起对IOmniTaskControl.WaitForInit的调用。我在TOmniWorker.Initialize中设置了一个断点,但它没有被触发 这是我创建任务的方法: constructor TThreadedImportCache.Create( const AI

Delphi XE5和格式设置

我正在更改应用程序中的格式设置。假设计算机的本地货币设置为美元,我想在我的应用程序中使用欧元。我可以使用以下代码更改它 FormatSettings.CurrencyString := '€'; 但是,如果我转到“区域设置”并在那里进行更改,我的格式设置将恢复。我相信应该有办法保证它的安全。您知道解决此问题的方法吗?您可以通过避免使用已弃用多年的全局共享格式设置变量FormatSettings,来解决此问题 而是创建并填充t格式设置类型的局部变量。将其传递给依赖于格式设置的所有函数。只有全局格

Delphi 为什么控件的类名不好?无法创建新的GDI句柄?

我有一个用Delphi语言创建的程序。这将在windows XP SP3上运行 多次打开和停止程序后(~600到700次)(仅打开和停止,不做任何事情)。我的程序将出错: 无法输入到系统的文本框 无法单击某些按钮 当错误发生时,错误将一直存在,直到计算机重新启动。(重新启动程序无法解决此错误) 我检查了一些系统信息,结果如下: 总GDI句柄数小于正常情况下的GDI句柄数:(使用GDIView检测) 正常情况:3513个GDI句柄 发生错误时:3410 控件的类名不正确:(使用spy++

Delphi 使用和过程语法错误

我试图理解如何在我的主要“模块测试单元”中使用单元。它们是“module1.pas”和“module2.pas”。 这是一个控制台程序,我希望在我的主单元模块\u测试中显示和使用这两个单元: program modules_test; uses SysUtils, module1, module2; procedure modules_display; begin module1; module2; end; end. 以下是单元模块1: unit module1; in

如何从Delphi访问Cassandra数据库?

DataStax academy不为Delphi提供驱动程序。如何从Delphi?访问Cassandra Database?有一个C++客户端库,这可能是Delphi集成的起点。看一看,我制作了微型Delphi连接器到MongoDB、SQLite、Redis和CouchDB,只是为了更好地了解这些。我会把卡桑德拉加入名单,也许很快有一天我会尝试一下。(请注意)(另外,)据我了解,Windows平台不支持锡拉开发银行。而且不可能更改表或键空间。所以,我想我不能在我的Delphi应用程序中使用Scy

Delphi 函数导致记录的奇怪行为

示例代码: unit Main; interface uses Winapi.Windows, System.SysUtils, Vcl.Forms; type TSomeRec = record SomeData: Integer; SomePtr: Pointer; procedure Reset; class operator Implicit(const SomeData: Integer): TSomeRec; end; TM

Delphi OpenCL图像计算和屏幕渲染

我不知道如何启动项目来实现这一点: 一个16位整数的矩阵被加载到GPU内存中(这是一个灰度放射学图像) 通过应用函数(例如对比度增强算法),从第一阵列计算16位整数的第二矩阵 第二矩阵的感兴趣区域被转换为用于屏幕显示的RGB图像 我可以做第一步和第二步,但我被困在第三步! 我已经在CPU中实现了所有这些,所以这不是处理灰度或RGB图像的问题,也不是创建用于显示的位图的问题。 我还在OpenCL中实现了前两个步骤,然后在CPU内存中读取生成的矩阵进行RGB位图转换,然后显示它。但这当然很慢,因为在

Delphi与MD5哈希函数的结果不同

我在柏林德尔福工作。 我尝试迁移旧项目,但登录时遇到问题:)。 我无法用新的MD5Hash函数替换md5单元中的旧函数RivestStr。 为了测试这个行为,我创建了一个简单的项目,有2个按钮和3个编辑 我的问题是这两个函数有不同的结果。 我不知道如何使MD5Hash得到与RivestStr相同的结果 uses IdHashMessageDigest, idHash function MD5Hash(Value : String) : String; var workHash : TId

Delphi firemonkey如何以编程方式删除菜单项?

如何删除动态添加到菜单中的菜单项 我动态添加菜单项,例如: m:=TMenuItem.Create(nil); m.Text:='bla bla bla'; mnuMain.AddObject(m); 我找不到任何函数再次删除该条目。 我尝试过删除、释放、移除对象等,但该项目仍然没有移除,仍然可见。诀窍是什么?如果要添加这样的项目: var M : TMenuItem; begin M := TMenuItem.Create(nil); M.Text := 'Bla B

Delphi 德尔菲:字段';假';没有找到。仅在我的计算机上发生

我有一个TCustomClientDataSet(内存中),用于在Delphi程序中进行一些过滤 我的筛选代码如下所示: CDSFilteredGroup.Filter := 'ACP_type = 1 AND ACP_by_default <> False'; CDSFilteredGroup.Filtered := True; 翻译:未找到字段“False”。同样的代码在我同事的计算机上编译和运行得非常好,但在我的计算机上却不行。一定有我错过的选择,知道吗 请记住,代码

Delphi 德尔福Firemonkey TWebbrowser不';不要在模态对话框上工作

我正在使用Delphi XE8、FireMonkey和Win32 我试图在模式对话框中的TWebBrowser控件中加载本地HTML文件。我不断遇到OLE错误,即使是在尝试通过单击按钮来执行以下简单操作时: wbPreview.URL := 'about:blank'; Project WI.exe引发异常类EOleException,并显示消息“Unspecified error” 我认为WebBrowser控件在不是应用程序主窗体的窗体/对话框中不起作用 有人对此有什么见解吗?我尝试将TW

Delphi TClientDataSet如何确定它(远程)连接到的数据库类型?

在FireDAC下,我在服务器应用程序中有一个TFDConnection->TFDQuery->TDataSetProvider,在客户端应用程序中有一个TClientDataSet。它们通过网络连接。(将TClientDataSet.RemoteServer设置为TRODataSnapConnection) TFDConnection可以连接到不同的数据库类型 使用客户机中的TClientDataSet代码,(如何)确定数据库类型 对于一个包含所有这些组件的简单应用程序,我可以在设计时扫描da

显示模式窗口时,Delphi-TChromiumOSR.OnPaint中嵌入的铬不会激发

我正在dcef3包中使用屏幕外渲染组件TChromiumOSR,这是ChromiumEmbedded库的Delphi包装 情况 FormA包含一个TChromiumOSR并绘制输出。 ModalFormB通过对FormA.TChromiumOSR执行一些js代码来修改网页 问题 TChromiumOSR.OnPaint事件(在FormA中)在FormB.showmodel返回之前不会触发 笔记 使用标准TChromium控件,在上述情况下(以模态形式),不存在此类问题 我假设'TForm.s

Delphi Datasnap客户端引发的问题;无效序数“;错误

我创建了一个Datasnap服务器(使用向导的独立tcp/ip),并添加了以下服务器方法: function TServerMethods1.GetSomeData(tablename : String): TDataSet; var qry: TSQLQuery; begin qry := TSQLQuery.Create(nil); qry.SQLConnection := SQLConnection1; qry.SQL.Add('select *'); qry.SQL

Delphi Firemonkey,在横向模式Android上显示矩形

当TEdit将焦点设置为纵向模式时,如何在横向位置显示包含TEdit的矩形?我使用这样的代码,但在横向位置,当Tedit将焦点设置为纵向时,Tedit被键盘覆盖 procedure TForm1.RestorePosition; begin VertScrollBox1.ViewportPosition := PointF(VertScrollBox1.ViewportPosition.X, 0); Layout1.Align := TAlignLayout.Client; Vert

Delphi5是Tserversocket和Tclientsocket的一个简单示例

如果可能,请在DELPHI 5中提供一个示例 假设我们有以下代码:一个简单的tclientsocket与一个tserver套接字通信。 如果tclientsocket的请求是在tserversocket1onReadClient事件的数据处理之后发出的,则一切正常。 但是,在处理过程中,我从socketclient1收到一个新的请求,但我还没有完成处理,如何绕过这个问题呢 我必须在ServerType:stThreadBlocking中实现它吗 我必须创建一个线程来完成这个过程吗 这是一种更好的

如何在Delphi中知道TForm中的最大标题长度

在Delphi VCL应用程序的主窗口中,我希望有这样的标题: 文本1文本2文本3 占用标题的所有可用空间。 Text 1与字幕左对齐,中间的Text 2,右边的Text 3。如果我知道当前标题的最大长度,我可以计算text1和text2之间的空格以及text2和text3之间的空格,使它们按需要对齐。 问题在于,如果表单大小不同,标题的大小也会改变。 如何知道当前的最大长度(TForm)。说明?谢谢 编辑 我尝试将标题设置为300个字符长的字符串,并等待show事件在标题末尾显示“…”(表示溢

Delphi FireMonkey:如何更改样式本';所有窗体运行时上的样式?

我有两个加载了自定义样式的样式本,希望它们能同时应用于所有表单(在windows上测试,东京10.2.3) 如果我设置UseStyleManager=true,则此代码不起作用。如果UseStyleManager=false,则它只对一个表单有效。您可以使用Application.Components[]访问每个表单并设置其样式本属性。对于这两个样式本,保留UseStyleManager=False 在主窗体中添加: type TForm14 = class(TForm) ...

Delphi 如何制作PNG资源?

我有一张表格,上面有一个大的TImage作为背景。问题是,它直接以位图的形式存储在DFM中,占用大约3MB的空间。原始PNG文件约为250K。我想通过在资源中嵌入PNG,然后让表单在OnCreate期间加载它来减少膨胀。既然Delphi2009包含了PNG支持,我就可以这样做了,只是我不太知道如何构建一个包含PNG的资源文件。有人知道这是怎么做的吗?示例文本文件(名为myres.rc): 添加到项目中: {$R 'myres.res' 'myres.rc'} 运行时加载的示例: uses

如何在Firemonkey Delphi中获取TListView选定项的值

我有一个TListView,其中使用Livebindings填充了来自TFDQuery的数据 我想获取所选项目的值,如item.text、itemheader.text等。我已经通过listview1.itemindex找到了所选项目,但获取值对我来说是一件困难的事情。我是TListView和livebindings的新手。我已经花了一天多的时间在互联网上寻找答案,但是看起来太复杂了,不可能完成一项简单的任务。我知道有一种直接的方法 有人愿意分享一些关于如何获取listview所选项目值的线索(

  1    2   3   4   5   6  ... 下一页 最后一页 共 357 页