Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: bonmario - Aprile 28, 2020, 11:44:39 am
-
Ciao,
ho una MaskEdit con questa mask:
Poi c'è un bottone e, quando gli clicco sopra, elabora il valore inserito dall'utente nella MaskEdit.
Stamattina un utente mi fa notare che, compilando la MaskEdit con "08.07.00: " (praticamente ha messo negli ultimi 3 caratteri uno spazio), e poi cliccando sul bottone, gli esce l'errore in allegato.
Ok, lui ha sbagliato a compilare il valore, ma come faccio a gestire la cosa evitando che il programma si blocchi?
Grazie in anticipo, Mario
-
Credo di aver capito ...
- Ho aggiunto il punto esclamativo all'inizio della mask
- Nella "OnExit", verifico che i caratteri digitati siano tutti numerici, quelli non numerici, li sostituisco con "0"
Mi confermate che è proprio questo il giro corretto?
Grazie, Mario
-
se non ho capito male gli ultimi 3 caratteri possono essere facoltativi
prova la mask: '00.00.00:999'
-
No, non sono facoltativi, aveva proprio sbagliato a capire l'utente !!!
Solo che mi sono detto: se ha capito male lui, può succedere anche ad altri, e cercavo quindi un modo per evitare che la Maskedit desse "da sola" un errore che io non potessi controllare e gestire.
Con le operazioni descritte nel mio secondo post, sono riuscito ad "aggirare" il problema, andando io a forzare con zero i caratteri che l'utente non ha inserito.
Ciao, Mario
-
Bonmario, non puoi intercettare i caratteri e se mette uno spazio (#32) gli dai del biricchino e metti 0 al suo posto?
La butto lì come idea.
-
Sì, di soluzioni ce ne sono parecchie.
Mi sembra solo strano che la cosa non sia gestita direttamente nel componente ...
Faccio un esempio stupido: se un utente sta compilando una MaskEdit, e per sbagli preme il tabulatore quando il valore della MAskEdit non è ancora corretto, gli uscirebbe l'errore che ho allegato al primo post, il che non è proprio carino !!!
Al momento, l'unico modo che ho trovato per non far uscire quell'errore, è quello di forzare io il valore
Ciao, Mario
-
è che in quel componente si possono definire caratteri obbligatori e caratteri facoltativi
in effetti quando i caratteri obbligatori non vengono rispettati, un messaggio di errore ci sta
è che fatto in quel modo è un po' tamarro: un msg che non spiega nulla (e magari un help ci starebbe bene)
forse l'approccio potrebbe essere di mettere tutto facoltativo e poi gestire a fine input
-
in effetti quando i caratteri obbligatori non vengono rispettati, un messaggio di errore ci sta
è che fatto in quel modo è un po' tamarro: un msg che non spiega nulla (e magari un help ci starebbe bene)
Infatti, è proprio questa la cosa che mi pareva strana.
Io mi aspettavo un qualcosa che mi permettesse, da programmatore, di gestire la cosa ed avvisare l'utente, magari traducendo il messaggio, o cose simili.
Anche perché, se uno su quel messaggio clicca su "Annulla", chiude il programma !!!
Ciao, Mario