Auf in Form1 erzeugte Ini in Form4 zugreifen



  • Nun ja, einfach ist relativ. Vom Standpunkt der Wartbarkeit und Fehleranalyse ist mein Vorschlag der Geeignetste.
    Natürlich kannst Du auch den Weg der Public Variable für das Ini-File gehen, das ist auf den ersten Blick einfacher zu realisieren, nur wenn es dann um Änderungen oder Anpassungen geht, wirst Du viel mehr Probleme haben, als Du dir möglicherweise jetzt vorstellen kannst.



  • Naja aber ehrlich gesagt weis ich dich wied du das meinst...kannst mir vielleicht mal ein codebeispiel geben bitte?

    Dunkel...



  • Hi,

    da ich nicht so viele Ini-Dateien verwende, weiss ich gar nicht, ob ich ein passendes Codebeispiel hab'. Ich schau morgen früh auf der Arbeit mal nach...



  • Und schon was gefunden Joe? *ungeduldig wart*

    🙄 😮 😋



  • Sorry, bin heute etwas im Stress und ich hab so speziell nix gefunden...

    Aber so grundsätzlich: In der OnCreate des Mainform die INI-Datei einlesen (in Variablen des Mainforms). In der OnClose oder OnCloseQuery diese Variablen zurückschreiben in die INI-Datei. Die Variablen sollten private sein und über public Eigenschaften (Property) les- und schreibbar gemmacht werden.
    Dann brauchst Du in allen Forms, die Zugriff auf die Variablen aus der INI-Datei haben sollen, nur die Mainform zu 'includieren'.

    Schöner wäre es natürlich, eine eigene Klasse zu entwerfen, die die Variablen aus der INI verwaltet, inkl. Schreib- und Lesemethoden.



  • @Joe
    Ok ich werds mal probieren, aber wenn du nich so viel stress hast würde ich mich freuen wenn du mir da mal was gibst?

    Od schreibst mir per mail...wenn du willst geb ich dir Addy...

    Dunkelseher



  • @Joe
    Also ich bekomms einfach nich hin...

    Vielleicht kannst ja mal nen kleines beispiel so schreiben?

    Wo in Unit1 eine Ini erzeugt wird und auch etwas gefüllt....und in Unit2 ich eben auch was reinschreibe?

    Würd mich echt freuen!

    Wenn Mail willst einfach sagen...

    Dunkelseher


  • Mod

    Hallo

    was hast du probiert
    Zeig uns doch ein wenig Details dazu
    Dann hilft dir sicher gerne jemand

    MfG
    Klaus



  • Ok fang ich mal an (ich werd aber einfachheitshalber nich meine Unitnamen verwenden,sondern nur Uint1,Unit2...)!

    Also hab in Unit 1 eine Ini erstellt

    #include <inifiles.hpp>
    
    TIniFile *Ini = new TIniFile ("c:\\INIS\test.ini");
    

    dann in Unit1 beim OnCreate Ereigniss etwas in die Ini geschrieben!

    static int i = Ini->ReadInteger("test","test",i);
     {
     Ini->WriteInteger("test","test",(++i);
     }
    ...
    

    und jetzt wollte ich auch in Unit2 auf die Ini zugreifen und etwas reinschreiben:

    Unit2.cpp
    #include "Unit1.h"
    ...
    
    Form1->Ini->WriteInteger(.....);
    

    geht nicht...also Form1->Ini, dieser String geht wohl nicht!

    Dann in der Unit1.h

    public:		// Anwender-Deklarationen
            TIniFile *Ini;
               __fastcall TForm11(TComponent* Owner);
    

    Und dann in Unit2.cpp

    Ini->WriteInteger(....);
    

    geht anscheinend auch nicht...

    hm....weiß nich so richtig weiter....


  • Mod

    Hallo

    einen Rat an dich

    Bitte les alle Beitraege nochmal durch
    und wenn du dann noch Fragen hats ....

    MfG
    Klaus



  • Ah @Klaus!

    Hast recht,danke habs gesehen....sorry vielmals!


Anmelden zum Antworten