![]() |
Color aus Ini funzt nicht
Hi Leute!
Ich habe ein simples Problem. Ich will eine Color in eine Ini speichern und laden... Ich speichere mit:
Delphi-Quellcode:
und will mit
ini.WriteString('Edit','Color',ColorToString(ColorDialog1.Color));
Delphi-Quellcode:
laden. Doch bei den (und anderen weiteren Versuchen kommt die Meldung vomn Compiler
Label1.Color:=ini.ReadString('Edit','Color',ColorToString(Color));
oder Label1.Color:=ini.ReadString('Edit','Color',ColorToString(text));
Delphi-Quellcode:
Ich lasse mir beim Programmstart die Farbe aus der Ini anzeigen. Und zwar so:
Inkompatible Typen 'TColor' und 'String'
Delphi-Quellcode:
und das funzt. Es liegt also an der lade-prozedur.
ShowMessage(ini.ReadString('Edit','Color',ColorToString(color)));
Wo ist mein Fehler? THX im Vorraus |
Re: Color aus Ini funzt nicht
Hallo DJ-SPM,
versuche es mal so. Der letzte Parameter gibt einen Default-Wert an, wenn die Session bzw. der Key in der Ini-Datei nicht vorhanden
Delphi-Quellcode:
Tschüß Markus
Label1.Color:=StringToColor(ini.ReadString('Edit','Color',''))
|
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
Du müsstest den ausgelesenen String auch wieder in eine Farbe umwandeln.
Delphi-Quellcode:
Label.Color := StringToColor(ini.ReadString(....));
|
Re: Color aus Ini funzt nicht
Sorry Leute,
geht beides nicht... |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
Zitat:
|
Re: Color aus Ini funzt nicht
Ja klar!
Also, der Compiler meckert nicht, aber das Bild ändert sich auch nicht... |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
hast Du es nach dem Zuweisen der Farbe mit Application.ProcessMessages versucht? Da Du ja auch keine Exception bekommst, wurde offensichtlich ein gültiger String für StringToColor übergeben. |
Re: Color aus Ini funzt nicht
Ich habe das im FormActivate-Ereignis stehen. Es ist Form5.
|
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
auch wenn ich das so einbaue geht's bei mir problemlos :gruebel: |
Re: Color aus Ini funzt nicht
ich schau nochmal nach. Moment bitte
|
Re: Color aus Ini funzt nicht
So funzt es nicht:
Delphi-Quellcode:
so auch nicht
Label1.Color := StringToColor(ini.ReadString('Edit','Color',''));
Delphi-Quellcode:
so kommt exeption Inkompatible Typen
Label1.Color := StringToColor(ini.ReadString('Edit','Color',text));
Delphi-Quellcode:
Hm... seltsam... :?:
Label1.Color :=(ini.ReadString('Edit','Color',StringToColor(text));
|
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
und was steht in der INI? |
Re: Color aus Ini funzt nicht
Folgendes:
Delphi-Quellcode:
[OT]...Bei solchen seltsamen Problemen bist du meistens der jenige, der mir hilft. Siehe damals mit dem Wecker...Nur mal so nebenbei :) [/OT]
[Edit]
Color=clGray |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
dann kann ich das nicht nachvollziehen. Ein wenig zusammenhängender Code der's nicht tut wäre jetzt nicht schlecht. |
Re: Color aus Ini funzt nicht
Das ist der code der nicht funzt
Delphi-Quellcode:
Der Code zum speichern der Faber funzt ja, wie man an der Ini-File sieht.
procedure TEditTag.FormActivate(Sender: TObject);
var ini:Tinifile; begin ini:=TInifile.Create(ExtractFilePath(ParamStr(0))+'Settings.ini'); try Image1.Picture.LoadFromFile(ini.ReadString('EditTag','Background',text)); finally ini.free; end; end; Danke erstmal |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
Delphi-Quellcode:
:shock:
Image1.Picture.LoadFromFile(ini.ReadString('EditTag','Background',text));
kannst Du mir auch verraten, was das mit dem Fehler beim Ändern der Hintergrundfarbe eines Labels zu tun hat? :gruebel: :stupid: |
Re: Color aus Ini funzt nicht
:shock: *g* ähm...ja....
Mein Fehler :oops: Also. Der Code zum Laden der Farbe habe ich wieder entfernt. Ich habe also nur im ColorDialog1 die Farbe, die ich auswähle. Sie wird gleich in die Ini gespeichert. Den Code zum Laden der Farbe habe ich bisher immer in OnActivate oder auch mal, nur zu Testzwecken in Image1.Click geschrieben. Bei beiden hat sich nichts getan. *durchdreh* |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
dann schreib' doch mal, zu Testzwecken
Delphi-Quellcode:
in Deine ImageOnClick Routine.
ShowMessage(ini.ReadString('edit','color','KEINE'));
|
Re: Color aus Ini funzt nicht
Ich habe deinen Quelltext übernommen (aber in OnActivate)
und es kam die Message
Delphi-Quellcode:
was soll mir das bringen, wenn ich fragen darf?
KEINE
|
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
jetzt weisst Du, dass aus der INI der Wert nicht ausgelesen wurde. Also stimmt irgendwas beim Auslesen der INI nicht (da der Inhalt derselben ja ok war) |
Re: Color aus Ini funzt nicht
hm, hört sich logisch an...
nur was stimmt nicht. ich meine ini's beherrsche ich eigentlich... ist schon seltsam... |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
eine Sache die ich grundsätzlich mache: Für die Sections und Idents verwende ich immer Konstanten, um Probleme durch Tippfehler zu vermeiden. Es gibt dann keine Differenzen zwischen den Angaben beim Lesen und Schreiben, worauf so mancher Fehler bei der Benutzung von Ini Dateien zurückzuführen ist. Im Moment kann ich mir eigentlich keine andere Ursache denken. |
Re: Color aus Ini funzt nicht
Hey,
Ich habe DIE Lösung. Also, falls noch wer das Problem haben sollte, hier der Code:
Delphi-Quellcode:
Mit den vorherigen Codes hat es funktioniert, dass er in die ini-schrieb, und richtig ausgelesen hat, hat aber die Labels nicht gefärbt. Man musste nur noch das Font dazwischen setzten. Dann gehts.
Label1.Font.Color:=StringToColor(ini.ReadString('Edit','Color',text));
Viel Spaß :bounce1: |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
Zitat:
Das dürfte den Fehler, dass Du bei ShowMessage 'KEINE' angezeigt bekommen hast, aber kaum beseitigt haben. Der Unterschied ist nur, dass Du jetzt die Schrift-, statt der Hintergrundfarbe änderst. :stupid: Vermutlich wird jetzt die Farbe, die Du über den Inhalt von Text angegeben hast als Schriftfarbe verwendet. Trag hier doch mal einen festen, ungültigen, Text ein (z.b. 'KEINE' ;-) ) |
Re: Color aus Ini funzt nicht
Ohweia, ich glaube, wir haben die ganze Zeit aneinander vorbeigeredet.... Ich wollte ja die Schriftfarbe aus der Ini-Datei laden...
Hatte ich das nicht erwähnt? Also, wenn nicht, dann tuts mir echt leid :oops: |
Re: Color aus Ini funzt nicht
Hallo,
Du kannst Color auch in einen Integer casten und mit TInifile.Read-/WriteInteger lesen o. schreiben. |
Re: Color aus Ini funzt nicht
Moin DJ-SPM,
das ist ja nicht das Problem. Ob Du nun die Schrift- oder Hintergrundfarbe so setzen wolltest spielt keine Rolle, wenn das Auslesen aus der INI fehlschlägt, und das dass jetzt auf einmal funktioniert ist das was mich verwundert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 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 by Thomas Breitkreuz