AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TColorscheme als String

Ein Thema von Privateer3000 · begonnen am 21. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
Seite 2 von 2     12   
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#11

Re: TColorscheme als String

  Alt 26. Nov 2007, 17:30
Normalerweise müsste auch sowas klappen:
Integer(csNeoDesert)
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: TColorscheme als String

  Alt 26. Nov 2007, 17:37
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.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#13

Re: TColorscheme als String

  Alt 26. Nov 2007, 17:48
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:
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;
HTH,
Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#14

Re: TColorscheme als String

  Alt 26. Nov 2007, 17:54
Und wenn vorhanden, kann man das ganze mit Delphi-Referenz durchsuchenAnsiIndexText() (bzw. Delphi-Referenz durchsuchenAnsiIndexStr()) nochmal deutlich verkürzen:

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;
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: TColorscheme als String

  Alt 26. Nov 2007, 21:22
Es funktioniert tadellos
Danke Leute!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz