![]() |
Richedit Scrollbar Event
Hallo,
wie kann ich in einer Richedit Komponente feststellen, ob sich die Scrollbarposition verändert hat? Name des Event in der Scrollbar ist "OnScroll". Nur wie kann ich auf das Event zugreifen? Danke. |
AW: Richedit Scrollbar Event
Ich habe gerade kein Delphi verfügbar, aber sollte es nicht genügen, im RichEdit die Messages WM_HSCROLL bzw. WM_VSCROLL zu behandeln?
|
AW: Richedit Scrollbar Event
Ich tu das immer mit 'GetScrollPos'...
etwa so...
Delphi-Quellcode:
die Variable 'pos' gibt dann einen wert den man mit den bisherigen vergleichen kann.
procedure TForm1.Button1Click(Sender: TObject);
var pos,min,max:Integer; begin GetScrollRange(RichEdit1.Handle,sb_vert,min,max); pos:=GetScrollPos(RichEdit1.Handle,sb_vert); showmessage(inttostr(pos)+' '+inttostr(min)+' '+inttostr(max)); end; Hoffe es klappt. |
AW: Richedit Scrollbar Event
Dazu müsstest Du aber pollen, oder täusche ich mich? Schöner wäre es IMHO, wenn beim Scrollen einfach ein Event ausgelöst wird.
|
AW: Richedit Scrollbar Event
Habe es so gemacht:
Delphi-Quellcode:
Das funktioniert allerdings nur, wenn ich mit der Maus die Scrollbar auswähle. Scrollen mit dem Mausrad funktioniert nicht. Benötige ich da noch weitere Nachrichten? oder ?
procedure FormCreate(Sender: TObject);
procedure redtWndProc(var Message: TMessage); procedure TFormxx.FormCreate(Sender: TObject); begin FOldMemoProc := redt1.WindowProc; redt1.WindowProc := redtWndProc; end; procedure TFormxx.redtWndProc(var Message: TMessage); begin if ((Message.Msg = WM_VSCROLL)or (Message.Msg = WM_HSCROLL)) then begin ShowMessage('scroll'); end else FOldMemoProc(Message); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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