Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
12. Mär 2006
natürlich werden auch die Panels auch freigegeben wenn der Owner frei gegeben wird. Allerdings ist das eben nicht die sauberste Variante.
Und "FindComponent" findet nicht nur Komponenten die zur Designzeit auf dem Form liegen. Auch dort spielt wieder der Owner eine Rolle. Durch
TComponent.Create(Form1);
Trägt sich die erzeugte Instanz bei Form1 ein und somit funktioniert auch
...
Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
12. Mär 2006
genau, du könntest es so erzeugen aber kannst dann nicht darauf zugreifen. Deswegen gibt es Leute welche mit der uneleganten Methode "FindComponent" danach das Panel suchen. Oder es gibt die eleganteren Methoden wie:
- In Array speichern welches nicht lokal ist
- in eine Liste speichern welche nicht lokal ist (TList, TObjectList etc.)
im übrigen gehört zu einem TObject.Create auch immer ein...
Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
12. Mär 2006
zu punkt1: Das Panel bleibt auch nach der Procedure erhalten weil dort dynamich speicher angefordert wird. Letzendlich ist ein TObject ja nur ein Pointer und dieser Pointer ist auch nur lokal gültig. Aber wo der Pointer hinzeigt, das ist immer gültig. Und wenn du TObject.Create aufrufst wird eben dynamich speicher angefordet, eben als würdest du mit New, StrAlloc etc. arbeiten.
Forum: Sonstige Fragen zu Delphi
Delphi
by SirThornberry,
12. Mär 2006
anstelle von
Panel(Pointers^)
einfach
TPanel(Pointers)
denn ein Object ist bereits ein Pointer auf speicher.