Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.063 Beiträge
 
Delphi XE2 Professional
 
#1

Einzelnes StatusPanel neu zeichnen

  Alt 19. Sep 2024, 01:12
Wie kann ich bewirken, dass ein einzelnes Panel einer StatusBar neu gezeichnet wird.
Eine Möglichkeit, die ich sehe ist:
Delphi-Quellcode:
PROCEDURE RepaintPanel(StatusBar:TStatusBar; Index:Integer);
var Rect:TRect; Panel:TStatusPanel;
begin
   Panel:=StatusBar.Panels[Index];
   SendGetStructMessage(StatusBar.Handle, SB_GETRECT,Index,Rect);
   StatusBar.Canvas.Brush.Color:=StatusBar.Color;
   StatusBar.Canvas.FillRect(Rect);
   case Panel.Bevel of
      pbLowered : Frame3D(StatusBar.Canvas,Rect,clGray,clWhite,1);
      pbRaised : Frame3D(StatusBar.Canvas,Rect,clWhite,clGray,1);
   end;
   StatusBar.Canvas.Font:=StatusBar.Font;
   StatusBar.OnDrawPanel(StatusBar,Panel,Rect);
end;
Ich kann mir aber vorstellen, dass es eine simplere Möglichkeit gibt, z.B.
SendMessage(StatusBar.Handle,??,??,??);
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat