nun bin ich soweit, dass ich mich von Delphi verabschiede und auf Lazarus/FPC umschwenke. Ausschlaggebend sind dafür zwei Gründe:
- Open Source Compile und IDE
- erreichbare Plattformen.
Ich hab zwar zum Erhalt vorhandener Sourcen gerade Delphi enterprise 2010 gekauft, aber das soll mich nicht bremsen.
Nun kommt, was kommen muss, einige Fragen:
Im ersten Projekt mache ich kräftig Gebrauch von dynamisch erzeugten Komponenten, Typ TPanel. Diese werden auf dem ersten, ebenfalls dynamisch erzeugten Panel, als Parent abgelegt. Unter Delphi werden alle Komponenten welche den Parent haben beim zerstören dieser Komponente ebenfalls zerstört.
Dies ist unter FPC nicht so?
Ausweg bisher: Ich merke mir die Komponentennamen in einer Stringlist und arbeite diese nach dem Löschen des Parent ab.
Da die Beschreibung etwas kompliziert klingt, hier der Weg zum Handbuch mit kleinen Videos zur Verdeutlichung (Format wmv). Speziell in diesem Verweis wird das deutlich: klick.
Ich empfinde das als recht gefährlich, hängt es doch von der Sorgfalt des Programmierers (also meiner

Übrigens ist das gezeigte alles FPC/Lazarus unter Win.
So, hier Quelltext:
Erzeugen des Parent
Code: Alles auswählen
MainPanel := TPanel.Create(_FSMain);
MainPanel.visible := false;
MainPanel.Name := 'myPanel3';
MainPanel.color := clwhite;
MainPanel.Parent := _FSMain;
Code: Alles auswählen
myLabel := TPanel.create(self);
myLabel.name := 'myName'+SL[0];
Panellist.add(myLabel.name);
mylabel.parent := MainPanel;
Code: Alles auswählen
if MainPanel <> NIL then
begin
MainPanel.free;
MainPanel := NIL;
while Panellist.count > 0 do
begin
TPanel(FindComponent(Panellist[0])).free;
Panellist.delete(0);
end;
end;
Gruß
Peter