ok, ich versuchs mal so. aber ich denke,das das klappen müsste. nun hab ich aber erst mal das wichtigere Problem. Ich will das beim start innerhalb der form aufgerufene Frame "ändern" sprich dort ein anderes Frame einbinden, samt des Codes dieses anderen Frames. wie realisiere ich das? bzw unter welche funktion muss ich da suchen
Borky
EDIT: ok, das mit der INI-Datei funktioniert einwandfrei. nun hab ich aber ein anderes Problem. ich hab die ini-datei abspeichern lassen.
ich öffne diese nun wieder über einen opendialog. funktioniert auch einwandfrei. wenn ich nun aber das probgram beende oder den frame, in dem die daten angezeigt werden, schließe. bekomme ich eine fehlermeldung.
diesen fehler bekomm ich wenn ich den frame mit destroy schließe:
und diesen, wenn ich das programm mit dem geöffneten frame beende:
wenn ich jedoch erst den fram schließe (und nach ok klicken des fehlers) läuft das prog problemlos weiter und ich kann es auch ohne fehlermeldung normal beenden
hier noch der code, mit dem ich die datei öffne und auslese:
der fehler kommt gleichermassen, wenn ich den dialog mit
frm_lieg_open.open_lgs.Destroy;
bzw.
frm_lieg_open.open_lgs.Free;
freigebe
Wieso erstellst du den Frame eigentlich zur Laufzeit?
Ansonsten:
frm_lieg_open.open_lgs.Create(self);
wird freigegeben aber
frm_lieg_open
wird nicht wieder freigegeben. Vielleicht liegts daran.
...
der fehler selbst is schon behoben. und die frm_lieg_open wird in einer andern prozedur wieder freigegeben. des is ja nur ein schnipssel ausm quellcode. und warum ich frames zur laufzeit erstelle? weil ich mehrere Frames innerhalb einer form abwechselnd haben will.
aber noch etwas. kann man Code global auslagern und dann sozusagen includen. ähnlich wie in php oder C/C++ der include-befehl?
aber noch etwas. kann man Code global auslagern und dann sozusagen includen. ähnlich wie in php oder C/C++ der include-befehl?
...
Ja, oben zu Beginn deiner Datei wirst du den Punkt "uses" sehen. Hinter den schreibst du die Dateinamen (ohne die Endung), die du verwenden willst.
Also wenn du eine Datei "zeugs.pas" hast schreibst du
Delphi hat da schon einige Dateien eingefügt die du bereits benutzt (zB Forms), deine Dateien kannst du einfach dahinter anfügen.
Es ist noch zu erwähnen, es gibt zwei uses in jeder Datei. Einmal ganz oben im Interface-Teil, wo man Klassen definiert und einmal im Implementation-Teil wo der eigentliche Code der Funktionen steht.
Wenn du Funktionen oder Variablen/Konstanten aus anderen Dateien in deinem Interface-Teil nutzen willst musst du die Datei auch dort einfügen. (Sie ist dann aber in der gesamten Datei verfügbar) Dateien die nur im Implementation-Teil eingefügt wurden sind auch nur dort benutzbar.
Der wichtige Unterschied ist, im Interface-Teil darfst du keine Ring-Einfügung machen. Also wenn Datei A in ihrem Interface-Teil Datei B einfügt, darf Datei B nicht Datei A in seinem Interface-Teil einfügen, Delphi würde dir dann einen Fehler entgegenwerfen.
Im Implementation-Teil dürfen solche Ring-Einfügungen aber vorkommen.