Einzelnen Beitrag anzeigen

barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Komponenten wieder freigeben

  Alt 12. Jan 2004, 11:06
Hallo alle!

Ich habe ein Panel, welches zur Designzeit ein DBGrid enthält. Zur Laufzeit füge ich die folgenden Komponenten hinzu:

Delphi-Quellcode:
Edit:= TDBEdit.Create(DBGrid.Parent);
Edit.Parent:= DBGrid.Parent;
// Zuweisen des Namens aus dem Spaltennamen der abgefragten Tabelle
Edit.Name:= DBGrid.DataSource.Name+'_'+DBGrid.Fields[count].FieldName;
Was mir ein TDBEdit-Feld erzeugt, dass im Panel "enthalten" ist. Auf Knopfdruck soll nun dieses TDBEdit wieder entfert werden. Dazu bediene ich mich des folgenden:

Delphi-Quellcode:
// Entferne alle TDBEdits, die im Panel "enthalten" sind
for i:=0 to DBGrid.Parent.ComponentCount -1 do
  if (Components[i] is TDBEdit) then
     Components[i].Free;
Leider weden die Komponenten nicht entfernt. Bei einem erneuten erzeugen des TDBEdit-Feldes erhalte ich deshalb die Fehlermeldung "Eine Komponente mit dem Namen ... existiert bereits".

Wie kann ich die erzeugten TDBEdits wieder entfernen? Mir ist nicht klar warum das so nicht funktioniert?

Danke für eure Hilfe,

Gruß,

Barnti
  Mit Zitat antworten Zitat