Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#1

Fix für PngBitBtn von thany.org

  Alt 24. Nov 2010, 09:49
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat