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 ScrollBox beim Scrollen aktualisieren (https://www.delphipraxis.net/30717-scrollbox-beim-scrollen-aktualisieren.html)

Basic-Master 28. Sep 2004 14:12


ScrollBox beim Scrollen aktualisieren
 
hi,
wie kann man eine scrollbox beim scrollen aktualisieren?

SubData 28. Sep 2004 14:20

Re: ScrollBox beim Scrollen aktualisieren
 
Dafür müsste eigentlich folgendes reichen:

Delphi-Quellcode:
ScrollBox1.Refresh;

Basic-Master 28. Sep 2004 18:55

Re: ScrollBox beim Scrollen aktualisieren
 
müsste :roll:

teebee 28. Sep 2004 20:02

Re: ScrollBox beim Scrollen aktualisieren
 
Du brauchst eine neue Scrollbox-Klasse, die WM_HSCROLL und WM_VSCROLL abfängt.
Delphi-Quellcode:
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
...
Das Verhalten könnte man noch mit einem Flag ein- und ausschalten.

Gruß, teebee

Basic-Master 28. Sep 2004 20:16

Re: ScrollBox beim Scrollen aktualisieren
 
ah thx, funzt :)

Evian 29. Apr 2005 12:34

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

teebee 29. Apr 2005 14:54

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:
  ScrollBox1 := TMyScrollBox.Create(Self);
 ScrollBox1.Parent := Self;
 ScrollBox1.Left := ...;
 // usw., alle gewünschten Eigenschaften setzen
Damit hast Du eine Instanz der Scrollbox dynamisch erstellt. In FormDestroy musst Du sie dann auch wieder freigeben:
Delphi-Quellcode:
 FreeAndNil(ScrollBox1);
Wenn Du Dir das dynamische Erstellen sparen willst, musst Du eine neue Komponente erstellen, Informationen dazu findest Du hier im Forum.

Gruß, teebee

gore 16. Nov 2011 15:01

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...

DeddyH 16. Nov 2011 15:03

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 06:27 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