Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit.text aus einer ini lesen (https://www.delphipraxis.net/129989-edit-text-aus-einer-ini-lesen.html)

Chemiker 1. Mär 2009 11:44

Re: Edit.text aus einer ini lesen
 
Hallo gasty,

kannst Du das nicht ohne eine Ini-Datei machen?

Einfach mit:

Delphi-Quellcode:
ComboBox1.Items.SaveToFile(FileName)
Delphi-Quellcode:
ComboBox1.Items.LoadFromFile(FileName)
Bis bald Chemiker

DeddyH 1. Mär 2009 11:47

Re: Edit.text aus einer ini lesen
 
Damit hätte er ja nur die Sections ohne Werte.

Satty67 1. Mär 2009 11:49

Re: Edit.text aus einer ini lesen
 
Also lesen sollten dann klar sein, Sectionen einlesen hast Du ja schon gemacht.
Dann die Werte bei Bedarf einlesen:
Delphi-Quellcode:
// im OnChange... den Index brauchst Du nicht abfragen, da ja die Section schon im Textfeld steht
Edit1.Text := IniFile.ReadString(ComboBox.Text, 'Value1', '');
Edit2.Text := IniFile.ReadString(ComboBox.Text, 'Value2', '');
Jetzt wird es etwas unsauber:

Wenn jetzt jemand etwas in das Combobox Textfeld eingibt, bleiben die Edits leer, solange die Section nicht existiert. (OnChange wird bei jeder Zeicheneingabe/Listenauswahl aufgerufen) Mit einem Save Button kannst Du dann eine neue Section anlegen. (Siehe oben, nur eben IniFile.WriteString).
Delphi-Quellcode:
// SaveButton Click
IniFile.WriteString(ComboBox.Text, 'Value1', Edit1.Text);
IniFile.WriteString(ComboBox.Text, 'Value2', Edit2.Text);
Das hässliche: Bei jedem Zeichen wird von IniFile gelesen (gepuffert, aber nicht schön) und die Edits werden immer geleert, wenn man in Combobox was eingibt.

Besser wäre eine Combobox im DropDownList Stil (siehe Objektinspektor) und ein Insert Button. Der ruft ein InputQuery auf (Funktion siehe Hilfe), und fügt dann die neue Section ein.

gasty 1. Mär 2009 12:00

Re: Edit.text aus einer ini lesen
 
Also die Combobox ist schon im DropDownList Modus, werd mal den Code probieren und melde mich dann ;D

Satty67 1. Mär 2009 12:04

Re: Edit.text aus einer ini lesen
 
Nochwas... das IniFile-Objekt brauchst Du eigentlich nicht dauernd neu erzeugen.

Leg die Variable ins Formular (private-Abschnitt) und erzeuge das Objekt in TForm.FormCreate.

gasty 1. Mär 2009 12:16

Re: Edit.text aus einer ini lesen
 
Hm, was genau muss ich ins Private legen?
Delphi-Quellcode:
ini,rlini: TiniFile;
?
Und im Form Create hab ich
Delphi-Quellcode:
  ini:= Tinifile.Create((ExtractFileDir(Application.Exename)+'\Pfad.ini'));
  rlini:= Tinifile.Create((ExtractFileDir(Application.Exename)+'\Realmlisten.ini'));
Aber irgendwie führt es zu einem Error. Kann es vielleicht an den 2 Ini-Files liegen?
In der einen ist der Pfad gespeichert und in der anderen die Daten.
Aber das mit dem ins Edit auslesen klappt :D

Und zum speichern, ich wollte das so machen:
*Button klick*
Neues Formular wird aufgerufen mit Edits zum eingeben der Daten.
dann ini.writestring
Aber wird dann nich alles überschrieben? Oder einfach ans Ende hinzugefügt?

Matze 1. Mär 2009 12:21

Re: Edit.text aus einer ini lesen
 
Zitat:

Zitat von gasty
dann ini.writestring
Aber wird dann nich alles überschrieben? Oder einfach ans Ende hinzugefügt?

Das kommt auf die Parameter an, die du übergibst. Wenn der Section-Name und der Wert bereits existieren, wird überschrieben, sonst nicht.

Welcher Fehler kommt denn bei den beiden Inis?

Satty67 1. Mär 2009 12:23

Re: Edit.text aus einer ini lesen
 
Ini.WriteString schreibt dort, wo Du angibst [Section] -> Identifier.

Wenn eines von beiden nicht existiert, wird ein neuer Wert eingetragen, ansonsten halt überschrieben.

€: IniFiles
Delphi-Quellcode:
ini,rlini: TiniFile;
genau, das legst Du so ab und erzeugst die Objekte wie oben beschrieben. Jetzt musst Du noch schauen, das auch auf die beiden Variablen zugegriffen wird. Falls also vom vorherigen Code noch irgendwo anders (z.B. lokal in einer Procedure) ini/rlini angelegt ist, das entfernen.

gasty 1. Mär 2009 12:48

Re: Edit.text aus einer ini lesen
 
Irgendwie gibt das bei mir immer einen Access Violation Error.
Aber egal, ich lass es so wie es ist, es funktioniert :D
Und das Thema ist ja Edit.text aus ini auslesen und das geht ja jetzt.
Danke an alle die geholfen haben :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:34 Uhr.
Seite 2 von 2     12   

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