Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

Хочу создать поток на методе класса   Найти похожие ветки 

 
Zilog ©   (2003-10-17 11:32) [0]

Допустим:

TMyClass = class
procedure MyMethod;
procedure ThreadMethod;
end;

...

procedure TMyClass.MyMethod;
begin
CreateThread(nil,0,@ TMyClass.ThreadMethod,nil,0,ThreadID);
end;

Интерисующее место выделено курсивом. При попытке создать нить таким образом - выдаёт обшипку Accsess violation...
Если подставвить просто процедуру - всё ок, но вся беда в том, что нужны свойства класса в процедуре....

Подскажите pls, оч надо...


 
Reindeer Moss Eater ©   (2003-10-17 11:34) [1]

@TMyClass.ThreadMethod

@ThreadMethod


 
Zilog ©   (2003-10-17 11:36) [2]

не... так грит Variable Requried


 
Radionov Alexey ©   (2003-10-17 11:57) [3]

>Zilog © (17.10.03 11:36) [2]
класс tthread используй.
Для доступа к свойтвам класса - передавай экземпляр класса в конструктор tthread и храни на него ссылку внутри tthread.


 
Zilog ©   (2003-10-17 12:03) [4]

type TComPort = class

procedure Open(Port : string);
procedure Write(Str : string);
function Read : string;
procedure Close;

private
hPort : THandle;
CommThread : THandle;
Ovr : TOverlapped;
ComStat : TComStat;
ThreadID : cardinal;
TransMask : DWORD;
Error : DWORD;
Count : DWORD;
ReciveBuffer : array [0..255] of char;

procedure Recive;

end;

implementation

procedure TComPort.Open(Port : string);
var DCB : TDCB;
begin
hPort := CreateFile(PChar(Port), GENERIC_READ + GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if hPort = INVALID_HANDLE_VALUE then begin
ShowMessage("Can""t open " + Port + ": " + IntToStr(GetLastError));
Exit;
end;

SetCommMask(hPort,EV_RXCHAR);
GetCommState(hPort,DCB); //



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

Текущий архив: 2003.10.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
9-98425
Fennek^Red
2003-04-24 15:43
2003.10.30
InvalidateRect


4-98934
Alexander
2003-08-22 17:37
2003.10.30
Как можно из COM сервера - расширениз контекстного меню


1-98549
Tommy
2003-10-13 22:19
2003.10.30
Помогите пожалуйста решить вот такую задачу:...


1-98726
AviS1982
2003-10-17 14:39
2003.10.30
Как управлять одной программой с помощью другой


14-98871
Dmitriy O.
2003-09-25 08:55
2003.10.30
Кто делал что то в первые в мире программинга ?