Autor Beitrag
man-u
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: So 20.02.05 14:55 
Hallo,

Ich habe ein Programm geschrieben indem ich inis benutze um einstellungen zu speichern. Nun habe ich mein programm so geschriebn das bei jedem Programmstart in der Prozedur Form1 OnCreate Standardwerte für diese Einstellungen gesetzt werden. Nun ich tue dies damit man beim ersten Programmstart nicht erstaml alles einstellen muss, was ich als eher lästig empfinde. Mein Problem ist aber nun, dass nun auch beim zweiten Programmstart diese Standardeinstellungen gesetzt werden, obwohl man seine persöhnlichen einstellungen schon gesetzt hat. Praktisch werden bei jedem Programmstart die einstellungen resetet.
Mein Ziel ist es nur bei dem ersten Programmstart die Einstellungen zu setzen. Eine Idde habe ich auhc schon, weiß nur net wie ich sie umsetzen soll.
Ich will, dass bevor die Standardeinstellungen in der OnCreate Prozedur gesetzt werden überprüft wird ob eventuell schon eine "settings.ini" vorhanden ist. Wenn ja dann nicht folgende befhele durchführen. Wenn sie nicht vorhandne ist dann folgende befehledurchführen.



Ich hoffe ich habe mein Problem gut genug erklärt und dass ihr mir helfen könnt. (Ich Füge noch im folgenden meine Prozedur ein dmait es für euch besser nachzuvollziehen ist)


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.FormCreate(Sender: TObject);
var Ini : TIniFile;
    pfad2 : string;
begin
DragAcceptFiles(Form1.Handle, true);

pfad2:=(extractFilepath(paramstr(0)));
Ini:=TIniFile.Create(pfad2 + '\settings.ini');

Ini.WriteInteger('Section' , 'Schluessel1' , 225);
Ini.WriteInteger('Section' , 'Schluessel2' , 136);
Ini.WriteInteger('Section' , 'Schluessel3' , 48);
Ini.WriteInteger('Section' , 'Schluessel4' , 289);
Ini.WriteBool('Section2' , 'Schluessel1' , true);
Ini.WriteInteger('Section3' , 'Schluessel1' , 320);
Ini.WriteInteger('Section3' , 'Schluessel2' , 470);
Ini.WriteInteger('Section3' , 'Schluessel3' , 353);

end;




Gruß man-u

Moderiert von user profile iconAXMD: Delphi-Tags hinzugefügt.
Kokel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 79

XP Prof
delphi 2006 Prof.
BeitragVerfasst: So 20.02.05 15:29 
Ich würd das so machen
ausblenden Delphi-Quelltext
1:
If FileExists(GetCurrentDir+'blabla.ini') then ....					

das wäre nun für das aktuelle verzeichnis
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 20.02.05 15:30 
man-u hat folgendes geschrieben:
Ich will, dass bevor die Standardeinstellungen in der OnCreate Prozedur gesetzt werden überprüft wird ob eventuell schon eine "settings.ini" vorhanden ist.
Überprüfen kannst du sowas mit Suche in: Delphi-Forum, Delphi-Library "FILEEXISTS"().
Ansonsten würde ich in so einem Fall eher eine Standard-INI mitliefern und gar keine Standardwerte in meinem Programm haben.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
OneOfTen
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 20.02.05 15:35 
Kannst doch auch die Standardwerte setzen und danach die Ini laden, sofern vorhanden, siehe o.g. Beiträge...
man-u Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: So 20.02.05 17:51 
okay danke euch ich probier das ma aus
Wizard of OS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19

Win95, Win98, Win2000, WinNT, Win XP
D5
BeitragVerfasst: Mo 21.02.05 14:34 
Hallo,

Du läßt am besten die Ini-Datei jungfräulich, also ohne Default-Werte.
Stattdessen setzst Du diese Default beim Einlesen aus der Ini-Datei.

Werden Einträge in der Ini-Datei gefunden, werden diese verwendet,
ansonsten (wenn keine Einträge vorhanden) kommen die Defaults der
Read-Methode zum Tragen.

Beispiel:

ausblenden Delphi-Quelltext
1:
sCaption := aIniFile.ReadString('Formulardaten','Ueberschrift','Default-Ueberschrift');					


Ist in der Section "Formulardaten" unter dem Eintrag "Ueberschrift" etwas hinterlegt,
wird dieser Wert sCaption zugewiesen, ansonsten wird "Default-Ueberschrift" zugewiesen.