Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 194
от 23.08.2006, 18:35

Администратор:CJ
В рассылке:Подписчиков: 248, Экспертов: 27
В номере:Вопросов: 1, Ответов: 2


Вопрос № 52517: Пишу компонент для работы со сложными графами. Имеются: TGraphView =class(TPaintBox), в котором членом класса присутствует NodeList: TObjectList. Хранятся в нем объекты вида TNode = class X, Y: Integer; Name: String; construct...

Вопрос № 52.517
Пишу компонент для работы со сложными графами. Имеются: TGraphView =class(TPaintBox), в котором членом класса присутствует NodeList: TObjectList. Хранятся в нем объекты вида

TNode = class
X, Y: Integer;
Name: String;
constructor Create(X, Y, Name);
...
end;
Хотелось бы, чтобы конструктор TNode заодно и прорисовывал себя на канвасе TGraphView, однако свойство TGraphView.Canvas из внешнего класса не видно. Тут либо переносить Canvas в паблик-секцию, либо? Подскажите варианты, может не имеет смысла делать TNode таким навороченным?
Отправлен: 18.08.2006, 15:38
Вопрос задал: Joncory (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Morgen_krsk
Здравствуйте, Joncory!
Может передавать в конструктор TNode.Create и сохранять внутри класса еще либо указатель на Canvas, либо (что больше мне нравится) указатель на "родителя" TGraphView.
В лучае родителя Canvas в TGraphView нужно перенести в protected секцию и все потомки от TNode делать внутри данного модуля, либо в произвольных модуля, но в классе TNode сделать метод для доступа к указателю на Canvas'у в потомках от TNode.
Вариантов масса. Удачи.
Ответ отправил: Morgen_krsk (статус: 2-ой класс)
Ответ отправлен: 18.08.2006, 16:43

Отвечает: Маренич Владимир
Здравствуйте, Joncory!
Я бы напрямую не использовал "канвас". Вызывайте TGraphView.Invalidate, чтобы указать на необходимость перерисовки, а метод Paint как раз на канвасе и нарисует, когда ему это "скажут".
Ответ отправил: Маренич Владимир (статус: Студент)
Ответ отправлен: 19.08.2006, 16:52


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное