Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: bonmario - Aprile 28, 2020, 11:44:39 am

Titolo: Problema con MaskEdit
Inserito da: bonmario - Aprile 28, 2020, 11:44:39 am
Ciao,
ho una MaskEdit con questa mask:
Codice: [Seleziona]
00.00.00:000

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

Titolo: Re:Problema con MaskEdit
Inserito da: bonmario - Aprile 28, 2020, 01:00:54 pm
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
Titolo: Re:Problema con MaskEdit
Inserito da: nomorelogic - Aprile 28, 2020, 01:20:48 pm
se non ho capito male gli ultimi 3 caratteri possono essere facoltativi

prova la mask: '00.00.00:999'

Titolo: Re:Problema con MaskEdit
Inserito da: bonmario - Aprile 28, 2020, 01:33:28 pm
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
Titolo: Re:Problema con MaskEdit
Inserito da: Stilgar - Aprile 28, 2020, 02:11:00 pm
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.
Titolo: Re:Problema con MaskEdit
Inserito da: bonmario - Aprile 28, 2020, 02:50:45 pm
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
Titolo: Re:Problema con MaskEdit
Inserito da: nomorelogic - Aprile 28, 2020, 02:58:55 pm
è 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

Titolo: Re:Problema con MaskEdit
Inserito da: bonmario - Aprile 28, 2020, 03:46:39 pm
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