Вниз
Скачать: CL | DM;

Как передать данные( массив buf: array   Найти похожие ветки 

← →
k-sergey   (2003-05-05 21:35) [0]

Как передать данные( массив buf: array[0..16999] of char) в поток в функцию?


← →
circul ©   (2003-05-05 21:51) [1]

Либо в конструкторе(1), либо в классе потока определить функцию, в качестве параметра которой будет передаваться массив ( в основном потоке вызывать таким образом - MyThread.ThisFunction(buf);)(2), либо воспользоваться PostThreadMessage(3).


← →
k-sergey   (2003-05-06 10:52) [2]

...а пример не можешь скинуть, а то с потоками еще не очень познакомился...


← →
Palladin ©   (2003-05-06 11:15) [3]

1

TMyThread=class(TThread)
private
MyArrayOfChar:string;
...
public
constructor Create(const Buf:string;CreateSuspend:Boolean=false);
...
end;

Constructor TMyThread.Create;
begin
MyArrayOfChar:=Buf;
inherited Create(CreateSuspend);
end;

2


TMyThread=class(TThread)
private
MyArrayOfChar:string;
MAoCCS:TCriticalSection;
..
public
Constructor Create(CreateSuspend:boolean=false);
Destructor Destroy; override;
procedure AssignBuf(const Buf:string);
...
end;

constructor TMyThread.Create;
begin
MAoCCS:=TCriticalSection.Create;
inherited Create(CreateSuspend);
end;

Destructor TMyThread.Destroy;
begin
MAoCCS.Free;
inherited;
end;

procedure TMyThread.AssignBuf;
begin
MAoCCS.Enter;
MyArrayOfChar:=Buf;
MAoCCS.Leave;
end;


при работе с Buf обязательно

MAoCCS.Enter;
работа с MyArrayOfChar
MAoCCS.Leave;


3
лучше не надо, но если хочешь, то загляни в справку по Windows SDK


← →
k-sergey   (2003-05-06 11:18) [4]

Palladin спасибо попробую...


← →
k-sergey   (2003-05-06 11:51) [5]

делаю по 1:
type
TSenderObj = class(TThread)
private
{ Private declarations }
MyArrayOfChar:array[0..16999] of char;
procedure Ok;
procedure Error;
public
constructor Create(const Buf2:string;CreateSuspend:Boolean=false);
protected
procedure Execute; override;
end;
var buf: array[0..16999] of char;
...
function qz:boolean;
var
buf: array[0..16999] of char;
...
begin
result:=false;
buf:=MyArrayOfChar; здесь ошибка [Error] MyThread.pas(40): Undeclared identifier: "MyArrayOfChar"
...
end;

Constructor TSenderObj.Create;
begin
MyArrayOfChar:=Buf2;
inherited Create(CreateSuspend);
end;


← →
Palladin ©   (2003-05-06 11:55) [6]

1 замечание: я тебе намекнул что пользуйся string
3 замечание: а почему какая то левая функция qz должна знать что такое MyArrayOfChar?

вывод: ты бы сначала в паскале поднатарел бы...


← →
Palladin ©   (2003-05-06 11:55) [7]

2 замечание было отшито цензурой, ибо там был мат


← →
k-sergey   (2003-05-06 12:02) [8]

просто у функции такое название, а она самая главная в этом потоке..!


← →
Palladin ©   (2003-05-06 12:04) [9]

НУ ТАК СДЕЛАЙ ЕЕ МЕТОДОМ КЛАССА ПОТОКА!


← →
k-sergey   (2003-05-06 12:09) [10]

??? я не очень силен в потоках поэтому и спрашиваю, МЕТОДОМ КЛАССА ПОТОКА - мне бы пример, чтобы разобраться, а то эти слова мне не омногом говорят..


← →
Palladin ©   (2003-05-06 12:15) [11]

в таком случае см вывод
Palladin © (06.05.03 11:55)

могу конкретно подсказать почитай, что такое классы чем они отличаются от записей и иже с ними...

в твоем случае,
TSenderObj = class(TThread)
private
...
function qz:boolean;

end;

function TSenderObj.qz;

что же ты через ступеньку прыгаешь?


← →
k-sergey   (2003-05-06 12:50) [12]

спасибо, все сделал...пришлось самому думать...


← →
Palladin ©   (2003-05-06 12:54) [13]

:)))


← →
Palladin ©   (2003-05-06 12:57) [14]

Я требую занести эту фразу в орешник!


← →
Digitman ©   (2003-05-06 13:02) [15]


> Palladin


)))) ... солидарен !) ... и - на флаг империи мастаков Делфи !)))



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.011 c
3-59548
Vick
2003-04-25 17:24
2003.05.19
Уникальное значение поля для таблицы detail


3-59565
Belkova
2003-04-26 14:08
2003.05.19
ComboBox.Items.Add( Edit1.Text


14-59903
Дремучий
2003-04-29 14:54
2003.05.19
Басни со смыслом и моралью....


14-59952
DiamondShark
2003-04-30 15:06
2003.05.19
Что вы думаете о GreenPeace?


3-59579
kaon
2003-04-26 15:06
2003.05.19
Scrolling в DBVomboBox e




   Наверх