Daten speichern wenn man was verändert so wieder starten...



  • wie wärs mit Nachdenken wie man das machen könnte.
    Den einfach einen Befehl Speicher mir den aktuellen Zustand
    und öffne den letzten Zustand des Programmes seit den letzten verlassens
    gibt es nicht.

    Also wie solltest du an diesen Problem ran geht.
    Du willst ja die Einstellungen die ein Benutzer macht "sichern"
    also bleibt die nichts anderes übrig als diese Einstellungen
    irgentwo zu speichern (evtl. in einer ini-Datei oder Registry...)

    Und bei nächsten Start deiner Anwendung musste diese "gesicherten"
    Einstellungen wieder einlesen und dein Programm dementsprechent
    verändern.

    So dann fang mal an dich mit TIniFile in der BCB Hilfe zu beschäftigen.



  • Im Gegensatz zu meinen Vorrednern würde ich in der Registry speichern.

    Schau in der Hilfe unter TRegistry nach und hier ist ein Beispiel:

    http://www.marquardtnet.info/cecke/quickies.1/1_quicky_09.html



  • Christian211 schrieb:

    Im Gegensatz zu meinen Vorrednern würde ich in der Registry

    Dann aber auch eine Möglichkeit mit anbieten, sämtliche erstellten Einträge sauber wieder zu löschen.



  • Hi

    Alles schön und gut erstmal faul bin ich nicht ich mache mir gedanken dazu und das man die einstellung speichert und dann wieder abruft war mir auch klar das kann ich mir ja denken.

    Nur wie Realisier ich das einige schlagen inifile vor ok ich habe auch in bcb hilfe geschaut als anfänger is das echt schwer ich weis nicht wie man einen schlüssel erstellt und die daten da abspeichert und sie wieder aufzurufen ( so habe ich das ini file verstanden).

    Kann mir nicht jemand ein beispiel geben wie das Grundgerüst aussieht ich will ja nicht das ihr meine arbeit machen sollt aber vill. mir helfen.

    wär echt super danke im vor raus 🙂



  • Die BCB-Hilfe (VCL-Referenz) hat zum Thema "TIniFile" unter "Verwendung von TIniFile" genau das Beispiel, dass du suchst.

    [EDIT] "im vor raus" wird im Übrigen "im Voraus" geschrieben und dann funktioniert das auch.



  • TIniFile *pIniFile = new TIniFile("c:\\MyApp\\bin\\MyApp.ini");
      if (pIniFile->ReadBool("AutoLoad", "FormProperties", false) == true)
      {
        Visible = pIniFile->ReadBool("FormOptions", "Visible", true);
        Color = (Graphics::TColor)pIniFile->ReadInteger("FormOptions", "Color", clWindow);
        Caption = pIniFile->ReadString("FormOptions", "Caption", "Main");
      }
      delete pIniFile;
    

    faul bin ich nicht ich mache mir gedanken dazu

    Tja, aber das genügt offenbar nicht -> obiges Beispiel kommt aus der Hilfe

    auch in bcb hilfe geschaut

    Und, was die nicht gut??

    ich will ja nicht das ihr meine arbeit machen sollt aber vill. mir helfen.

    Eigentlich sieht es so aus.

    Du hast dich für eine INI-Datei entschieden. Soweit so gut. Dann fang an zu programmieren, teste, debugge und stelle dann ggf. konkrete Fragen.



  • So ich habe das jetzt so gemacht:

    TIniFile *ini;
    ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ) );
    Top = ini->ReadInteger( "Form", "Top", 100 );
    Left = ini->ReadInteger( "Form", "Left", 100 );
    Caption = ini->ReadString( "Form", "Caption", "Default Caption" );
    delete ini;

    und Form1 close

    TIniFile *ini;
    ini = new TIniFile(ChangeFileExt( Application->ExeName, ".INI" ) );
    ini->WriteInteger( "Form", "Top", Top );
    ini->WriteInteger( "Form", "Left", Left );
    ini->WriteString ( "Form", "Caption", Caption );
    delete ini;

    Jetzt erstellt er eine config datei er liest sie am anfang und beim schliessen speichert er die dateiw enn ich das richtig verstanden hab jetzt muss ich nurnoch gucken wie ich die dinge abspeicher wenn man auf Hintergrund 2 klickt das denn der Hintergrund kommt.

    Danke für eure Hilfe ich hoffe ich habs jetze richtig gemacht 🙂

    Bye Malcolm19 🙂



  • Hi

    ICh habe alles geschafft nur eine sache geht nicht.
    Wenn ich bei

    OnActivate if ((Rot1->OnClick))
    {Form1->ScrollBox1->Color=clRed;

    ((Memo9->Text=="Rot1"))

    Also es geht eigentlich im Memo9 feld steht Rot1 und er sollte eigentlich die Farbe anzeigen macht er aber nicht gibt es da ein trick oder anderen Befehl??

    danke 🙂



  • ä?
    du weißt ihm doch auch text zu^^



  • Was soll da rot werden, der Text, der Hintergrund ...? Du könntest die Farbe doch in einem Image anzeigen.



  • hi ja habe ich auch versucht ich wollte die ScrollBox1 ja in anderen farben haben ich habe es auch versucht per bmp zu verändern als hintergrund farbe aber das geht auch nicht ich find das komisch ...

    naja wisst ihr was ich da machen kann???

    danke 🙂



  • Du kannst ja nach zuweisen der Farbe mal

    Form1->ScrollBox1->Repaint();
    

    aufrufen



  • Hi

    Ich habe das ausprobiert klappt irgendwie nicht ich schaue seperat noch in den anderen Beiträgen abernn wenn ihr wisst wie man das macht würd ich mich echt freuen 🙂 danke


Anmelden zum Antworten