Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stringlisten innerhalb MDI-Child (https://www.delphipraxis.net/52853-stringlisten-innerhalb-mdi-child.html)

jaikai 5. Sep 2005 14:46


Stringlisten innerhalb MDI-Child
 
Hi Leute,

habe folegndes Problem:

MDI-Anwendung.
Innerhab des Childs erzeuge ich n Form.create eine Stringliste, die in Destroy oder Close zum Schluß wieder gefreet wird/ werden soll.

Beim Schließen des ersten Childs ist noch alles okay, ab dem zweiten eine Fehlermeldung - mit 99% liegts daran, daß die Stringliste nicht erstellt worden ist. Was aber nicht sein sollte, da ich sie zuvor gecodet habe. Alles verhält sich exact so, als hätte ich sie in der Hauptanwendung erzeugt

Wie kann ich korrekte Stringlisten innerhalb eines MDI-Childs erzeugen und viel später zerstören, ohne Fehlermeldung? Klngt so einfach, ich weiß...

Als Alzternative könnte man ja auch im Hauptprogramm Listen erzeugen und hierüber verwalten. Aber wenn ichs richtig betrachte, geht dies wohl nicht als Variable, so, daß die Anzahl und Namen eindeutig wären.

HAt jemand einen Lösungsansatz für mich?

Jelly 5. Sep 2005 15:15

Re: Stringlisten innerhalb MDI-Child
 
Wo ist deine Stringliste definiert, wie erzeugst du sie und wie gibts du sie wieder frei. Insbesondere interssiert mich auch, wie du dein MDI Child schliesst und wieder frei gibst.

jaikai 5. Sep 2005 16:19

Re: Stringlisten innerhalb MDI-Child
 
Hi,

die HauptAnwendung (wird) eine ganze Anzahl von Childs erzeugen, und jede dieser Listen soll (Bsp. über FindComponent) innerhalb des MDI-Childs abrufbar und verfügbar sein.

Folgendes führt zum Error, sofern mehrere MDI's erzeugt werden und dann über Button (close) geschlossen wird. Somit zerbricht als Folge meine intern Verwaltung, weil Listen deklariert aber nicht mehr da sind. (Das mit dem Nicht-mehr-da-sein ist relativ, ich glaube, daß sie nicht da sind, gegencheck über FindComponent und auf MDI_HilfsList.Count zeigt mir für alle MDIChilds stets den gleichen Wert an über FindComponent. Die logische Ursache dafür ist mir schleierhaft)


Delphi-Quellcode:
// alles aus dem MDI-Child

var
  MDI_HilfsListe  : TStringlist;  
  BlockListe      : TStringlist;  


procedure TMDIChild.FormCreate(Sender: TObject);
begin
  // ...blabla...
   MDI_HilfsListe  := TStringlist.Create;      
   BlockListe      := TStringlist.Create;      
end;


//

procedure TMDIChild.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 { MDI_HilfsListe.free;
   BlockListe.free;
   ... ist egal ob in TMainForm.FormDestroy oder hier
   ... Ab zweitem MDI Schließen ist diese Liste defacto nich mehr greifbar   
       und führt zum Error   
 }

 Action := cafree;
 MainForm.Timer1.Enabled := true; // unwichtig ... regelt Anordnungen
 MainForm.update;         // unwichtig ...
end;
Wobei ich nicht begreife, warum die lokale Aneweisung im Child eine MainForm-Komponente wird...?!?

Danke

tigerman33 5. Sep 2005 16:32

Re: Stringlisten innerhalb MDI-Child
 
Deklarier die Stringliste als Feld des MDI-Child forms. Sonst hast du ja trotzdem nur eine einzige (globale) Variable.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.

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