DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pesamo
今日帖子: 6
在线用户: 10
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/5/14 17:29:54
标题:
有没得高手,这里来。。。。。 浏览:1410
加入我的收藏
楼主: 我做了一个线程程序,在这个线程里,我用一个循环来判断这个条件是否满足,当满足时就执行一个任务。可以现这样一个问题,创建了这个线程后。我再也不能操作这个界面上的所有东西,就像死机一样。当执行完任务后才能操作界面,请问有何好的办法解决此问题。先谢谢各位大侠。
----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/5/14 17:36:05
1楼: 代码如下:
线程文件:
unit Unit2;

interface

uses
  Classes;

type
  testxc = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

implementation


{ Important: Methods and properties of objects in visual components can only be
  used in a method called using Synchronize, for example,

      Synchronize(UpdateCaption);

  and UpdateCaption could look like,

    procedure testxc.UpdateCaption;
    begin
      Form1.Caption := 'Updated in a thread';
    end; }

{ testxc }

procedure testxc.Execute;
begin
  { Place thread code here }
end;

end.
 

单元文件
-----------------------------------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons,unit2, ExtCtrls;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Edit1: TEdit;
    usedthread: TButton;
    nousedthread: TButton;
    Button1: TButton;
    Label1: TLabel;
    Timer1: TTimer;
    Label2: TLabel;
    procedure usedthreadClick(Sender: TObject);
    procedure nousedthreadClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    xc1,xc2 :testxc;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function textxcfunc(p:pointer):longint;stdcall;
begin
while form1.Edit1.Text<>TimeToStr(Time) do
begin
  form1.Label2.Caption:=TimeToStr(Time);
end;
end;
{function textxcfunc(p:pointer):longint;stdcall;
var
  i:integer;
  DC:HDC;
  S:string;
begin
  DC:=getdc(form1.Handle);
  for i:=0 to 1000000 do begin
      S:=inttostr(i);
      textout(DC,10,10,Pchar(S),length(S));
  end;
  releaseDC(form1.Handle,DC);
end;
}
procedure TForm1.usedthreadClick(Sender: TObject);
var
  hThread:thandle;
  threadid:dword;
begin
  hthread:=createthread(nil,0,@textxcfunc,nil,0,threadid);
  if hthread= 0 then messagebox(Handle,'didn`t create a thread',nil,MB_OK);
end;



procedure TForm1.nousedthreadClick(Sender: TObject);
begin
textxcfunc(nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
textxcfunc(nil);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Label1.Caption:=TimeToStr(Time);
if form1.Edit1.Text=TimeToStr(Time) then
  begin
  showmessage('ddd');
  timer1.Enabled:=false;
  end;
end;

end.
----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 liumazi (刘麻子) ★☆☆☆☆ -
大善人会员
2004/5/14 19:42:00
2楼: 当然会这样拉
----------------------------------------------
好好学习,天天上网。
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/5/14 21:30:12
3楼: 上面这位仁兄能否说清楚一点。
----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 root_lh (Lhxs) ★☆☆☆☆ -
盒子活跃会员
2004/5/14 21:37:26
4楼: 谁能给小弟发一个例子上来嘛,我才开始接触线程编程>>>>>>>
email:webmaster@9999998.com
qq:3141646
----------------------------------------------
中流一壶,千金争挈。宁为铅刀,毋为楮叶。错节盘根,利器斯别。识时务者,呼为俊杰!
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/5/15 9:48:31
5楼: 呵呵你在CSDN上不是贴了吗?
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 ddzhouqian (007) ★☆☆☆☆ -
盒子活跃会员
2004/5/15 10:27:15
6楼: 不懂也顶一下!
----------------------------------------------
-按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行58.59375毫秒 RSS