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