Für all diejenigen, die die PngComponents von thany.org verwenden und sich gewundert haben, dass die Caption bei disabled Buttons nicht ausgegraut wird, hier die Lösung. In der PngBitBtn.pas muss die Methode TPngBitBtn.CNDrawItem etwas erweitert werden. Im Original heißt es ab Zeile 209
Zitat:
Delphi-Quellcode:
//Draw the text
if Length(Caption) > 0
then begin
PaintRect := Rect(TextPos.X, TextPos.Y, Width, Height);
FCanvas.Brush.Style := bsClear;
DrawText(FCanvas.Handle, PChar(Caption), -1, PaintRect, DrawTextBiDiModeFlags(0) or DT_TOP or DT_LEFT or DT_SINGLELINE);
end;
Dies wird zu
Delphi-Quellcode:
//Draw the text
if Length(Caption) > 0
then begin
PaintRect := Rect(TextPos.X, TextPos.Y, Width, Height);
FCanvas.Brush.Style := bsClear;
//Caption ausgrauen, wenn disabled
if not Enabled then
begin
OffsetRect(PaintRect, 1, 1);
FCanvas.Font.Color := clBtnHighlight;
DrawText(FCanvas.Handle, PChar(Caption), -1, PaintRect, DrawTextBiDiModeFlags(0) or DT_TOP or DT_LEFT or DT_SINGLELINE);
OffsetRect(PaintRect, -1, -1);
FCanvas.Font.Color := clBtnShadow;
end;
DrawText(FCanvas.Handle, PChar(Caption), -1, PaintRect, DrawTextBiDiModeFlags(0) or DT_TOP or DT_LEFT or DT_SINGLELINE);
end;
Danach Packages neu kompilieren/installieren... fertig.