ошибка в tterminal.onprocfinished ?

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

ошибка в tterminal.onprocfinished ?

Сообщение minoshi » 12.02.2011 11:38:37

Доброго времени суток!

Вот уже сутки гадаю, то ли это баг то ли я опять не могу въехать я логику MSE

tterminal.onprocfinished(const sender : tobject) отрабатывает когда процесс завершен.

Логично предположить, что sender в данном случае должен быть tterminal.

Ан нет! (sender as tobject).classname показал, что это tmseprocess.

Код: Выделить всё
procedure tmainfo.on_procfinished(const sender: TObject);
begin
  showmessage((sender as tobject).classname);
end;


Что ни есть хорошо, когда создаешь tterminal`ы в ран-тайме и нужно отследить какой именно из них отработал

Пока прикрутил такой костыль :
в юните tmseprocess ввел дополнительное свойство termname : string и при создании очередного терминала в него записываю имя созданного терминала.
Код: Выделить всё
  t := tterminal.create(self);
  t.name := 'term' + inttostr(termNum);
  t.fprocess.termname := t.name;
  t.onprocfinished:= @on_procfinished;


и при завершении смотрю по этому свойству какой терминал закончил работу.

Однако для этого в юните tterminal cвойство fprocess пришлось перенести в секцию public, что тоже ни есть хорошо. К тому же в самой программе в секции uses помимо tmseterminal нужно еще подключать tmseprocess.

Как правильно поступить ?
Аватара пользователя
minoshi
постоялец
 
Сообщения: 279
Зарегистрирован: 17.05.2008 21:23:38

Re: ошибка в tterminal.onprocfinished ?

Сообщение debi12345 » 13.02.2011 13:10:07

Сделано:
> However, the property "fprocess" has to be moved to the "public" section. And
> one more unit ("tmseprocess") has to be used by the program.
>
mseprocess.pas is linked in anyway because of tterminal.fprocess.

> Q: optimal way ?
>
Use oninputpipebroken.
Trunk 4330 has ttermial as sender parameter in onprocfinished.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5752
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)


Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Рейтинг@Mail.ru