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

    Delphi catturare pulsanti

    Salve a tutti. Mi chiedevo quale sia il metodo per catturare la successione di tasti premuti dalla tastiera all'interno di un applicazione delphi, che io sappia per l'intero sistema, ovvero catturare tutti gli eventi di keyboard, è necessario un hook, lo è anche per il solo delphi?
    Grazie a tutti notte!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Re: Delphi catturare pulsanti

    Originariamente inviato da Dalton
    Salve a tutti. Mi chiedevo quale sia il metodo per catturare la successione di tasti premuti dalla tastiera all'interno di un applicazione delphi, che io sappia per l'intero sistema, ovvero catturare tutti gli eventi di keyboard, è necessario un hook, lo è anche per il solo delphi?
    No, per un'applicazione Delphi non è necessario un hook.

    Se hai un form principale, puoi impostare la proprietà KeyPreview a True e gestire l'evento OnKeyPress per intercettare la pressione di un tasto.

    In alternativa, se hai più form e vuoi centralizzare questa raccolta di informazioni, puoi usare il componente TApplicationEvents intercettando l'evento OnMessage che segnala tutti i messaggi in arrivo nella coda dell'applicazione; è compito tuo filtrare i messaggi relativi alla pressione di tasti e memorizzarli poi dove preferisci, estraendo dalla struttura generica che viene passata all'evento le informazioni necessarie.

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

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

  3. #3
    Grazie Alka per la risposta. Ma se io volessi farlo su di un componente, diciamo twebbrowser, che nelle proprietà ha align=alclient, di conseguenza copre tutto il form, come dovrei fare?Grazie ciao!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Dalton
    Ma se io volessi farlo su di un componente, diciamo twebbrowser, che nelle proprietà ha align=alclient, di conseguenza copre tutto il form, come dovrei fare?Grazie ciao!
    L'area che occupa un controllo non ha alcuna influenza sui tasti che riceve; al massimo, ciò che può essere determinante è il Parent del controllo.

    In riferimento al controllo TWebBrowser, pare che non sia presente un evento direttamente utilizzabile per intercettare la pressione di tasti nel controllo (che vengono gestiti dal controllo ActiveX stesso).

    Se leggi questo tip, puoi verificare come filtrare alcuni tasti particolari; il codice andrebbe modificato per supportare l'intercettazione di tutti gli altri tasti, ma è un problema complesso che richiede un po' di ricerca ed esperienza a riguardo.

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

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

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 © 2025 vBulletin Solutions, Inc. All rights reserved.