Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Потоки [D6, XP]


Страницы:   1 2 3

image ©   (2007-01-31 10:10:00) 

Подскажите пожалуйста как правильно переопределить процедуры Execute и Synchronize для потока создаваемого в runtime. Имеется компонент на основе TImage двумя TLabel созданный во время работы приложения и необходимо добавить туда TThread для пинга устройств. TThread добавил без проблем, а вот как объявить вышеуказанные процедуры - не знаю.


Германн   (2007-01-31 15:52:00) [1]


> Но уж больно неочевидное решение выбрано было автором, плюс
> еще этот TImage...

Дык что тут странного? Он же его "колбасил" :)


Джо   (2007-01-31 15:32:00) [2]

> [40] Сергей М. ©   (31.01.07 15:27)
> Дык я ему про Keepalive с самого начала долдоню !

Ну, это... «Не осилил», как говорится, всю ветку, сорри :)
Хотя тут уже, по-моему, ветка давно вышла за изначальную тему об азах использования TThread. Но уж больно неочевидное решение выбрано было автором, плюс еще этот TImage...


Сергей М.   (2007-01-31 15:27:00) [3]


> Джо ©   (31.01.07 15:14) [39]


Дык я ему про Keepalive с самого начала долдоню !
Не внемлет ведь) ... Как о стенку горох) ... Хочу, мол, пинг - и все тут))


Джо   (2007-01-31 15:14:00) [4]

Какое-то странное решение, ИМХО, с этими пингами.
Почему бы не сделать так — на каждую машину установить клиента, который, через заданные промежутки времени шлет на «сервер» условленную комманду «я живой». Сервер же периодически смотрит на свои списки и отмечает в них те машины, которые долгое время не отвечали. Впрочем, тут надо бы еще обдумать :)


Сергей М.   (2007-01-31 14:05:00) [5]


> image   (31.01.07 13:35) [37]


Зато больше при смене текста лейбла)

Что совой о пень, что пнем о сову))

А насчет TThread - если ты столь озабочен проблемой "больше кода, меньше кода", то на сей случай и есть TIdICMP.. Для батонокидателей - самое то)


image   (2007-01-31 13:35:00) [6]

Ну в принципе если подумать, то да, но при смене картинки меньше кода.

 MyImage.LoadFromFile('FileName');

или

  MyLabel.MyImage.LoadFromFile('FileName');

Картинка меняется вручную или при смене состояния хоста(доступен-недоступен).


Сергей М.   (2007-01-31 13:23:00) [7]


> Автономность. Все в одном


Почему не в TMyLabel ? Та же пресловутая "автономность")


image   (2007-01-31 13:21:00) [8]


> Св-во Transparent есть и у TImage и у TGraphic - этого вполне
> достаточно.


> Все это расчудесно, но для чего нужно было лепить своего
> TImage-наследника ?
> Все что ты написал не есть сколь-либо серьезный аргумент
> в пользу такого решения.

Автономность. Все в одном.

> Св-во Transparent есть и у TImage и у TGraphic - этого вполне
> достаточно.

Не помню почему, но что-то у меня там с ним были какие-то проблемы(или у него со мной) :).


Сергей М.   (2007-01-31 13:13:00) [9]


> image   (31.01.07 13:06) [32]


Все это расчудесно, но для чего нужно было лепить своего TImage-наследника ?
Все что ты написал не есть сколь-либо серьезный аргумент в пользу такого решения.


> При плотном расположении элементов на форме перекрывает
> соседние элементы


Св-во Transparent есть и у TImage и у TGraphic - этого вполне достаточно.


image   (2007-01-31 13:08:00) [10]

При плотном расположении элементов на форме перекрывает соседние элементы


image   (2007-01-31 13:06:00) [11]

Удобней таскать мышкой по форме(типа рисовать схему сетки). А насчет свойств сейчас попробую объяснить. Имеется TImage и два TLabel при нем.
Один TLabel для айпи, а второй для имени. Один TLabel сверху, а другой снизу от TImage. Двигаются они вместе с TImage и выравниваются относительно его. Каждый TImage имеет еще TTimer и я надеюсь теперь будут иметь TThread при помощи которых будет осуществляться пинг сетки через определенное пользователем время. Имеется кнопочка для создания этих TImage-й. Есть еще компонента-линия при помощи которой все это дело соединяется(рисуется сеть). Готовая схема сохраняется в ini.


Сергей М.   (2007-01-31 12:53:00) [12]


> использовать TObject, но у меня не получилос с его прозрачностью.


Эт какая такая "прозрачность" у TObject ?


Сергей М.   (2007-01-31 12:52:00) [13]


> я уже наколбасил 26 килобайт кода ..переписывать все неохота


Сначала делаем, потом думаем)

И все же нафиг было наследоваться именно от TImage (почему, к примеру, не от того же TLabel, упомянутого тобой ?) - ну никак я в толк не возьму. Какие такие новые замечательные св-ва приобрел твой наследник по отношению к своему предку ?


image   (2007-01-31 12:48:00) [14]

Правда была попытка в самом начале использовать TObject, но у меня не получилос с его прозрачностью.


image   (2007-01-31 12:45:00) [15]


> Сергей М. ©   (31.01.07 12:41) [27]

Может быть и проще если писать с самого начала, но я уже наколбасил 26 килобайт кода, так что переписывать все неохота.


Сергей М.   (2007-01-31 12:41:00) [16]

А, собственно, зачем ты сотворяешь наследника TImage ? Каковы аргументы в пользу именно такого программного решения ?

К примеру, я утверждаю, что логичней и проще в твоем случае будет поступить так:

type

TStation = class(TObject)
..
 FImage: TImage;
 FLabel: TLabel;
 FPinger: TSomePinger;
..
end;

?


image   (2007-01-31 12:38:00) [17]

А, понял. Большое пасибо за ответ.


Сергей М.   (2007-01-31 12:33:00) [18]

type

T MyThread=Class(TThread)
... см. [13]
end;

TMyImage=Class(TImage)
  private
    FThread : TThread;
..
end;

..

FThread := T MyThread.Create(..);


image   (2007-01-31 12:28:00) [19]

Ни чего не получается. А пример можно?


Сергей М.   (2007-01-31 12:21:00) [20]


> в каком месте программы?


Как это где ? В декларации твоего класса TMyImage, разумеется...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо