Domanda

In Delphi, ho aggiunto un componente Scrollbar (orientata in verticale) sul lato destro della mia forma.

Ho aggiunto un evento Scrollbar OnChange in modo da poter modificare la visualizzazione della forma e la posizione della barra di scorrimento del pollice, quando l'utente fa clic sul tasto Freccia su o Freccia giù con il suo mouse, e questo funziona bene.

Ma l'evento OnChange sembra solo per ottenere innescato quando il pulsante del mouse viene inizialmente premuto sulla freccia.

Ho notato tutti i controlli barra di scorrimento ripetere il comando e continuare a scorrere mentre il mouse rimane premuto sulla freccia, e mi piacerebbe implementare questo comportamento.

Così come posso facilmente rilevare se l'utente non si è mosso il mouse e continua a premere il pulsante del mouse mentre il mouse rimane sopra la freccia?


Conclusione. In qualche modo qualcosa nella barra di scorrimento nel mio progetto ha danneggiato. Dopo che ho cancellato la ScrollBar, e ha aggiunto di nuovo, il problema scomparve.

Questa è una di quelle difficili che mi ha portato un sacco di tempo per risolvere. Grazie per l'aiuto. Sto chiudendo questa domanda.

È stato utile?

Soluzione

Utilizzare la OnScroll evento.

Il codice seguente aggiunge 'xxx' per un promemoria fino a quando il mouse viene tenuto premuto il pulsante di scorrimento freccia. Testato con Delphi 6.

procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
    Memo1.Lines.Add( 'xxx' );
end;
scroll top