Hallo,
besten Dank. Habe noch eine Möglichkeit im OnChange-Ereignis gefunden:
Geht offensichtlich auch so:
Delphi-Quellcode:
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin if Scrollbar1.Position > 50 then ScrollBar1.Position:=50
end;
Um den ganzen Ärger zu entgehen habe ich noch an der Möglichkeit gearbeitet eine eigene Komponente zu erstellen und dass OnScroll-Ereignis abzufangen.
Folgendes ist das Resultat:
Delphi-Quellcode:
TmyScroll =
class(TScrollBar)
private
//== Lösungsvorschlag hier aus der Delphipraxis !!! ============
procedure WMVScroll(
var Message: TWMScroll);
message WM_VSCROLL;
// Scrollen mit Wheel-Rad reagieren, wenn Focus auf Element
procedure WMMouseWheel(
var Msg: TWMMouseWheel);
message WM_MOUSEWHEEL;
// aufs Scrollen mit den Tasten reagieren, wenn Focus auf Element
procedure WMKeyDown(
var Msg:TWMKey);
message WM_KEYDOWN;
end;
leider funktioniert so aber
WMVScroll nicht. Es erfolgt gar kein Aufruf.
Setzte ich die Procedure in den privaten Teil der Form1 klappt es aber. Wieso das ?