Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Einstellung Scrollen Zeilen

  Alt 25. Mär 2019, 16:28
Und erst knapp fünf Jahre später ...

Ich möchte mittels der Maus immer das nächste / vorige Bild in ein TImage laden und habe mich auch daran gestört, dass die Scrollgeschwindigkeit zu hoch war.
Der folgende (modifizierte) Code von Perlsau tut, was ich will:
Delphi-Quellcode:
procedure TFrmSB.HandleOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
  If (Msg.message = WM_MOUSEWHEEL) and (Screen.ActiveForm.ActiveControl <> nil)
  and (Screen.ActiveForm.ActiveControl.ClassName = 'TImage') then
  begin
    If Msg.wParam > 0 then
      SetzeNächstesBild(bwVor) else
      SetzeNächstesBild(bwZurück);
    If GetKeyState(VK_CONTROL) >= 0 then
      Sleep(50);
    Handled := True;
  end;
end;
Nun folgende zwei Fragen:

Um die Scrollrate herabzusetzen, habe ich ein Sleep eingebaut, das man mit STRG übergehen kann.
Ich weiß aber, dass man für die Verwendung von Sleep in die Delphi-Hölle kommt, obwohl es hier genau das tut, was ich möchte. Wie würde ein Himmelsaspirant das machen, oder habe ich die weltweit erste legale Verwendung von Sleep gefunden?

Wichtiger noch: Soweit ich das verstehe, werde jetzt alle Zehntausende Nachrichten über diese Prozedur umgeleitet und einer Prüfung unterzogen. Macht sich das in der Praxis bemerkbar? Mein Program ist nicht übermäßig zeitkritisch, aber dennoch.
  Mit Zitat antworten Zitat