Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326

    [delphi] Utilizzo di Maskedit x date e importi

    Salve a Tutti,

    su una Form ho inserito un oggetto Maskedit, nel quale vorrei inserire una data nel formato italiano gg/mm/yyyy, questo e' la proprieta EditMask del mio MaskEdit !99/99/0000;

    a run-time riesco ad inserire i valori in questo campo, solo che mi accetta anke date inesatte del tipo 19/19/2004.
    devo essere io a fare i dovuti controlli sull'evento exit dell'oggetto?

    mi potreste anke indicare che maskera devo inserire x ottenere l'immissione di un importo numerico con separatore per migliaia e per decimali? (es.: 1.579.789,84)

    grazie

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

    Re: [delphi] Utilizzo di Maskedit x date e importi

    Originariamente inviato da 123delphi321
    a run-time riesco ad inserire i valori in questo campo, solo che mi accetta anke date inesatte del tipo 19/19/2004.
    devo essere io a fare i dovuti controlli sull'evento exit dell'oggetto?
    Devi fare tu i controlli, poichè la TMaskEdit fornisce solo una maschera che indica quali tipi di caratteri devono essere inseriti in determinate posizioni; in generale, il controllo avviene quando l'utente abbandona il campo (evento OnExit) o magari preme INVIO (evento OnKeyPress).

    Originariamente inviato da 123delphi321
    mi potreste anke indicare che maskera devo inserire x ottenere l'immissione di un importo numerico con separatore per migliaia e per decimali? (es.: 1.579.789,84)
    Gli utenti non sono generalmente comodi ad inserire manualmente i separatori delle migliaia nelle cifre; si tratta di un espediente usato per la visualizzazione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Gli utenti non sono generalmente comodi ad inserire manualmente i separatori delle migliaia nelle cifre; si tratta di un espediente usato per la visualizzazione.
    quindi cosa consigli? utilizzare un maskedit dove controllo l'immissione di solo valori numerici e poi sull'evento onexit provvedere a visualizzare il numero in formato desiderato? qual'e' la tecnica da utilizzare?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Originariamente inviato da 123delphi321
    quindi cosa consigli? utilizzare un maskedit dove controllo l'immissione di solo valori numerici e poi sull'evento onexit provvedere a visualizzare il numero in formato desiderato? qual'e' la tecnica da utilizzare?
    Suppongo che i dati di cui stiamo parlando siano contenuti all'interno di un database...è corretto?

    I componenti TTable, TQuery, TIBTable, ecc. insomma i DataSet, quando si apre la tabella associata o si esegue la query, creano internamente degli oggetti TField in grado di rappresentare i singoli campi della tabella del tipo appropriato.

    Queste impostazioni possono essere ridefinite attraverso i cosiddetti "campi persistenti"; puoi fare doppio clic sul componente per far apparire un editor in cui si possono importare i campi (il menu è accessibile con il tasto destro) e modificarne le proprietà.

    Tra queste proprietà, vi è DisplayFormat: si tratta di una proprietà che permette di specificare una "maschera" con la quale il campo verrà visualizzato da *tutti* i controlli Data Aware (i Data Controls) ad esso collegati, come TDBGrid, TDBEdit e così via.

    Se evidenzi la proprietà DisplayFormat nell'Object Inspector e premi F1, ti apparirà la Guida in linea di Delphi con le istruzioni su come questa proprietà debba essere impostata per regolare il numero di decimali da visualizzare, il separatore, la formattazione delle migliaia e altro ancora.

    Secondo me, è lo strumento più rapido per definire in modo centralizzato come deve essere mostrato, ed eventualmente editato, un campo indipendentemente dal fatto che queste operazioni vengano fatte da una griglia o da una casella di testo, poichè i Data Control seguono queste impostazioni definite per tutti negli oggetti che rappresentano i campi della tabella, le cui impostazioni vengono memorizzate su disco (nel DFM) e ricaricate successivamente.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    la spiegazione e' molto valida...e la usero gia domani quando iniziero a eseguire modifiche sulle query effettuate.

    ma la mia domanda era riferita ad un maskedit non collegato ad un field.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,477
    Originariamente inviato da 123delphi321
    ma la mia domanda era riferita ad un maskedit non collegato ad un field.
    La maschera EditMask del controllo TMaskEdit vale sia per l'inserimento che per la visualizzazione, quindi non puoi scindere il modo con cui il dato viene inserito specificando una maschera differente da quella utilizzata per la visualizzazione del dato stesso.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326

    [delphi] left e right di una stringa

    Ciao a tutti,

    mi sapete dire qual'e' la funzione che mi restituisce la parte left e la parte right di una stringa?

    io ho trovato e provato questo codice.....ma non riesco a farlo funzionare.

    codice:
    var
      source, target : AnsiString;
    begin
      source := '123456789';
      target := AnsiLeftStr(source, 3);
    
      ShowMessage('Source = '+source);
      ShowMessage('Target = '+target);
    end;
    io vorrei ottenere una stringa con gli ultimi 5 caratteri a destra,...quindi: target = '56789'


    grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    scusate ho sbagliato ad inserire questa risposta qui...

    ho aperto una nuova discussione su left e right di una stringa.


    scusatemi.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.