![]() |
TLabel+TEdit
Delphi3-Prof., Paradox7-Tabellen
Anfänger Hallo, Auf der Form1 befinden sich TLabels mit der Bezeichnung "Freifeld". Auf der Form2 habe ich TEdits, damit der User die individuellen Bezeichnungen für die Freifelder eingeben kann. Das funktioniert bestens, aber wenn das Programm beendet und neu gestartet wird, sind die Bezeichnungen nicht mehr vorhanden. Wer kann bitte helfen? Gruß Lombi |
Re: TLabel+TEdit
Tja. Wie wäre es mit abspeichern? Oder wie denkst du soll das Programm beim nächsten Start wissen, was der Benutzer da eingetippt hat? :gruebel:
|
Re: TLabel+TEdit
|
Re: TLabel+TEdit
|
Re: TLabel+TEdit
Hallo,
also irgendwie kriege ich das mit dem "Ini" nicht hin. Das Prog wird zwar compiliert, aber es funktioniert nicht.
Delphi-Quellcode:
Was mache ich falsch? Für Hilfe wäre ich sehr dankbar!
Uses: ... IniFiles;
procedure TForm2.FormClose(...) var Ini:TIniFile; begin: Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Freifelder.ini'); try ini.ReadString(EditFreifeld1.Text','EditFreifeld2.Text','EditFreifeld3.Text'); finally; ini.free; end; Gruß Lombi [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: TLabel+TEdit
Delphi-Quellcode:
Du musst bei den Edits das so lösen:
'EditFreifeld3.Text'
Delphi-Quellcode:
da sonst "EditFreifeld3.Text" in der Ini steht, anstelle dessen Inhalt.
EditFreifeld3.Text
|
Re: TLabel+TEdit
Hai LOMBI,
warum versuchst Du denn beim beenden des Programmes etwas aus der INI zu lesen? Ich denke es wäre besser etwas zu schreiben ;-) |
Re: TLabel+TEdit
Nun habe ich folgendes geändert:
ini.WriteString(EditFreifeld1, ...); aber beim Progstart sind die Einträge in den TEdits einfach nicht da. Gruß Lombi |
Re: TLabel+TEdit
Lädst Du sie denn auch in deinem OnCreate der Form?
|
Re: TLabel+TEdit
Hallo Lombi,
eine IniDatei hast Sektionen, die in eckigen Klammern stehen: z.B.: Zitat:
Delphi-Quellcode:
...
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Freifelder.ini'); Ini.WriteString('Feldinhalte', 'Feld1', Freifeld1Edit.Text); Ini.WriteString('Feldinhalte', 'Feld2', Freifeld2Edit.Text); Ini.WriteString('Feldinhalte', 'Feld3', Freifeld3Edit.Text); |
Re: TLabel+TEdit
Danke für Euer Interesse!
Sharky: Ich habe nun die Eigenschaft OnCreate auf der Form2 gewählt. MrSpock: Ich habe den Quellcode genau übernommen, aber es will immer noch nicht, dh beim Progstart fehlen die Einträge in den TEdits auf Form2. Muß ich vielleicht manuell in der win.ini die Feldinhalte hinzufügen? Gruß Lombi |
Re: TLabel+TEdit
win.ini? gehts noch? wurde die inidatei (Freifelder.ini) eigentlich angelegt?
|
Re: TLabel+TEdit
Lies dir mal das Ini-Tutorial durch, das im 4. Post angesprochen wurde, so wird das nichts.
Win.ini :lol: |
Re: TLabel+TEdit
Hallo,
im Freifelder-Editor steht folgendes: [Aktiv] Wert=1 [userinformation] userneu=Test [Feldinhalte] Feld1=EditFreifeld1 Feld2=EditFreifeld2 ... Wenn auf Form2 der Text in den Edit-Eingabefeldern geändert wird, dann müßte sich das doch oben auswirken oder? Wähle ich zB als Text "Geburtstag", dann müßte Feld1=Geburtstag lauten. Gruß Lombi |
Re: TLabel+TEdit
Wenn du es per
Delphi-Quellcode:
hineinschreibst, dann ja.
ini.writestring(...);
|
Re: TLabel+TEdit
... genauso mache ich das. Woran könnte es dann noch liegen?
Es wird auch alles einwandfrei compiliert. Gruß |
Re: TLabel+TEdit
Zeig bitte deinen Code, so kann keiner etwas dazu sagen.
|
Re: TLabel+TEdit
Hallo LOMBI,
in meinem Code musst du natürlich noch die korrekten Namen der EditFelder eingeben, die du speichern willst:
Delphi-Quellcode:
In der OnCreate musst du jetzt diese Felder wieder mit ReadString einlesen:
...Ini.WriteString('Feldinhalte', 'Feld1', Freifeld1Edit.Text);
Ini.WriteString('Feldinhalte', 'Feld2', Freifeld2Edit.Text); Ini.WriteString('Feldinhalte', 'Feld3', Freifeld3Edit.Text);
Delphi-Quellcode:
...
Ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Freifelder.ini'); Freifeld1Edit.Text := Ini.ReadString('Feldinhalte', 'Feld1', ''); Freifeld2Edit.Text := Ini.ReadString('Feldinhalte', 'Feld2', ''); Freifeld3Edit.Text := Ini.ReadString('Feldinhalte', 'Feld3', ''); Ini.Free; |
Re: TLabel+TEdit
Hier mein Code:
Delphi-Quellcode:
Das Programm wird einwandfrei compiliert, aber die Einträge auf Form2
Uses ...IniFiles;
... procedure TForm2.FormCreate(Sender: TObject); var Ini: TIniFile; begin Ini:= TIniFile.Create(ExtractFilePath(ParamStr(0))+ 'Freifelder.Ini'); Try Ini.WriteString('Feldinhalte','Feld1',EditFreifeld1.Text); Ini.WriteString('Feldinhalte','Feld2',EditFreifeld2.Text); Ini.WriteString('Feldinhalte','Feld3',EditFreifeld3.Text); EditFreifeld1.Text := Ini.ReadString('Feldinhalte','Feld1',''); EditFreifeld2.Text := Ini.ReadString('Feldinhalte','Feld2',''); EditFreifeld3.Text := Ini.ReadString('Feldinhalte','Feld3',''); Finally; Ini.Free; end; in den EditFreifeldern1-3 in der Ini nicht gespeichert. Bitte prüfen, vielen Dank! Gruß Lombi |
Re: TLabel+TEdit
Hallo LOMBI,
du solltest den Code nicht einfach blind kopieren. Denke doch einmal nach, was du da programmierst. Mit WriteString schreibst du die Daten, die in den EditFeldern stehen in die Ini Datei und mit ReadString liest du sie wieder aus. Du hast nun beide Aktionen in die OnCreate Methode geschrieben. Dort sind die Editfelder natürlich noch leer. Du schreibst dann die leeren Strings in die Ini Datei und liest sie anschließend leer wieder aus. Richtig wäre die Daten dann zu schreiben, wenn etwas Sinnvolles drin steht. Also packst du entweder einen Schalter "Speichern" auf das Formular und speicherst die Inhalte der Editfelder auf Knopfdruck oder du speicherst sie z.B. im OnClose Event, also mit dem Schließen des Formulars. In der OnCreate Methode darfst du dann die Werte nur LESEN, aber natürlich nicht sofort wieder mit Leereinträgen überschreiben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:16 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