Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-18884
Лана Розанова
2002-01-23 16:14
2002.02.07
RichEdit


3-18736
avt
2002-01-09 23:27
2002.02.07
QReport формат А3


3-18721
vano1
2002-01-10 12:27
2002.02.07
Как добраться до базы данных MS Acces?


14-18982
smuggler
2001-12-19 13:23
2002.02.07
Вирус!


1-18892
SergeiSSG
2002-01-23 18:13
2002.02.07
Записать в bmp из PaintBox?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский