Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

Перекрытый Paint.   Найти похожие ветки 

 
Ice   (2006-03-16 13:49) [0]

Есть компонент, наследник TPanеl... Его пайнт я перекрыл, ибо надо было рисовать на канве самой панели. Но. Иногда это рисование задевает контролы, которые на этой панели размещены. А если вызывать у этих контролов Repaint, Refresh, Invalidate - то обновление оных вызывает обновление панели, которое, в свою очередь, ну и т.д. ...
Как быть ?

procedure TXPanel.Paint;
var i : integer;
begin
 inherited;

 {......}

 if self.ControlCount > 0 then
   for i:=0 to self.ControlCount - 1 do
    (self.Controls[i] as TControl).Repaint;

end;


 
MBo ©   (2006-03-16 15:29) [1]

>А если вызывать у этих контролов
Так контролы сами перерисовываются же...
TWinControl.PaintHandler
TWinControl.PaintControls


 
Ice   (2006-03-16 16:01) [2]


> MBo ©   (16.03.06 15:29) [1]
> >А если вызывать у этих контролов
> Так контролы сами перерисовываются же...
> TWinControl.PaintHandler
> TWinControl.PaintControls


В дизайн-тайме тоже ? Тогда я чего то не понимаю...


 
MBo ©   (2006-03-16 16:30) [3]

>Тогда я чего то не понимаю...
Разъясни, в чем у тебя проблема-то


 
Ice   (2006-03-16 16:43) [4]

Есть наследник TPanel.
Помещаю его на форму. Все ОК.
Помещаю уже на него TLabel. Все тоже ОК.
Если после этого меняю какие-то свойства, затрагивающие метод Paint моего компонента, TLabel тут же пропадает.

Если переключиться в редактор и снова на форму - TLabel появится. Если нажать F9  - в рантайме TLabel тоже появится.

Проблема в том, чтобы в дизайнтайме обновить контролы на панели, не зацикливая её Paint...


 
clickmaker ©   (2006-03-21 11:17) [5]


> if self.ControlCount > 0 then
>    for i:=0 to self.ControlCount - 1 do
>     (self.Controls[i] as TControl).Repaint

вот это зачем?
и как ты рисуешь на панели?



Страницы: 1 вся ветка

Текущий архив: 2006.11.12;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.065 c
2-1162117932
Серый
2006-10-29 13:32
2006.11.12
Memo,ListBox,ComboBox


2-1162019225
#0FFFF
2006-10-28 11:07
2006.11.12
TPopupMenu


15-1161780471
ocean
2006-10-25 16:47
2006.11.12
Разрезать видео


2-1162122730
silversmith
2006-10-29 14:52
2006.11.12
I/O Error 32 при Rewrite


2-1161942939
term1t
2006-10-27 13:55
2006.11.12
statement too long





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский