delphi线程问题 delphi 程序里我写了一个方法

问题描述

delphi线程问题 delphi 程序里我写了一个方法
delphi 程序里我写了一个方法,方法里面的算法比较复杂,计算起来时间比较长,我想把这个方法单独放到一个线程里去执行,请问是怎么写?一点头绪没有啊,谢谢

解决方案

unit Unit1;

interface

uses
Windows Messages SysUtils Variants Classes Graphics Controls Forms
Dialogs StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

TMyThread = class(TThread)
protected
procedure DoWork;
procedure Execute; override;
end;

var
Form1: TForm1;
MyThread: TMyThread;

implementation

{$R *.dfm}
procedure TMyThread.Execute;
begin
//算法比较复杂
while not Terminated do
Synchronize(DoWork);
end;

procedure TMyThread.DoWork;
begin
Form1.CheckBox1.Checked := True;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption = 'Stop' then begin
MyThread.Terminate;
Button1.Caption := 'Start';
Exit;
end;
MyThread:=TMyThread.Create(False);
MyThread.Priority:=tpNormal;
Button1.Caption := 'Stop';
Form1.CheckBox1.Checked := False; // start Thread
end;

end.

时间: 2024-11-05 12:10:58

delphi线程问题 delphi 程序里我写了一个方法的相关文章

timer改变前台lable,然后在停止按钮里也写了一个事件改变同一个lable,每次点延迟不是马上停..

问题描述 timer改变前台lable,然后在停止按钮里也写了一个事件改变同一个lable,每次点延迟不是马上停,而是会先停止timer然后延迟几毫秒才会变成停止按钮事件里的lable,想没有延迟,点击停止马上停止,怎么解决啊?timer和停止按钮的代码如下.timer代码privatevoidtimer1_Tick(objectsender,EventArgse){//获得抽奖信息intn=comboBox1.SelectedIndex;//intnum=Convert.ToInt32(com

安卓网-android 在桌面直接打开应用软件和一个程序里直接打开另一个程序机制上有什么不同?

问题描述 android 在桌面直接打开应用软件和一个程序里直接打开另一个程序机制上有什么不同? 面试题来的,完全不会,吓蒙了... android 在桌面直接打开应用软件和一个程序里直接打开另一个程序机制上有什么不同? 解决方案 如何用java程序直接打开一个Excel文件.

把回调方法以及需要的参数传到另一个方法里 怎么在另一个方法里调用

问题描述 <script type="text/javascript">function testCallback(event){alert(event.data.name);alert(event.data.age);}function testFn(callback,option){//在这里符合一定条件时调用callback方法 然后把option当初参数传给callback 不知道怎么写 }function test(){var option = {name=&qu

.net 调用delphi 端口监听程序传递参数问题

问题描述 .net 调用delphi 端口监听程序传递参数问题 有一个delphi写的监听程序,需要传递参数. 我现在用.net 通过TCP调用,但是不知道为什么,监听程序能够监听到我的程序调用 但是无法接受到我的参数. 这是为什么? 以下是发送代码. try { TcpClient tcp = new TcpClient(server, port);//创建链接 Byte[] data = System.Text.Encoding.UTF8.GetBytes(message);//指定参数 N

利用反射自己写的一个ModelHelper类

开发中 很多人都会使用BLL Model这种开发,我也是,虽然现在有很多的自动生成工具,能在几秒内生成cs的模板,但我个人还不是很喜欢,我还是喜欢自己一个一个去写,这样更能了解自己的代码. 不过手动编写的时候,最讨厌的就是GetModel这类方法了,把datarow的数据转换成一个Model,实在写的我头疼,因为很多代码基本上都是一样的,一直想用反射来写这样一个方法,以后只要调用一个方法就能完成Model的赋值,那样就方便了.今天又遇到此类代码了,一时火大,自己写了个方法,采用的反射的原理(从B

快绝望了,哪位大仙来指点下SWING里按钮组的一个问题

问题描述 我在NETBEANS里做JAVA,一个程序里需要用到一个功能片段,点一个按钮后,4个单选按钮的选中状态(其实只有一个会被选中)全部取消.我自己做了个测试程序,如果4个单选按钮不加入同一个ButtonGroup,那我用jRadioButton1.setSelected(false);这条命令就是有效的,但是一但加入了ButtonGroup,把4个按钮都加入这个GROUP,不管用什么语句都没用,比如buttonGroup1.getSelection().setSelected(false)

用C#修改delphi程序里在内存中的变量值

问题描述 请教各位大侠,想用C#去修改delphi写的程序中在内存中一个变量值,变量名知道,请问有什么办法没? 解决方案 解决方案二:有人吗?顶一顶解决方案三:有没吗?再顶顶

用Delphi写的一个完整OpenGL框架

用Delphi写的一个完整OpenGL框架 program OpenGLFramework; {     OpenGL DelphiXE     出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)     作者:帅宏军 shuaihj@163.com} uses   Windows,   Messages,   // 引用OpenGL单元   OpenGL; // 全局变量 var   h_Rc: HGLRC;                    // 窗口着色

第十三章-Delphi开发数据库应用程序概述(二)(2)

13.3.3 数据库窗体专家和数据库操作台(DBD) Delphi为用户开发简单的数据库应用程序提供了一个开发工具叫做"数据库窗体专家"(Database Form Expert),在Delphi系统菜单Tool菜单下可以找到. 数据库窗体专家能够自动生成简单的数据库应用程序中所必须完成的许多任务,它还可以生成基于单个数据库表的应用程序窗体或基于主要──明细型多个数据库表的应用程序窗体,数据库窗体专家能够自动完成的任务如下: ● 放置数据库部件到窗体中(TDataSource部件) ●