![]() |
Re: TColorscheme als String
Normalerweise müsste auch sowas klappen:
Integer(csNeoDesert) |
Re: TColorscheme als String
Mit RTTI geht es deutlich einfacher. Nur die Unit TypInfo (ja, ohne e) einbinden und daraus die Funktionen TypeInfo, GetEnumName und GetEnumValue verwenden. Das sollte eigentlich recht selbsterklärend sein.
|
Re: TColorscheme als String
Wenn du mit den Enum-Namen (in Englisch mit cs... vornedran) klarkommst, würde ich vorschlagen, du nimmst Apollonius' Vorschlag. Anderenfalls musst du selber was basteln. Ich hab mir mal die Freiheit genommen, Progmans Lösung etwas zu vereinfachen:
Delphi-Quellcode:
HTH,
const
ColorSchemeStrings: array[TColorScheme] of string = ('Neo Desert', 'Neo Sky', 'Neo Grass', 'Neo Silver', 'Neo Rose', 'Neo Sun', 'Desert', 'Grass', 'Sky', 'Sun', 'Rose', 'Silver', 'Custom'); function TForm1.GetColorScheme(const s: string): TColorScheme; var cs: TColorScheme; begin for cs := Low(TColorScheme) to High(TColorScheme) do if s = ColorSchemeStrings[cs] then begin Result := cs; Exit; end; raise EConvertError.CreateFmt('%s ist kein TColorScheme.', [s]); end; Uli. |
Re: TColorscheme als String
Und wenn vorhanden, kann man das ganze mit
![]() ![]()
Delphi-Quellcode:
function TForm1.GetColorScheme(const s: string): TColorScheme;
var cs: TColorScheme; lInt: integer; begin lInt := AnsiIndexText(s, ColorSchemeStrings); if lInt > -1 then result := TColorScheme(lInt) else raise EConvertError.CreateFmt('%s ist kein TColorScheme.', [s]); end; |
Re: TColorscheme als String
Es funktioniert tadellos
Danke Leute! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 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