Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.151 Beiträge
 
Delphi 12 Athens
 
#12

Re: ColorToString auch für Systemfarben

  Alt 31. Mai 2008, 21:41
TColor statt Integer kommt wohl etwas besser
Code:
type tSysColorRec  = record
                         Value : [color=#ff0000]TColor[/color];
                         Name : String;
                       end;
hmmm, stimmt, GetSysColor nimmt ja nur den Index entgegen und nicht (wie ich mir da wohl irgendwie dachte) die Farbkonstanten



wird bei dir immer ein TColor als RGB übergeben?

wenn nicht, also falls auch mal z.B. Konstanten übergeben werden, wäre es noch gut erstmal den übergebenen Color-Wert in RGB umzuwndeln.

Hier im Forum suchenColorToRGB ... z.B.:
Delphi-Quellcode:
Function ColorToRGB(Color: TColor): TColor;
  Var _Color: TColorRec Absolute Color;

  Begin
    If _Color.Palette = cpSystemColor Then Result := GetSysColor(Color and $FF) and $FFFFFF
    Else If _Color.Palette in [cpSystemPalette..cpLogicalPalette] Then Result := Color and $FFFFFF
    Else Result := $000000;
  End;


Delphi-Quellcode:
function TColorPicker.Color2ConstName(Color: TColor): String;
...
begin
  if (Color and $ff000000 = $ff000000) then begin
    Result := SysColorArray[Color and $1f{$ff}].Name;
  end else begin
    //Color := ColorToRGB(Color); // Systemfarbkonstanten wurden schon abgefangen
                                  // die Restlichen Farbpaletten sollte nicht stören
    if not ColorToIdent(Color, Result) then Result := GetSysColorString(Color);
  end;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat