标签: delphi-7

在Delphi 7中设置EXE图标

我正在尝试自定义在Windows资源管理器中显示的图标以及我的Delphi应用程序的桌面快捷方式.

在Delphi 7 IDE中,我在"项目选项"对话框的"应用程序"选项卡中加载了所需的图标.它将我想要的图标显示为图形.

我认为没有必要,但我也将我的图标设置为TMainForm Icon属性.

但是,生成的EXE仍显示默认的D7图标.我错过了什么?

delphi icons delphi-7

10
推荐指数
1
解决办法
2万
查看次数

Delphi 7中的GetStackTrace?

使用Delphi 7,如何从一个字符串中获取表示堆栈跟踪的字符串Exception

try
  SomethingDodgy();
except
  on E:Exception do begin
    // print stack trace
    Log.Write(/* ??? */);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

我听说最新的delphi中有一个GetStackTrace函数,但我找不到delphi 7的任何东西.不,升级不是一个选项:)

delphi exception delphi-7 stack-trace

10
推荐指数
3
解决办法
3981
查看次数

MultiCast消息到同一台机器上的多个客户端

我试着编写一个服务器/服务,在局域网上传播消息的时间大约是一秒钟,有点像服务发现.

该消息需要由可能位于同一台计算机或不同计算机上的多个客户端程序接收.但是每台机器上可能同时运行多个程序.

我使用delphi7,indy 9.0.18

如果我应该使用UDP(TIdUDPClient/Server)或IP MultiCast(TIdIPMCastClient/Server)或者如果它甚至可能...

我设法让它与IP Multi Cast一起使用每台机器一个客户端,但即使经过多次使用不同的绑定..最大/最小端口等,我似乎无法找到解决方案.

delphi multicast indy delphi-7 indy-9

10
推荐指数
2
解决办法
9354
查看次数

Delphi,删除带内容的文件夹

当我在文件夹中有子文件夹时 - 此代码不是删除文件夹...是否有任何错误?

procedure TForm.Remove(Dir: String);
var
  Result: TSearchRec; Found: Boolean;
begin
  Found := False;
  if FindFirst(Dir + '\*', faAnyFile, Result) = 0 then
    while not Found do begin
      if (Result.Attr and faDirectory = faDirectory) AND (Result.Name <> '.') AND (Result.Name <> '..') then Remove(Dir + '\' + Result.Name)
      else if (Result.Attr and faAnyFile <> faDirectory) then DeleteFile(Dir + '\' + Result.Name);
      Found := FindNext(Result) <> 0;
    end;
  FindClose(Result); RemoveDir(Dir);
end;
Run Code Online (Sandbox Code Playgroud)

windows delphi delphi-7

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

如何从TWebBrowser获取HTML源代码

如何从WebBrowser组件获取源代码?

我想在WebBrowser组件上获取活动页面的源代码并将其写入Memo组件.

谢谢.

delphi delphi-7 twebbrowser

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

为什么线程甚至在抢占式多任务操作系统上挨饿(Windows 7)

我写了一个Win32应用程序(在Delphi-7中使用TThread类是32位)来创建100个线程.恢复时的每个线程将连续(在循环中)递增与线程对象相关联的64位计数器(因此不会锁定或共享数据).

如果让系统运行10到15秒并在此之后停止,则应该在每个线程中看到大致相同的计数.但我观察到的是,81个线程在4亿个循环下运行,其余循环超过9.5亿次.与最快的2111万相比,最慢的线程只有2.3亿.

根据MSDN,抢占式多任务处于线程级别(而不是进程级别),因此我的每个线程都应该以循环方式获得其时间片.我在这里错过了什么,为什么会出现这种差异?

编辑1:机器配置:启用超线程的Intel i7 Quad Core 3.4GHz(一次启动8个活动线程).运行Windows-7 64位专业版(测试应用程序是32位)

Edit2(线程代码):测试应用程序是在打开优化的情况下构建的,没有任何调试信息.在IDE外部运行测试应用程序.

type

  TMyThread = class(TThread)
  protected
    FCount: Int64;
  public
    constructor Create;
    procedure Execute; override;
    property Count: Int64 read FCount;
  end;


{ TMyThread }

constructor TMyThread.Create;
begin
  inherited Create(True);
  FCount := 0;
end;  

procedure TMyThread.Execute;
begin
  inherited;
  while not Terminated do
  begin
    Inc(FCount);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi winapi multithreading delphi-7 multitasking

10
推荐指数
1
解决办法
2753
查看次数

如何使用Delphi中的几个组件以编程方式创建表单

我正在使用Delphi 7,我正在尝试以编程方式创建表单.这是我的表单类存根:

unit clsTStudentInfoForm;

interface

    uses Forms;

    type
        TStudentInfoForm = class (TForm)

        end;

implementation


end.
Run Code Online (Sandbox Code Playgroud)

我的主表单上还有一个按钮(这只是一个常规表单,应该在运行时创建并显示上面的表单),点击它时会创建并显示学生表单作为模态窗口.它确实显示了表格,但没有任何内容.您唯一能做的就是单击窗口右上角的关闭按钮将其关闭.

procedure TLibraryForm.btnShowStudentIfoFormClick(Sender: TObject);
var
    f : TStudentInfoForm;
begin
    f := TStudentInfoForm.CreateNew(Self);
    f.ShowModal;
    f.Free;
    f := nil;
end;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不知道如何将组件添加到以编程方式创建的表单中(不是在运行时,而是在源代码中).你能帮我写一些代码,为学生表格添加一个好的按钮,并设置标题和表格的高度和宽度(代码必须写在学生表格文件中)?

任何建议和示例将受到高度赞赏.谢谢.

delphi delphi-7

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

如何安装Virtual Treeview?

Mike Lischke的虚拟树视图在网络上和第三方组件中都很受欢迎.我刚刚在我的机器上下载了4.8.7版本.

我有两个分区的Delphi 2010和Delphi 7.0.

Aftter单击虚拟树视图的安装程序,提示日志文件,说已成功安装.

我检查Delphi 2010,是的,它是在显示3个控件的组件面板上.

但是当我启动Delphi 7.0时,IDE会提示"无法加载VirtualtreesD7.bpl ...".我忽略它,发现虚拟树视图设计时包在列表中,但是UNCHECKED.如果我尝试检查它,它再次承诺"无法加载virtualtreesD7 ......".

我搜索整个磁盘并找到VirtualTreesD7D.bpl,并在设计时包列表中手动添加它.它是带有3个控件的调色板.

我快速测试并退出Delphi 7.0.但是,当我重新启动Delphi 7.0时,它再次提示"无法加载VirtualtreesD7.bpl ...",它再次不在palatte而不是在设计时包列表中检查.

这是一个非常简单的问题.你能告诉我怎么解决吗?非常感谢你提前.

编辑:

感谢您的评论.

我测试了你的评论,但没有成功.

新问题:

如果我通过单击unins000.exe卸载虚拟树视图并仅在Delphi 7.0中重新安装它,安装程序会在最后一个屏幕提示''... completed .."并且没有错误提示.当我启动Delphi 7时,虚拟树视图设计时间包不在包列表中.这比上次更糟糕(上次它在包列表中但未检查).

我仔细检查该日志文件的一行一行,它说:

...
...
VirtualTreesD7.dpk(39) 
VirtualTreesD7.dpk(39) 
VirtualTreesD7.dpk(41) 
VirtualTreesD7.dpk(43) 

**VirtualTreesD7D.dpk(32) Fatal: Required package 'VirtualTreesD7' not found**
Run Code Online (Sandbox Code Playgroud)

为什么?为什么它没有成功安装,也没有在上次安装屏幕中提示安装错误.

如何解决这个"致命......未找到"的问题.

谢谢大家的帮助.

新编辑:(这是答案吗?)

首先感谢您的帮助和建议.

我需要2个小时来测试并找到可能的解决方案.它适用于我的机器,可以安装在Delphi 7.0中.

脚步:

1. uninstall virtual treeview by clicking unins000.exe from Delphi 7.0 ( you can separately install virtual treeview in Delphi 2010)

2. clicking newly downloaded VirtualTreeview setup 4.8.7.exe, install it in Delphi …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7 virtualtreeview

9
推荐指数
1
解决办法
2981
查看次数

是否有MaskEdit面具的参考?

我正在尝试在Delphi 7中创建一个半复杂的掩码文本框.我遇到了一些问题,因为我找不到掩码中每个字符含义的任何参考.我能找到的只是例子.

某处有参考吗?

delphi delphi-7 maskedtextbox

9
推荐指数
1
解决办法
2万
查看次数

在delphi 7中创建一个向导界面

我正在使用delphi 7,我正在尝试创建一个向导界面.我不知道是否有更简单的方法来创建向导,所以我想为向导的每个步骤创建单独的表单,当用户单击"下一步"时,活动表单将关闭,下一个将打开.

这是两个连续形式的屏幕截图: 屏幕截图

我创建了一个过程,它将2个表单作为参数:将关闭的表单和向导的下一个表单

class Procedure Tspad.nextForm(showForm, closeForm: TForm);
begin
   closeForm.Close;
   showForm.Showmodal;
end;
Run Code Online (Sandbox Code Playgroud)

当我单击"下一步"按钮时,将执行以下代码:

Tspad.nextForm(echipContractForm, clientContractForm);
Run Code Online (Sandbox Code Playgroud)

当我运行程序时,我按下"下一步"按钮,下一个表格apeares但是当前没有关闭.

我如何才能完成这项工作,还是有另一种更有效的方法来创建向导?

delphi delphi-7 wizard

9
推荐指数
3
解决办法
4618
查看次数