+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Controllare la validità di una data immessa in un controllo TEdit (XE3)

  1. #1
    kar64 non è in linea Scolaretto
    Salve a tutti.

    Dovrei controllare se la data inserita in una edit sia valida o no.
    Nell'evento click ho fatto in modo di far comparire un monthcaledar e al click di questo componente riporto la monthcalendar1.date su edit1.text (e funziona).

    Poiche' l'utente potrebbe scrivere una data sul campo (senza scatenare l'evento click) dovrei verificare all'uscita dal campo edit se il valore inserito è valido o no.

    Su internet ho trovato questa funzione:

    function IsDate(str: string): Boolean;
    var
      dt: TDateTime;
    begin
      Result := True;
      try
        dt := StrToDate(str);
      except
        Result := False;
      end;
    end;
    
    che chiamo cosi':

    procedure TForm3.Edit1Exit(Sender: TObject);
    begin
    if not IsDate(edit1.Text) then
      ShowMessage('La data immessa è errata');
    
    end;
    
    Ma se nel campo edit1 scrivo, ad esmpio, 0255896 ottengo questo errore del compilatore:

    project test.exe raised exception class EConvertError with message "0255896" is a not valid date
    break, continue,help.

    Se clicco su continue mi appare il msgbox 'La data immessa è errata'.

    Non so proprio da che parte girarci ....

    La soluzione migliore, per me, sarebbe evitare di poter scrivere sul campo edit e far scegliere la data dal caledar, ma se pongo ad enable=false non posso cliccarci per far comparire il calendario e non mi sembra elegante dover mettere un bottone per fare questo lavoro.

    Spero in un vostro aiuto.

    Grazie

  2. Il messaggio lo solleva solo il debugger. Prova l'exe.
    Non ho capito perché non usi un TDateTimePicker...
    ℹ️ Leggi di più su cyberlaundry ...

  3. #3
    L'avatar di _alka_
    _alka_ non è in linea Very Important Person
    Quote Originariamente inviato da kar64 Visualizza il messaggio
    Ma se nel campo edit1 scrivo, ad esmpio, 0255896 ottengo questo errore del compilatore [...]
    Va precisato che non si tratta del compilatore: quello viene eseguito quando compili il tuo programma, appunto.
    Tutt'al più, il messaggio viene mostrato dal debugger.

    E' importante distinguere i termini, gli elementi e il loro scopo.

    Quote Originariamente inviato da kar64 Visualizza il messaggio
    La soluzione migliore, per me, sarebbe evitare di poter scrivere sul campo edit e far scegliere la data dal caledar, ma se pongo ad enable=false non posso cliccarci per far comparire il calendario e non mi sembra elegante dover mettere un bottone per fare questo lavoro.
    Come è già stato suggerito, usa un TDateTimePicker.
    ℹ️ Leggi di più su _alka_ ...

  4. #4
    L'avatar di systemgvp
    systemgvp non è in linea Scribacchino
    altrimenti imposta un formato per la data es. xx/xx/xxxx e controlla la posizione delle "/"

  5. ...che è lo scopo del componente, direi.
    Forse dovresti dire che scopo vuoi raggiungere, visto che il formato della data e i controlli che vengono fatti sono "standard" per come tutti se li aspettano...
    ℹ️ Leggi di più su cyberlaundry ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. controllare se tutti i campi data sono stati valorizzati
    Da Tommy_G nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 03-06-2019, 20:19
  2. Verificare Data immessa rispetto al contenuto della tabella
    Da ZioMauri nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 14-03-2012, 19:30
  3. Controllo validità XML
    Da Headphone nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 18-11-2011, 14:25
  4. Risolto: Controllare la validità sintattica di un url
    Da Silver Black nel forum Delphi
    Risposte: 11
    Ultimo Post: 20-10-2011, 10:56
  5. Controllo validità mail.
    Da maximum nel forum Visual Basic 6
    Risposte: 4
    Ultimo Post: 14-10-2007, 16:58