Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизХочу создать поток на методе класса Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.011 c