Форум: "Компоненты";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизПерекрытый 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c