Entwickler-Ecke

Dateizugriff - Probleme mit Inifiles


Melanie - So 30.03.03 15:58
Titel: Probleme mit Inifiles
Hallo, wie kann man in eine 'ini' Datei eine gewählte Farbe aus dem Colordialog abspeichern, daß bei Programmneustart dieselbige wieder erscheint ?


:oops:


Alibi - So 30.03.03 16:05

Speichern:

Quelltext
1:
IniFile.WriteString('bla','farbe', ColorToStr(ColorDialog123.Color));                    

Lesen:

Quelltext
1:
ColorDialog123.Color := StrToColor(IniFile.ReadString('bla','farbe', ColorToStr(ColorDialog123.Color)));                    


wulfskin - So 30.03.03 16:06

Hallo Melanie!

Da TColor auch eine Arte Integer ist, kann du diesen ganz einfach per WriteInteger in die Ini-Datei schreiben!

Gruß wulfskin!


Melanie - So 30.03.03 16:12
Titel: .
Hallo,das ist ja klasse!.Aber woher weißt Du das . Steht doch nirgends,oder?

MfG Melly :idea:


wulfskin - So 30.03.03 17:07
Titel: Re: .
Melanie hat folgendes geschrieben:
Hallo,das ist ja klasse!.Aber woher weißt Du das . Steht doch nirgends,oder?

MfG Melly :idea:
Wenn du mich damit meinst:
  1. Probieren geht über Studieren ;)!
  2. Online-Hilfe:
    Zitat:
    type TColor = -(COLOR_ENDCOLORS + 1)..$02FFFFFF;

Gruß wulfskin!


mimi - So 30.03.03 22:06

also meines wissen musst du den Coller wert umwandeln.... zu einem string z.b. so: ColorToString(Farhbe);


wulfskin - Mo 31.03.03 14:09

mimi hat folgendes geschrieben:
also meines wissen musst du den Coller wert umwandeln.... zu einem string z.b. so: ColorToString(Farhbe);
Was soll man gross dazu sagen?
TColor ist ein Integer mit einem bestimmten Bereich und kann deshalb mit WriteInteger abgespeichert werden!
Basta ;)!


mimi - Mo 31.03.03 17:05

sollten man aber nicht tuen, ich habe es mal gemacht....
TColer ist Hex und daherer geht das nicht !!!
versuche es doch mal.
bei meinen verzuchen, hatte es nicht einwandfrei funktioniert ohne umwandlungen...


Delete - Di 01.04.03 20:53

Um das gestrige Thema mal aufzugreifen -

Bei mir ist TColor nicht vom Typ Hex. Und meine Versuche funktionierten sehr gut ... ohne Umwandlungen.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
begin
  self.Color := clAqua;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ini : TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(paramstr(0),'.ini'));
  try
    ini.WriteInteger('Farbtopf','aqua',self.Color);
  finally
    ini.Free;
  end;
end;

ergibt (beim Klick auf Button 2) folgenden Inhalt der INI-Datei:

Quelltext
1:
2:
[Farbtopf]
aqua=16776960

Ich seh da keinen Hex-Wert. Aber egal - mit

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button3Click(Sender: TObject);
var
  ini : TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(paramstr(0),'.ini'));
  try
    self.Color := ini.ReadInteger('Farbtopf','aqua',clBtnFace);
  finally
    ini.Free;
  end;
end;

wird er problemlos geladen, und die Form wird gefärbt.


mimi - Di 01.04.03 22:04

komisch !
Als ich es bei Delphi 5 Standart gemacht habe, habe ich mich gewundert das die Farbe nicht richtig angezeigt wurde, habe z.b. clred gesagt und was kam raus ???


wulfskin - Di 01.04.03 22:06

MathiasSimmack hat folgendes geschrieben:
Um das gestrige Thema mal aufzugreifen -

Bei mir ist TColor nicht vom Typ Hex. Und meine Versuche funktionierten sehr gut ... ohne Umwandlungen.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Button1Click(Sender: TObject);
begin
  self.Color := clAqua;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  ini : TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(paramstr(0),'.ini'));
  try
    ini.WriteInteger('Farbtopf','aqua',self.Color);
  finally
    ini.Free;
  end;
end;

ergibt (beim Klick auf Button 2) folgenden Inhalt der INI-Datei:

Quelltext
1:
2:
[Farbtopf]
aqua=16776960

Ich seh da keinen Hex-Wert. Aber egal - mit

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Button3Click(Sender: TObject);
var
  ini : TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(paramstr(0),'.ini'));
  try
    self.Color := ini.ReadInteger('Farbtopf','aqua',clBtnFace);
  finally
    ini.Free;
  end;
end;

wird er problemlos geladen, und die Form wird gefärbt.
Danke ;)


mimi - Di 01.04.03 22:24

naja ! vieleicht ist das von delphi version zu Delphi version unterschiedlich....


wulfskin - Mi 02.04.03 14:13

mimi hat folgendes geschrieben:
naja ! vieleicht ist das von delphi version zu Delphi version unterschiedlich....
Sicherlich nicht....


Melanie - Mi 02.04.03 17:12

Danke Euch , jetzt weiß ich aber bescheid.

MfG Melly :shock:


mimi - Mi 02.04.03 19:53

@wulfskin
und warum hätte es bei mir nicht funktioniert, ohne umwandlung ?????


wulfskin - Mi 02.04.03 20:13

mimi hat folgendes geschrieben:
@wulfskin
und warum hätte es bei mir nicht funktioniert, ohne umwandlung ?????
Vielleicht ein Fehler im Quelltext?