Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Statusbar Farbe eines Panels ändern

  Alt 19. Sep 2005, 18:20
Hai Gambit,

hier noch ein Beispiel:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  .
  private
    status : integer;
  end;
.

implementation
.

procedure TForm1.FormCreate(Sender: TObject);
begin
  StatusBar1.Panels[1].Style := psOwnerDraw; // Panel 2 selber zeichnen
  status := 1;
end;

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar; Panel: TStatusPanel;
  const Rect: TRect);
const
  status_color : Array[1..3] of TColor = (clGreen,clYellow,clred);
begin
  if Panel = StatusBar1.Panels[1] then // zweites Panel
  begin
    with StatusBar.Canvas do
    begin
      Brush.Color := status_color[status]; // Farbe aus dem Array
      FillRect(Rect); // Mit der Farbe füllen
      TextOut(rect.Left + 2, rect.Top + 2, panel.Text); // Textausgeben
    end;
  end;
end;

procedure TForm1.btn_IncStatusClick(Sender: TObject);
begin
  if (status < 3) then
  begin
    Inc(Status);
  end;
  StatusBar1.Repaint;
end;

procedure TForm1.btn_DecStatusClick(Sender: TObject);
begin
  if (status > 1) then
  begin
    Dec(Status);
  end;
  StatusBar1.Repaint;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat