Entwickler-Ecke
Dateizugriff - registry lesen und als eigenschaft festlegen
Harry M. - Di 08.02.05 22:41
Titel: registry lesen und als eigenschaft festlegen
also ich schraube grad an nen prog, was die einstellungen von delphi aus der registry ließt (was die farben des editors angeht), soweit so gut, jetzt lese ich den string aus der registry und diesen will ich als eigenschaft in meinem programm verwenden.
Delphi-Quelltext
1: 2: 3: 4:
| REGISTRY.OpenKey('Software\Borland\Delphi\7.0\Editor\Highlight\Assembler',FALSE); SynPasSyn1.AsmAttri.Foreground := REGISTRY.ReadString('Foreground Color New'); |
jetzt meckert aber mein compiler aber
Quelltext
1:
| [Fehler] frmMain.pas(282): Inkompatible Typen: 'TColor' und 'String' |
hat jemand ne ahnung wie trotzdem geht ohne jetzt eine ewig lange vergleichstour zu beginnen so in etwa:
Delphi-Quelltext
1:
| if REGISTRY.ReadString('Foreground Color New') = 'clBlack' then SynPasSyn1.AsmAttri.Foreground := clBalck; |
:?
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.
Sprint - Di 08.02.05 23:08
TColor ist ein Zahlenwert. Dann benutze zum Speichern WriteInteger und zum Lesen ReadInteger.
Harry M. - So 13.02.05 04:56
geht leider nicht. delphi speichert die werte in string. deshalb hat auch der debugger gesgagt:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Codeview.exe ist eine Exception der Klasse ERegistryException aufgetreten. Meldung: 'Fehler beim Holen der Daten für 'Foreground Color New''. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- |
Sprint - So 13.02.05 05:26
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.FormCreate(Sender: TObject);
function _StringToColor(const S: string): TColor; begin try Result := StringToColor(S); except Result := clNone; end; end;
begin
with TRegistry.Create do begin try RootKey := HKEY_CURRENT_USER; if OpenKey('Software\Borland\Delphi\7.0\Editor\Highlight\Assembler', False) then begin SynPasSyn1.AsmAttri.Foreground := _StringToColor(ReadString('Foreground Color New')); end; finally Free; end; end;
end; |
Die _StringToColor Funktion ist dafür da, wenn du mehrere Werte auslesen willst und ein Fehler auftritt.
Harry M. - So 13.02.05 05:41
wenn man folgendes berichtig:
Quelltext
1:
| _StringToColor(Registry.ReadString('Foreground Color New')) |
kann man es comilieren. aber es funzt trotzdem nicht. die werte werden nicht übernommen durch SynEdit
Sprint - So 13.02.05 05:50
User-Xy2004 hat folgendes geschrieben: |
wenn man folgendes berichtig |
In meinem Beispiel brauchst du nichts berichtigen! Jetzt poste mal deine komplette Funktion.
Harry M. - So 13.02.05 07:16
probelem erkannt und gebannt...
ich habe meinen code nach deinem muster umgebaut und was soll ich sagen... thx
gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!