Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [delphi] Ttrackbar OnMouseUp event

    Ciao a tutti.
    Ho un piccolo problema che si può riassumere così:
    sto modificando un' applicativo in cui vengono utilizzati componenti ttrackbar.
    Purtroppo per come utilizzati, basandosi sull'evento onchange, c'è un calo prestazionale.
    Volevo poterlo utilizzare con un evento del tipo onMouseUp, in modo che l'azione venga compiuta solo quando viene rilasciato il pulsante del mouse.
    Ho verificato che però nel componente standard TTrackbar non c'è tale evento.
    Sto cercando soluzioni che possano consentire di mantenere una soluzione trackbar a livello utente( cioè che l'utente a monitor possa utilizzare ancora questo componente per le sue regolazioni).
    Qualcuno ha già avuto questo problema?
    Avete suggerimenti?
    Grazie
    re dei giovani

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,315
    ciao

    e se usassi OnExit?

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Una soluzione potrebbe essere quella di utilizzare l'evento OnExit, come suggerito, in modo da tenere conto del valore modificato quando il controllo perde il focus.

    Qualora questa soluzione non sia fattibile, per vari motivi che non stiamo ad approfondire, potresti anche utilizzare un componente TTimer per applicare le modifiche apportate ai valori dopo un breve lasso di tempo.

    In breve, quando modifichi un valore su qualsiasi trackbar, invece di aggiornare immediatamente gli oggetti correlati potresti invece delegare questa azione a un timer; il timer dovrebbe essere sempre attivo, e l'azione di modifica di un valore dovrebbe andare ad aggiornare il "momento" (es. un campo o variabile di tipo TDateTime) in cui effettuare l'applicazione della modifica, magari incrementando di un secondo la data/ora corrente, e andando a fare questo incremento ogni volta che viene modificato un valore.

    Dal timer, sarebbe sufficiente controllare se il "momento" stabilito è trascorso; in caso affermativo, applichi i valori modificati prelevandoli dalle trackbar e disabiliti un flag che impedisce al timer di rieseguire la stessa operazione subito dopo, a meno che non intervenga nel frattempo un'altra modifica al valore delle trackbar, che aggiornerebbe il "momento" e il flag per riprendere il meccanismo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Proverò i vostri consigli
    Grazie mille !!!!!
    re dei giovani

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.