Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    65

    [Delphi] selezionare un tedit dopo un evento

    Ciao A tutti,

    Sto realizzando un'applicazione che legge codici a barre all'interno di un campo tedit ed effettua la registrazione dei vari prodotti in
    un database. la buona notizia é che la logica del programma funziona bene :-) la brutta notizia é la seguente:

    visto che il lettore barcode legge il codice ed invia automaticamente un enter, il campo tedit dovrebbe creare un evento che reagisce alla pressione del bottone enter, come se fosse inviato della tastiera.
    Guardando gli eventi del campo tedit se utilizzo onkey down l'evento parte alla pressione di qualsiasi tasto, se utilizzo l'evento enter l'evento parte quando metto il campo tedit in modalità inserimento ecc.. quindi o sono stanco morto e quindi rinc*******to :master: , oppure non riesco a trovare un evento che funzioni solo ed unicamente con l'enter della tastiera. Questo non é un problema perché ho sistemato la funzione con l'evento onexit, quindi sfruttando il tab (infatti con lo scanner barcode posso assegnare alla fine di una lettura di un codice un enter oppure un tab automatico) dopo l'inserimento del codice l'evento onexit del tedit esegue il codice di controllo.

    Se un codice non dovesse soddisfare alcuni criteri da me impostati (tipo lunghezza dei caratteri ecc..) la form deve visualizzare a video un msg "codice errato!!". tutto questo funziona.

    PROBLEMA
    vorrei però che il cursore si riposizionasse sul campo tedit (del barcode) in modalità inserimento così da esser pronto a rileggere il codice. Lo scopo di ciò sarebbe evitare di dover prendere il mouse e riposizionare il
    cursore nel tedit barcode se un codice non venisse letto correttamente. Adesso ogni volta che il codice é errato il cursore passa al campo successivo e devo prendere il mouse per rimetterlo nel tedit barcode per rileggere il codice a barre del prodotto.


    Grazie a chi risponde.

    saluti
    Giovanni

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

    Re: [Delphi] selezionare un tedit dopo un evento

    Originariamente inviato da satgio
    quindi o sono stanco morto e quindi rinc*******to :master: , oppure non riesco a trovare un evento che funzioni solo ed unicamente con l'enter della tastiera.
    L'evento OnKeyPress andava benissimo, ma devi controllare che venga premuto il tasto ENTER nell'evento prima di eseguire il codice di controllo validità.
    codice:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
      begin
        // Controllo di validità del dato
      end;
    end;
    Originariamente inviato da satgio
    vorrei però che il cursore si riposizionasse sul campo tedit (del barcode) in modalità inserimento così da esser pronto a rileggere il codice. Lo scopo di ciò sarebbe evitare di dover prendere il mouse e riposizionare il
    cursore nel tedit barcode se un codice non venisse letto correttamente. Adesso ogni volta che il codice é errato il cursore passa al campo successivo e devo prendere il mouse per rimetterlo nel tedit barcode per rileggere il codice a barre del prodotto.
    Il controllo di validità dei dati inseriti puoi eseguirlo nell'evento OnExit che viene generato quando l'utente preme TAB (o esso viene generato dal lettore) per spostarsi al controllo successivo.
    codice:
    procedure TForm1.Edit1Exit(Sender: TObject);
    begin
      if Condizione errore then
      begin
        ShowMessage('Descrizione estesa errore');
        Edit1.SetFocus;
      end;
    end;
    In questo stralcio di codice, viene verificata una determinata condizione d'errore; se l'errore è rilevato, si visualizza un apposito messaggio e si riposiziona il "focus" sul controllo visuale in esame (Edit1).

    Ovviamente, suggerisco di usare nomi più significativi per il form e i controlli in essa contenuti.

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

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

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    65
    Grazie Alka,

    Stasera provo.
    Comunque facendo reagire il controllo sul tasto enter, non serve usare il tab con il lettore. Posso configuro il lettore per inviare un enter automatico in modo da verificare la condizione e riposizionare il focus sul editbarcodenumber in caso di lettura sbagliata.
    Dovrei riuscire a risolvere tutto

    Grazie
    Giovanni

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.