我的申请基于模态表格.主窗体用ShowModal打开一个窗体,这个窗体用ShowModal打开另一个窗体,所以我们有叠加的模态窗体.有时会出现一个问题,当我们以新的形式调用ShowModal时,它隐藏在以前的表单之后,而不是显示在顶部.按下alt + tab后,表单返回到顶部,但这不是一个好的解决方案.你遇到了这个问题,你是如何处理的?
编辑:
我使用的是Delphi 7.
有没有办法知道我目前所处方法的名称?
以便:
procedure TMyObject.SomeMethod();
begin
Writeln('my name is: ' + <hocus pocus>);
end;
Run Code Online (Sandbox Code Playgroud)
会产生这个输出:
my name is: SomeMethod
在MS Sql中有delphi 7不支持的数据类型,xml数据类型就是一个例子.
我希望将XML数据类型转换为Text数据类型,以便我可以在delphi中处理它.
有没有办法从xml转换为文本?
我认为没有原生支持gif动画图像.
最好的方法是怎样的?任何允许的免费组件?我在考虑使用TImage和ImageList + Timer,但是我需要将gif的每个帧导出到一个单独的bmp文件中.
Delphi中是否有方法检查字符串是否为数字而不引发异常?
它用于int解析.
如果一个人使用,则会引发异常
try
StrToInt(s);
except
//exception handling
end;
Run Code Online (Sandbox Code Playgroud) 鉴于记录:
MyRecord = record
Company: string;
Address: string;
NumberOfEmplyees: integer;
Run Code Online (Sandbox Code Playgroud)
你能写一个函数调用吗?
function UpdateField(var FieldName: string; FieldValue: variant): bool;
Run Code Online (Sandbox Code Playgroud)
以便:
UpdateField('Company', 'ABC Co');
Run Code Online (Sandbox Code Playgroud)
将MyRecord.Company更新为'ABC Co'?
我找了一个例子,但我发现的一切都是为了数据库.任何指导我正确方向的帮助表示赞赏.
谢谢,查尔斯
我需要制作一个程序,生成一个以我设置的特定目的地以文本文件格式保存的密码,并且用户需要打开.txt以获取密码以"解锁"另一个程序.
我已经有了在字符串sPass中生成密码的代码,现在我需要使用SaveToFile函数将其保存到我创建的名为Password.txt的文本文件中,但我找不到使用SaveTo文件函数的一般表单Delphi和我不知道将sPass和Password.txt放在函数中的哪个位置.
它应该是这样的:SaveToFile(...)但我不知道如何在Password.txt中保存sPass
编辑:
还有一个问题,在添加字符串之前,如何删除以前存储在Password.txt中的内容,以便在添加字符串之前Password.txt为空?谢谢
在调查在Windows 2008终端服务器上运行Delphi 7应用程序的一些用户报告的外部异常C0000006错误时,我发现了几个关于此问题和相关问题的问题.我想知道是否有人有这些设置的确切列表,这些设置适用于在终端服务器上运行的标准Delphi 7数据库应用程序.
我看过的问题包括:
到目前为止我还没有阅读这些内容,我认为我应该将以下内容添加到.dpr文件中:
const
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000;
// Following are already defined in D7's Windows.pas
IMAGE_FILE_RELOCS_STRIPPED = $0001;
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400;
IMAGE_FILE_NET_RUN_FROM_SWAP = $0800;
{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}
{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED
or IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
or IMAGE_FILE_NET_RUN_FROM_SWAP}
Run Code Online (Sandbox Code Playgroud)
编辑:剥离重定位部分可能是不必要的,所以这是修订版本:
const
IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000;
// Following are already defined in D7's Windows.pas
IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = $0400;
IMAGE_FILE_NET_RUN_FROM_SWAP = $0800;
{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP
or IMAGE_FILE_NET_RUN_FROM_SWAP}
Run Code Online (Sandbox Code Playgroud) 我有两个Delphi7程序:一个COM自动化服务器(EXE)和另一个使用自动化服务器的程序.
我需要从一个程序传递一个字节数组到另一个程序.
经过一番搜索,我发现使用变体数组是可行的方法(如果你知道更好的方法,请纠正我).
我的问题是:如何在一个程序中创建变量数组,然后如何在另一个程序中读取它的值?
我知道VarArrayCreate和VarArrayLowBound/VarArrayHighBound,但我不确定如何正确地做到这一点.
谢谢!
我正在尝试将我当前的Delphi 7 Win32代码转换为Delphi XE5 Android,只需要很少的更改,这样我的项目就可以从一系列Delphi版本和XE5的Android交叉编译到Win32.
从XE5开始,针对未来的语言会发生重大变化.其中一个变化是从零开始的字符串.
在具有基于1的字符串的旧版本中,以下代码是正确的:
function StripColor(aText: string): string;
begin
for I := 1 to Length(aText) do
Run Code Online (Sandbox Code Playgroud)
但现在这显然不对.建议的解决方案是使用:
for I := Low(aText) to High(aText) do
Run Code Online (Sandbox Code Playgroud)
这样,XE5 Win32处理基于1的字符串,而XE5 Android处理基于0的字符串.但是有一个问题 - 以前的Delphi版本(例如XE2)在这样的代码上输出错误:
E2198 Low cannot be applied to a long string
E2198 High cannot be applied to a long string
Run Code Online (Sandbox Code Playgroud)
我有很多字符串操作代码.我的问题是 - 如何修改和保持上面的代码可以在Delphi 7 Win32和Delphi XE5 Android中编译?
PS我知道我仍然可以在XE5中禁用ZEROBASEDSTRINGS定义,但这是不受欢迎的解决方案,因为在XE6中,这个定义可能会消失,并且所有字符串都将被强制为0.
delphi ×10
delphi-7 ×10
animated-gif ×1
animation ×1
arrays ×1
automation ×1
delphi-xe5 ×1
gif ×1
rtti ×1
sql-server ×1
string ×1
text ×1
text-files ×1
variant ×1
xml ×1