![]() |
Laufschrift in Statusbar-Feld
hi,
folgender code realisiert eine 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; Erklärung von Helmi: Die Änderung befindet sich im FormCreate. Durch die Schleife wird die Variable "x" auf den Maximalwert vorbelegt. Der Maximalwert ist die Breite aller Panels incl. dem ausgewähltem Panel, in dem die Laufschrift angezeigt werden soll. Durch diese Änderung wird dafür gesorgt, dass schon beim Starten der Laufschrift (Timer1.Enabled := true) der Text am rechten Rand des ausgewähltem Panels beginnt. Aenogym [edit=Chakotay1308]Code korrigiert/erweitert. Mfg, Chakotay1308[/edit] [edit=Chakotay1308] Mfg, Chakotay1308[/edit] [edit=Matze]Code formatiert. Mfg, Matze[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz