Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по TThread   Найти похожие ветки 

 
panov   (2001-12-30 13:48) [16]

Привожу пример работы:
Основная форма (там только одна кнопка - Button1):

unit ThrSample;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
uThread, StdCtrls;

const
WM_BASE = WM_USER;
WM_ENDTHREAD = WM_BASE+1;
type
TfThrSample = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure onWM_ENDTHREAD(var Message: TMessage); message WM_ENDTHREAD;
end;

var
fThrSample: TfThrSample;

implementation
{$R *.DFM}
procedure TfThrSample.onWM_ENDTHREAD(var Message: TMessage);
begin
if Message.wParam = 1 then TMyThread.Create(fThrSample.Handle,1);
end;

procedure TfThrSample.Button1Click(Sender: TObject);
begin
TMyThread.Create(fThrSample.Handle,1);
end;

end.

И определение потока:

unit uThread;

interface

uses
Classes,windows;

type
TMyThread = class(TThread)
private
FNumThread: Integer;
FHandleForm: Integer;
protected
procedure Execute; override;
public
constructor Create(const aHandleForm, aNumThread: Integer);
procedure DoUpdate;
end;

implementation
uses
ThrSample;

constructor TMyThread.Create(const aHandleForm,aNumThread: Integer);
begin
inherited Create(False);
FreeOnTerminate := True;
FNumThread := aNumThread;
FHandleForm := aHandleForm;
end;

procedure TMyThread.DoUpdate;
begin
PostMessage(FHandleForm,WM_ENDThread,FNumThread,0);
//этот код можно выполниить и в EXECUTE
end;

procedure TMyThread.Execute;
begin
// что-то делаем
Synchronize(DoUpdate);
end;

end.




Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.01.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.005 c
3-52508
roman001
2001-12-13 18:44
2002.01.17
такая вот проблема


1-52561
DarT
2001-12-28 12:09
2002.01.17
Сворачивание в TaskBar


1-52558
AlexNekh
2001-12-27 08:48
2002.01.17
RichEdit


1-52599
greenrul
2001-12-29 14:42
2002.01.17
Почему random(4) всегда возвращает 0???


3-52522
Oleg_K
2001-12-14 10:05
2002.01.17
DataSet not in edit or insert mode





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский