Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [update] Laufschrift in StatusBar-Feld (https://www.delphipraxis.net/39251-%5Bupdate%5D-laufschrift-statusbar-feld.html)

Aenogym 30. Jan 2005 21:10


[update] Laufschrift in StatusBar-Feld
 
hi,

folgender code realisierteine laufschrift im feld einer TStatusBar. man benötigt einen timer und natürlich eine TStatusBar. Teile des Codes stammen von helmi.

Delphi-Quellcode:
uses commctrl;

private
  x, i: Integer;
  S: String;
  r: TRect;

const
  FieldNum = 0; //gibt an, in welchem Feld der Text erscheinen wird

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  //rect des feldes bekommen
  StatusBar1.Perform(SB_GETRECT, FieldNum, integer(@r));

  r.Right := r.Right - 1; //-1 wegen dem rechten Rand
  r.Left := r.Left + 1;   //+1 wegen dem linken Rand

  StatusBar1.Repaint;

  If (x > (StatusBar1.canvas.TextWidth(S) - r.Left) * -1) then
    begin
      i := StatusBar1.Canvas.Font.Size div 2; //Die Hälfte der Schrifthöhe berechnen

      StatusBar1.Canvas.FillRect(r);
      StatusBar1.Canvas.TextRect(r, x, ((r.Bottom - r.Top) div 2) - i, S);
      dec(x);
    end
  else
    x := r.Right;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  StatusBar1.DoubleBuffered := True; //verhindert Flackern

  StatusBar1.canvas.Brush.Style := bsclear;
  //hier kann auch die schriftart bestimmt werden:
  //statusBar1.canvas.Font.Color := clBlue;

  x := 0;
  for j := 0 to FieldNum do
    begin
      x := x + StatusBar1.Panels[j].Width;
    end;

  //der text, der durchläuft
  S := 'Ich bin ein armer Delphi-Programmierer';
end;
update in der ersten zeile des FormCreate-Events und einen verschreiber einer variablen.
(so, wie der code derzeit in der CodeLibrary ist, ist er falsch)

Aenogym

[edit=Chakotay1308]Code in der Code-Library geupdatet. Update ist nun hier zu finden. Mfg, Chakotay1308[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz