Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
18. Mär 2015
CreateWnd wird jedesmal aufgerufen, wenn das interne Window (HWND) neu erstellt wird, das passiert z.B. beim Ändern des Parent, oder beim Umstellen des FormStyle usw.
Ups, mit dem Owner hab ich falschrum geguckt. :oops:
procedure TMyPanel.CreateWnd;
begin
inherited;
Panel1 := TPanel.Create(self);
Panel1.Parent := self;
Self.Owner.InsertComponent(Panel1);
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
18. Mär 2015
Und so hast du dir eine wunderschöne Endlosschleife gebastelt.
MyPanel hat Panel1 als Owner
und Panel1 hat das MyPanel als Owner.
Als Ergebnis halten sich beide gegenseitig im Speicher und am Ende hat man ein Speicherleck,
genauso, als wenn MyPanel garkeinen Owner hätte und es Panel1 nicht gäbe.
Außerdem wird/kann CreateWnd mehrmals zur Laufzeit aufgerufen werden, womit es mehrere...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
12. Mär 2015
Außer bei TForms, welche über CreateForm erstellt werden, sind diese Property im Constructor niemals richtig befüllt. (man kann sie ja erst setzen, wenn die Komponente befüllt wurde :zwinker:)
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by himitsu,
11. Mär 2015
Im Notfall kann man die Insert-Notification behandeln und die bereits hinzugefügte Komponente in das andere Panel verschieben (Parent ändern)
Aber ob der FormDesigner dann noch anbietet diese Komponenten zu bearbeiten, weiß ich auch nicht.