Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

Re: Komponenten dynamisch erzeugen = ok, free = nicht ok

  Alt 16. Mär 2005, 12:03
ok, nun mecker zumindest nicht mehr der Compiler, beim Erstellen der exe.

Aber ich bekomme immer noch eine Fehlermeldung. Und zwar versucht das Programm beim Zerstören noch auf Datenbankbestandteile zuzugreifen, vermute ich zumindest, denn in der Fehlermeldung steht immer wieder, dass "Das Feld Text wurde nicht gefunden" Dies ist in dem Fall das letzte Datenbankfeld.

Diese Meldung kommt nur, wenn ich versuche DestroymyDBKompos ausführen zu lassen. Wenn ich mir davor eine Message anzeigen lasse ist alles ok.

Und noch ein kleines Problem. Ich habe die Prozedure ein wenig umgebaut, weil ich einfach checken wollte, wo der Fehler liegen könnte.

Delphi-Quellcode:
procedure TForm1.DestroymyDBKompos;
var
  i:integer;
begin
i:= 0;
  for i := scr_dbfields.parent.ComponentCount-1 downto 0 do
    if (Assigned(scr_dbfields.parent.Components[i]))
      and ((scr_dbfields.parent.Components[i] is TDBEdit)
        or (scr_dbfields.parent.Components[i] is TLabel))
          then
            begin ShowMessage(scr_dbfields.parent.Components[i].Name);
            scr_dbfields.parent.Components[i].Free;
            end;
end;
Die Messagebox erhalte ich nicht, denn es kommt vorher die Meldung, wie oben beschrieben. Hm, muss ich die Komponenten vorher noch von der DB lösen???
Danke
Tom
  Mit Zitat antworten Zitat