标签: delphi-7

调用ShowModal时,表单隐藏在其他表单后面

我的申请基于模态表格.主窗体用ShowModal打开一个窗体,这个窗体用ShowModal打开另一个窗体,所以我们有叠加的模态窗体.有时会出现一个问题,当我们以新的形式调用ShowModal时,它隐藏在以前的表单之后,而不是显示在顶部.按下alt + tab后,表单返回到顶部,但这不是一个好的解决方案.你遇到了这个问题,你是如何处理的?

编辑:

我使用的是Delphi 7.

delphi delphi-7

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

如何在Delphi 7中获取当前方法的名称?

有没有办法知道我目前所处方法的名称?

以便:

procedure TMyObject.SomeMethod();
begin
  Writeln('my name is: ' + <hocus pocus>); 
end;
Run Code Online (Sandbox Code Playgroud)

会产生这个输出:

my name is: SomeMethod

delphi delphi-7

24
推荐指数
2
解决办法
9405
查看次数

ms sql xml数据类型转换为文本

在MS Sql中有delphi 7不支持的数据类型,xml数据类型就是一个例子.

我希望将XML数据类型转换为Text数据类型,以便我可以在delphi中处理它.

有没有办法从xml转换为文本?

xml sql-server delphi text delphi-7

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

如何以delphi形式使用动画Gif

我认为没有原生支持gif动画图像.

最好的方法是怎样的?任何允许的免费组件?我在考虑使用TImage和ImageList + Timer,但是我需要将gif的每个帧导出到一个单独的bmp文件中.

delphi animation gif delphi-7 animated-gif

22
推荐指数
3
解决办法
5万
查看次数

德尔福是数字

Delphi中是否有方法检查字符串是否为数字而不引发异常?

它用于int解析.

如果一个人使用,则会引发异常

try
  StrToInt(s);
except
  //exception handling
end;
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7

21
推荐指数
4
解决办法
7万
查看次数

有没有办法在知道字段名称和值的记录中更新字段

鉴于记录:

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'?

我找了一个例子,但我发现的一切都是为了数据库.任何指导我正确方向的帮助表示赞赏.

谢谢,查尔斯

delphi rtti delphi-7

20
推荐指数
2
解决办法
2474
查看次数

如何在Delphi中将字符串保存到.txt文件?

我需要制作一个程序,生成一个以我设置的特定目的地以文本文件格式保存的密码,并且用户需要打开.txt以获取密码以"解锁"另一个程序.

我已经有了在字符串sPass中生成密码的代码,现在我需要使用SaveToFile函数将其保存到我创建的名为Password.txt的文本文件中,但我找不到使用SaveTo文件函数的一般表单Delphi和我不知道将sPass和Password.txt放在函数中的哪个位置.

它应该是这样的:SaveToFile(...)但我不知道如何在Password.txt中保存sPass

编辑:

还有一个问题,在添加字符串之前,如何删除以前存储在Password.txt中的内容,以便在添加字符串之前Password.txt为空?谢谢

delphi string delphi-7 text-files

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

在终端服务器上运行的Delphi 7应用程序的推荐PE头设置?

在调查在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)

delphi delphi-7 terminal-services

20
推荐指数
1
解决办法
7688
查看次数

如何在Delphi中使用变量数组

我有两个Delphi7程序:一个COM自动化服务器(EXE)和另一个使用自动化服务器的程序.

我需要从一个程序传递一个字节数组到另一个程序.

经过一番搜索,我发现使用变体数组是可行的方法(如果你知道更好的方法,请纠正我).

我的问题是:如何在一个程序中创建变量数组,然后如何在另一个程序中读取它的值?

我知道VarArrayCreate和VarArrayLowBound/VarArrayHighBound,但我不确定如何正确地做到这一点.

谢谢!

arrays delphi automation delphi-7 variant

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

从Delphi XE5开始,如何以向后兼容的方式使用基于0的字符串?

我正在尝试将我当前的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 delphi-7 delphi-xe5

18
推荐指数
2
解决办法
3882
查看次数