Ich hätte da eine Idee, wie mann das realisieren kann:
Delphi-Quellcode:
function Dunkel(farbe: TColor; prozent: Byte): TColor;
var c: array [0..2] of Byte;
i: Integer;
begin
c[0]:= (farbe and $FF);
c[1]:= (farbe and $FF00) shr 8;
c[2]:= (farbe and $FF0000) shr 16;
for i:= 0 to 2 do
c[i]:= (c[i]* prozent) div 100;
Result:= c[0] + (c[1] shl 8) + (c[2] shl 16);
end;
Der Parameter Prozent muss dabei im Bereich von 0..100 liegen und gibt das Maß der Abdunklung an. Bei 0 ist der Rückgabewert schwarz, bei 100 die Farbe selbst, und sonst halt dazwischen.
(Achtung: ungetestet!)
MfG
Binärbaum