Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   OnKlick auf dynamisch erzeugte Objekte (https://www.delphipraxis.net/167642-onklick-auf-dynamisch-erzeugte-objekte.html)

roland9999 11. Apr 2012 12:33

AW: OnKlick auf dynamisch erzeugte Objekte
 
Zitat:

FreeAndNil(objectlist);
ich habe es entsprechend geändert.
Aber geändert hat sich nichts.

Das ist der Vorgang zum löschen

Delphi-Quellcode:
procedure Tf_hauptform.Button2Click(Sender: TObject);
var i : integer;
begin
 for I := objectlist.Count to ObjectList.Count - 1 do
  begin
   objectlist.Delete(i);
  end;
 FreeAndNil(objectlist);
end;
Roland

DeddyH 11. Apr 2012 12:38

AW: OnKlick auf dynamisch erzeugte Objekte
 
Du musst die Objekte nicht händisch löschen, das macht TObjectList ganz automatisch. Und wenn deren OwnsObjects-Eigenschaft true ist (Voreinstellung), dann werden die enthaltenen Objekte dabei auch gleich freigegeben.

mkinzler 11. Apr 2012 12:48

AW: OnKlick auf dynamisch erzeugte Objekte
 
Da du aber nur die Liste löschtst, aber die Instanzvariable nicht zurücksetzt, enthält diese die Adresse der nicht mehr existenten Liste - Assigned liefert wahr

DeddyH 11. Apr 2012 12:50

AW: OnKlick auf dynamisch erzeugte Objekte
 
Ja eben, das haben wir in #9 und #10 ja auch schon zu erklären versucht.

roland9999 11. Apr 2012 17:55

AW: OnKlick auf dynamisch erzeugte Objekte
 
Delphi-Quellcode:
procedure Tf_hauptform.Button2Click(Sender: TObject);
var i : integer;
    temp : tcomponent;
begin
 for i:=objectlist.Count -1 downto 0 do
  begin
   Temp:=Components[i];
   if Temp is TJVCaptionPanel then
    Temp.Free;
  end;

 FreeAndNil(objectlist);
end;
Eine andere Variante.
Trotzdem kann ich die Panels nicht wieder neu erzeugen.
Vielleicht kann mit jemand einen Beispielcode liefern der mir da weiter helfen kann.

Gruß

Bummi 11. Apr 2012 18:04

AW: OnKlick auf dynamisch erzeugte Objekte
 
der letzte Post war (sorry) ziemlich sinnfrei , welche Components[i] ??
am besten lädst Du mal ein Zip mit dem Source hoch ...

DeddyH 11. Apr 2012 18:17

AW: OnKlick auf dynamisch erzeugte Objekte
 
Wieso wird die Objektliste durchlaufen und dann mit dem daraus ermittelten Index auf das Components-Array zugegriffen?

roland9999 11. Apr 2012 18:41

AW: OnKlick auf dynamisch erzeugte Objekte
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier ist der Sourcecode

Gruß

roland9999 11. Apr 2012 19:07

AW: OnKlick auf dynamisch erzeugte Objekte
 
Also zur allgemeinen Informationen.

Ich suche, finde und probiere aus solange bis ich eine Lösung gefunden habe.

Momentan verstehe ich nicht wie ich es hinbekommen kann, meine dynamisch erstellten Panels zu entfernen und bei Bedarf wieder zu erstellen.
Der Bedarf ist dann da, wenn in den Kontakten ein neuer Datensatz hinzugefügt, geändert oder gelöscht wurde.

LG

Roland

Sir Rufo 11. Apr 2012 20:21

AW: OnKlick auf dynamisch erzeugte Objekte
 
Und was ist so schwierig daran, das umzusetzen, was dir hier geschrieben wird?
Delphi-Quellcode:
var
  ObjLst : TObjectList;

// Erzeugen der Panels
if not Assigned( ObjLst ) then
  ObjLst := TObjectList.Create;

while ObjLst.Count < 10 do
  begin
    TmpPnl := TPanel.Create( nil );
    ObjLst.Add( TmpPnl );
    TmpPnl.Parent := Self; // nur den Parent auf das aktuelle Formular setzen
    // weitere Properties setzen
  end;

// löschen der Objekte in der Liste und entsorgen der Liste selber
FreeAndNil( ObjLst );


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz