Главная страница
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.016 c
3-98476
td
2003-10-09 18:06
2003.10.30
размер numeric поля в dbf


14-98830
Nick Denry
2003-10-11 21:03
2003.10.30
Работа с рееестром через АПИ. Для тех кто спрашивал...


14-98793
Gfa
2003-10-04 19:37
2003.10.30
MyIE


6-98762
Dennisius
2003-09-05 10:56
2003.10.30
А мне нужно наоборот :)


14-98826
Aristarh
2003-10-11 00:29
2003.10.30
Как зайти в bios ноутбука IBM?