Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
ВнизControl "Has no parent window" Найти похожие ветки
← →
Ломов (2007-01-15 15:07) [0]Здравствуйте! Пытаюсь объеденить два компонента
Есть главный компонент от TScrollBoxtype TMyClass = class(TScrollBox)
private
public
Finder: TFinder ;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
и
младший компонент от tpaintboxtype
TFinder = class(TPaintBox)
private
protected
procedure Paint; override;
procedure Painter;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
end;
в создателе главного я пишу такconstructor TMyClass.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Parent:=AOwner as TWinControl;
Finder := TFinder .Create(Self);
Finder .Parent:=self;
Finder .Visible := True;
end;
Младшего такconstructor TFinder.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
Это прекрасно работает
procedure TFinder.Paint;
begin
with inherited Canvas do
begin
Pen.Style := psDash;
Brush.color := clwhite;
Rectangle(0, 0, Width, Height);
end;
end;
а вот при вызове этой процедуры возникает сабжевое сообщениеprocedure TFinder.Painter;
begin
with inherited Canvas do
begin
Pen.Style := psDash;
Brush.color := clwhite;
Rectangle(0, 0, Width, Height);
end;
end;
знаю, в инициализации второго объекта напортачил, а как, не доходит. Поможите
← →
ors_archangel © (2007-01-15 15:37) [1]Можно банально
procedure TFinder.Painter;
begin
if HasParent then with inherited Canvas do begin
Pen.Style := psDash;
Brush.color := clwhite;
Rectangle(0, 0, Width, Height);
end;
end;
← →
Ломов (2007-01-16 05:54) [2]
> ors_archangel © (15.01.07 15:37) [1]
Не помогло (
Может есть еще варианты?
← →
ors_archangel © (2007-01-16 06:06) [3]
> Finder .Visible := True;
зачем?
Когда вызывается Painter?
← →
Ломов (2007-01-16 06:24) [4]
> ors_archangel ©
Спасибо за внимание. Вопрос снят. Это я сам затупил. Пытался вызвать Painter посредством другой процедуры из конструктора TFinder, предварительно не позаботившись о флагах
← →
DimaBr (2007-01-16 09:25) [5]Перенесите присвоение парента вложенного компонента в перекрытие метода SetParent
← →
Ega23 © (2007-01-16 11:36) [6]
> Перенесите присвоение парента вложенного компонента в перекрытие
> метода SetParent
Точно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.04 c