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

Вниз

Погибаю в пучине потоков (уже давно)   Найти похожие ветки 

 
Eraser ©   (2002-01-21 15:38) [0]

type
TMicro1Thread= class (TThread)
...
private
put: array [0..256] of string;
..
public
...
function Getputpub(num: integer): string;
procedure Setputpub(num: integer; const Value: string);
property putpub[num:integer]:string read Getputpub write Setputpub;
..
end;

procedure TMicro1Thread.Execute;
begin
put[1]:=d;
end;

function TMicro1Thread.Getputpub(num: integer): string;
begin
result:=put[num];
end;

procedure TMicro1Thread.Setputpub(num: integer; const Value: string);
begin
put[num]:=value;
end;

объясниите ламеру почему не могу в основной программе обратиться к массиву.Пишу:
TMicro1Thread.Suspend;
f:=TMicro1Thread.getputpub[1];
TMicro1Thread.setputpub[2]:=g;
Tmicro1Thread.Resume;
и пишется ошибка "getputpub not declared" и вторая такая же


 
yaJohn ©   (2002-01-21 15:42) [1]

f:= TMicro1Thread.getputpub[1];
TMicro1Thread.setputpub[2]:=g;

Tipa Triada, day mne znachenie... ;)


 
Eraser ©   (2002-01-21 15:51) [2]

не допонял Вас


 
Rem ©   (2002-01-21 15:59) [3]

В приведенном коде есть несколько некорректных мест:
1. Если уж объявлять property putpub, то тогда методы чтения/записи следовало бы сделать как минимум protected.
2. Как правильно акцентировал yaJohn, обращаться надо не к классу, а к экземпляру класса.
3. Для вызова функций getputpub и setputpub используются круглые скобки.
4. Для обращения к property putpub используются квадратные скобки.

P.S. Я посоветовал бы Вам поближе познакомиться с Object Pascal


 
Digitman ©   (2002-01-21 16:01) [4]

f:=Micro1Thread.putpub[1];
Micro1Thread.putpub[2]:=g;


 
Eraser ©   (2002-01-22 12:56) [5]

ошибку нашел оказалась даже не в том что спрашивал а в объявлении массивов. ну да ладно это уже сделал спасибо ВАМ всем.
Теперь вот мучаюсь:
как можно передать параметр из потока не останавливая его?
Если пишу
Micro1Thread.suspend;
f:=Micro1Thread.putpub[1];
то все ОК, если без suspend то f всегда 0 и я не могу извлечь информацию из потока ни передать в него.
В принципе нужно в определенный момент (напр. после каждого прохода цикла в потоке) считывать информацию из массива созданного при выполнении потока и передаче его другому обработчику


 
Digitman ©   (2002-01-22 13:24) [6]

используй либо объекты синхронизации ОС либо извещай окно объекта-обработчика синхронной посылкой сообщения SendMessage() о доступности данных для обработки



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

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

Наверх




Память: 0.48 MB
Время: 0.031 c
3-18724
Tadi
2002-01-08 15:22
2002.02.07
Здравствуйте Мастера! Помогите-- TIBQuery - update...... Update Failed?


3-18734
andey
2002-01-10 20:25
2002.02.07
QReport, sumary


14-18979
phantom2040
2001-12-18 13:32
2002.02.07
CGI программа на Delphi под Unix


1-18807
Death
2002-01-25 08:34
2002.02.07
Онять несчастный TThread


3-18715
Dup
2002-01-04 17:03
2002.02.07
Поиск записи