![]() |
variable leer??
Einen wunderschönen 4. Advent an alle!
kurz der quell:
Code:
BGFarbindex ist eine globale variable. soweit so gut.
procedure TForm4.RadioGroup1Click(Sender: TObject);
var ini3: TInifile; begin case RadioGroup1.ItemIndex of 0: BGFarbindex := 'clRed'; 1: BGFarbindex := 'clYellow'; 2: BGFarbindex := 'clBlue'; 3: BGFarbindex := 'clWithe'; end; Ini3:=TIniFile.Create('dat\settings.ini'); try Ini3.WriteString('Farben','BGPreis',BGFarbindex); finally Ini3.Free; end; end; Es wird auch der entsprechende Eintrag in der ini erstellt. Aber der Wert ist leer?!was läuft schief?? Grüsse |
Gibt er denn einen Fehler aus??
|
alles Banane, hab vergessen die Radiobuttons als Item hinzuzufügen,
oh Gott schlagt mich MAL EINER! |
Das: 'clWithe' könnte später unter Umständen zu Fehlern führen.
|
ja White hatte es schon bemerkt, danke Luckie
|
wenn ich jetzt das eingestellte laden will in Formshow:
Code:
meint der Compiler inkompatible Typen TColor und String.wie lös ich das??
...
BGFarbindex:=ReadString('Farben','BGPreis','clMaroon'); for I := 1 to 34 do TLabel(FindComponent('Label' + IntToStr(I))).Color:=BGFarbindex) ; .... |
Na ja, die Fehlermeldung sagt doch alle. Ein String ist eben kein TColor-Wert. Aber es gibt Funktionen, die das umwandeln können. Kuck mal in der Hilfe.
|
ja Typenumwandlung.
Aber aus einer Ini kann ich doch nur String,Integer oder Bool auslesen. Also mus die Umwandlung nach der Variablezuweisung geschehen! Aber wie? irgendwo muss ein "as TColor" rein,oder nicht? |
Ich glaube nicht, dass es eine Funktion zum umwandeln der Farbkonstantennamen als String in TColor gibt. Da eine Farbe (TColor) nichts anderes als eine Integer Zahl ist, kannst du es ja direkt als Integer in die Ini speichern. (type TColor = -$7FFFFFFF-1..$7FFFFFFF;). Da folglich die Konstanten auch nur für Integerzahlen stehen funktioniert folgendes:
Delphi-Quellcode:
Gruß, Sebastian
ini.WriteInteger('x','y',clWhite);
|
Zitat:
|
Yup, du hast recht, den Umwandler gibts wirklich.
Wusst ich ich noch nicht...aber ich lern ja noch :angle2: |
Stimmt tatsächlich :mrgreen:
Laut Hilfe sollte man aber, falls es nur um die Color-Konstanten geht und nicht um beliebige Farben im Hex Format als String, lieber IdentToColor bzw. ColorToIdent verwenden. Wobei die Frage ist ob es sinnvoller ist überhaupt umzuwandeln in einen String, speichert man direkt als Integer stellt sich das Problem ja nicht... spielt aber wohl keine Rolle bei so einem kleinen Aufwand. :spin: Gruß, Sebastian |
ja genau, aber gut zu wissen.
Für dir 4 Farben reicht die constante. Aber wieder was dazugelernt. Grüsse an alle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 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-2025 by Thomas Breitkreuz