* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 16, 2024, 11:24:45 pm

Inserisci il nome utente, la password e la durata della sessione.

699 Visitatori, 0 Utenti

Autore Topic: gestione delle date con tedit  (Letto 6955 volte)

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
gestione delle date con tedit
« il: Febbraio 09, 2012, 03:56:12 pm »
A volte mi vergogno anche delle domande che faccio, ma purtroppo sono causate dalla mia inesperienza con il programma :( :( :(.
Vorrei gestire campo tedit per inputare una data, ma dovrei assegnargli una maschera che me lo formatti in questa maniera: GG/MM/AAAA (sia in modifica del campo che in visualizzazione)
Come posso fare?

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3250
  • Karma: +12/-0
Re:gestione delle date con tedit
« Risposta #1 il: Febbraio 09, 2012, 04:02:59 pm »
Nella Tab "Misc" trovi l'oggetto TDateEdit che dovrebbe risolvere egregiamente quello che chiedi!
Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:gestione delle date con tedit
« Risposta #2 il: Febbraio 09, 2012, 04:18:00 pm »
Mille grazie. Secondo te per i controlli sul secolo (ad esempio se inserisco 11/11/11 vorrei che all'uscita del campo scrivesse in automatico 11/11/2011, oppure se scrivo 13/13/13 vorrei che all'uscita del campo segnalasse un errore) devo impostare qualche proprieta' del campo oppure e' meglio svilupparci attorno un po' di codice?

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3250
  • Karma: +12/-0
Re:gestione delle date con tedit
« Risposta #3 il: Febbraio 09, 2012, 05:17:48 pm »
Ipotizziamo che l'oggetto si chiama DateEdit1 sull'evento Exit (puoi farlo anche sull'evento change). Io farei così


procedure TForm1.DateEdit1Exit(Sender: TObject);
begin
  DateEdit1.Text:=FormatDateTime('DD/mm/YY', DateEdit1.Date);
end;
Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:gestione delle date con tedit
« Risposta #4 il: Febbraio 10, 2012, 10:55:55 am »
Ti confermo che funziona, anche se in realta' mi risolve il mio problema solo in parte.
In pratica io vorrei scrivere la data sul campo sia nel formato a due cifre che nel formato a 4 cifre, ma quando esco dal campo vorrei ritrovare sempre il campo a 4 cifre.
Utilizzando la riga di codice che hai scritto e mettendo DD/mm/YYYY, quando inserisco la data 01/03/12,  il programma scrive sul campo la data 01/03/0012 e non 01/03/2012
C'e' un modo per digitare la data a 2 cifre ma ritrovarmi sempre la data a 4 cifre con il secolo corretto?

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3250
  • Karma: +12/-0
Re:gestione delle date con tedit
« Risposta #5 il: Febbraio 10, 2012, 10:59:45 am »
mmmmmmmmmmmmmh non saprei...dovrei guardare un pochino!
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3250
  • Karma: +12/-0
Re:gestione delle date con tedit
« Risposta #6 il: Febbraio 10, 2012, 02:32:00 pm »
Prova a scrivere la seguente riga di codice al caricamento del progetto, in parole povere vai a cambiare il formato della data come vuoi tu per tutto il progetto.     

ShortDateFormat:='dd/mm/yyyy';  {http://www.freepascal.org/docs-html/rtl/sysutils/shortdateformat.html}

La lista di altre variabili simili le trovi qui:
http://www.freepascal.org/docs-html/rtl/sysutils/index-6.html


Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:gestione delle date con tedit
« Risposta #7 il: Febbraio 10, 2012, 04:33:53 pm »
Cosi' sembra che funzioni senza la mask (sulla proprieta' dateorder devo mettere doNone).
C'e' la possibilita di inserire una mask di inserimento in modo che posso inserire in automatico anche i separatori?

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3250
  • Karma: +12/-0
Re:gestione delle date con tedit
« Risposta #8 il: Febbraio 10, 2012, 04:36:19 pm »
Bho mai fatto, dovrei provare! Spiegami bene cosa vuoi ottenere!
Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:gestione delle date con tedit
« Risposta #9 il: Febbraio 10, 2012, 06:20:48 pm »
devo inserire la data, ma vorrei lasciare gli spazi prefissati ("  /  /    ").
In pratica la stessa cosa che fa con dateorder doDMY, solo che se lascio dateorder attivo poi non funziona il controllo che sto facendo per la gestione dell'anno a 2 e a 4 cifre

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:gestione delle date con tedit
« Risposta #10 il: Febbraio 10, 2012, 08:31:14 pm »
ciao, ti volevo segnalare che ho risolto inserendo, oltre alla riga che mia hai suggerito sull'apertura della form, anche questo codice sull'evento Onexit
Codice: [Seleziona]
if Pos('/', VDaData.Text) = 0 then
  begin
     if (length(trim(VDaData.Text)) = 8) or (length(trim(VDaData.Text)) = 6) then
     begin
        VDaData.Text:= trim(copy(VDaData.Text,1,2) + '/' + copy(VDaData.Text,3,2) + '/' + copy(VDaData.Text+'  ',5,4));
        VDaData.date:=strtodate(VDaData.Text);
     end
     else
     begin
       ShowMessage('Data non corretta! Inserisci i caratteri "/" e digita correttamente la data nel formato gg/mm/aaaa');
       Exit;
     end;
  end;
  VDaData.Text:=FormatDateTime('DD/mm/YYYY', VDaData.date);
Ti chiedevo un'ultima cortesia poi cerchero di non pressarti piu' sulle date: se io inserisco una data errata (ad esempio 22/22/2222) il sistema mi genera un'errore exception
Come faccio ad intercettare questo errore ed eventualmente dare un messaggio di errore non valido che non faccia terminare il programma (ad esempio:
Codice: [Seleziona]
       ShowMessage('Data non corretta!');
       Exit;
)?

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3250
  • Karma: +12/-0
Re:gestione delle date con tedit
« Risposta #11 il: Febbraio 10, 2012, 10:57:52 pm »
Guarda questo:

http://www.lazaruspascal.it/index.php?page=83

Funziona però solo sull'eseguibile. In fase di debug ti segnala l'errore.
Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18823
  • Topic in totale: 2242
  • Online Today: 744
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 699
Total: 699

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.