5,388
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
const
MyMessage =WM_USER+101;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure AddStrPro(Var Message:TMessage);message MyMessage;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
ThreadID:DWORD;
ThreadHandle:THandle;
mark:Boolean=True;
t:Integer=1;
implementation
{$R *.dfm}
function DataRecv(p: Pointer): DWORD; stdcall;
var i:Integer;
begin
while True do
begin
if Mark=False then
Break;
SendMessage(Form1.Handle,MyMessage,1,1);
Sleep(100);
end;
end;
procedure TForm1.AddStrPro(var Message: TMessage);
var
i:Integer;
begin
Application.ProcessMessages;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ThreadHandle:= CreateThread(nil, 0, @DataRecv, nil, 0, ThreadID);
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
MyMessage =WM_USER+101;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure AddStrPro(var Message: TMessage);message MyMessage;
public
{ Public declarations }
end;
var
Form1: TForm1;
ThreadID:DWORD;
ThreadHandle:THandle;
mark:Boolean=True;
t:Integer=1;
implementation
{$R *.dfm}
function DataRecv(p: Pointer): DWORD; stdcall;
var
i:Integer;
begin
while True do
begin
if Mark=False then
Break;
SendMessage(Form1.Handle,MyMessage,1,1);
Sleep(100);
end;
end;
procedure TForm1.AddStrPro(var Message: TMessage);
begin
Edit1.Text := IntToStr(t);
Inc(t);
t := t mod 10000;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ThreadHandle:= CreateThread(nil, 0, @DataRecv, nil, 0, ThreadID);
end;
end.