![]() |
ScrollBox beim Scrollen aktualisieren
hi,
wie kann man eine scrollbox beim scrollen aktualisieren? |
Re: ScrollBox beim Scrollen aktualisieren
Dafür müsste eigentlich folgendes reichen:
Delphi-Quellcode:
ScrollBox1.Refresh;
|
Re: ScrollBox beim Scrollen aktualisieren
müsste :roll:
|
Re: ScrollBox beim Scrollen aktualisieren
Du brauchst eine neue Scrollbox-Klasse, die WM_HSCROLL und WM_VSCROLL abfängt.
Delphi-Quellcode:
Das Verhalten könnte man noch mit einem Flag ein- und ausschalten.
TMyScrollBox=Class(TScrollBox)
public Procedure WMVSCROLL(Var Msg: TWMSCROLL); message WM_VSCROLL; Procedure WMHSCROLL(Var Msg: TWMSCROLL); message WM_HSCROLL; end; Procedure TMyScrollBox.WMVSCROLL(Var Msg: TWMSCROLL); Begin If (Msg.ScrollCode=SB_THUMBTRACK) Then VertScrollBar.Position := Msg.Pos; End; // Analoges für WMHSCROLL ... Gruß, teebee |
Re: ScrollBox beim Scrollen aktualisieren
ah thx, funzt :)
|
Re: ScrollBox beim Scrollen aktualisieren
Hallöchen,
ich möchte auch gern eine Scrollbar haben, die sich automatsich beim Scrollen aktualisiert... also dass es flüssig aussieht, aber irgendwie stell ich mich zu blöde an... es gibt nur fehler:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus, ComCtrls; type TMyScrollBox=Class(TScrollBox) public Procedure WMVSCROLL(Var Msg: TWMSCROLL); message WM_VSCROLL; Procedure WMHSCROLL(Var Msg: TWMSCROLL); message WM_HSCROLL; end; TForm1 = class(TForm) StatusBar1: TStatusBar; Image1: TImage; MainMenu1: TMainMenu; Start1: TMenuItem; ScrollBox1: TMyScrollBox; ScrollBox2: TMyScrollBox; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Scrol: TMyScrollBox; implementation {$R *.dfm} Procedure TMyScrollBox.WMVSCROLL(Var Msg: TWMSCROLL); Begin If (Msg.ScrollCode=SB_THUMBTRACK) Then VertScrollBar.Position := Msg.Pos; End; Procedure TMyScrollBox.WMHSCROLL(Var Msg: TWMSCROLL); Begin If (Msg.ScrollCode=SB_THUMBTRACK) Then VertScrollBar.Position := Msg.Pos; End; end. Mh.. hab leider schon ewig nicht mehr mit Delphi gearbeitet und hab keine Ahnung mehr, wie man da mit neuen klassen richtig arbeitet. Kann mir jemand einen Tip geben, wie ich das am besten angehe?! Gruss Evian |
Re: ScrollBox beim Scrollen aktualisieren
Trage Deine Scrollboxen unter public oder private ein, nicht in der obersten Sektion der Formdeklaration, dort hat nur Delphi selber was verloren. Dann machst Du in FormCreate folgendes:
Delphi-Quellcode:
Damit hast Du eine Instanz der Scrollbox dynamisch erstellt. In FormDestroy musst Du sie dann auch wieder freigeben:
ScrollBox1 := TMyScrollBox.Create(Self);
ScrollBox1.Parent := Self; ScrollBox1.Left := ...; // usw., alle gewünschten Eigenschaften setzen
Delphi-Quellcode:
Wenn Du Dir das dynamische Erstellen sparen willst, musst Du eine neue Komponente erstellen, Informationen dazu findest Du hier im Forum.
FreeAndNil(ScrollBox1);
Gruß, teebee |
AW: ScrollBox beim Scrollen aktualisieren
Wieso so einfach wenn es auch kompliziert geht ;-)
Einfach die Eigenschaft VerScrollBar.Tracking auf TRUE setzen (bzw HorzScrollBar.Tracking). Das geht auch bei alten Delphi-Versionen... |
AW: ScrollBox beim Scrollen aktualisieren
Du hast aber schon gesehen, dass die letzte Antwort 6 1/2 Jahre her ist?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 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 by Thomas Breitkreuz