Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [ DELPHI ] Prob data e path

    Salve a tutti, sono un programmatore in erba e vorrei capire meglio come funziona delphi..
    insomma, qualcosina sono riuscito a fare, ma alcune cose mi sembrano cosi complicate...
    Per es. non so come gestire una variabile, o meglio, ho tre edit con all'interno l'anno, il mese e il giorno e vorrei fare in modo che al cliccare di un bottone questi tre valori contenuti nelle 3 edit diventino un'unica veriabile.. quindi una data vera è propria (Es: 2002/05/02)

    E poi non so come fare per fornire al mio programma un path relativo, ho meglio vorrei che al cliccare di un bottone io possa sceglire nelle risorse del mio PC una cartella di partenza su cui fare delle ricerche da essa alle sue sottocartelle...

    Qualcuno mi aiuta?
    Grazie a tutti... e buona programmazione.. ^_^

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

    Re: [ DELPHI ] Prob data e path

    Originariamente inviato da grafica.web
    Salve a tutti, sono un programmatore in erba e vorrei capire meglio come funziona delphi..
    insomma, qualcosina sono riuscito a fare, ma alcune cose mi sembrano cosi complicate...
    Si tratta di non avere troppa fretta di fare, soprattutto agli inizi.

    Originariamente inviato da grafica.web
    Per es. non so come gestire una variabile, o meglio, ho tre edit con all'interno l'anno, il mese e il giorno e vorrei fare in modo che al cliccare di un bottone questi tre valori contenuti nelle 3 edit diventino un'unica veriabile.. quindi una data vera è propria (Es: 2002/05/02)
    Per fare ciò che chiedi, potresti usare la funzione EncodeDate, la quale ti permette di riassemblare informazioni come giorno, mese e anno all'interno di un dato di tipo TDateTime, che è il tipo in Delphi adatto a contenere date e ore. Osserva l'esempio seguente:
    codice:
    procedure TDemoForm.ConvertButtonClick(Sender: TObject);
    var
      D, M, Y: Word;
      MyDate: TDateTime;
    begin
      D := StrToInt(DayEdit.Text);
      M := StrToInt(MonthEdit.Text);
      Y := StrToInt(YearEdit.Text);
      MyDate := EncodeDate(Y, M, D);
      DateLabel.Caption := DateToStr(MyDate);
    end;
    Il linguaggio Delphi è estremamente "tipato": questo significa che spesso, dovendo maneggiare dati di tipo diverso, è necessaria una conversione esplicita, poichè non è possibile usare un tipo di dato al posto di un altro senza aver prima effettuata l'adeguata conversione.
    Nell'esempio sopra, DayEdit, MonthEdit e YearEdit sono controlli Edit in cui inserire rispettivamente giorno, mese e anno; MyDate è una variabile che contiene il valore convertito in data nativa riassemblando le varie componenti, mentre DateLabel visualizzerà sottoforma di stringa il valore convertito per verifica alla pressione del pulsante ConvertButton.

    La funzione EncodeDate accetta come parametro le componenti della data, che però sono valori Word; siccome le caselle di testo forniscono stringhe, è necessario convertire le componenti della data in valori numerici interi usando StrToInt.
    Una volta convertiti, questi valori vengono appunto riuniti usando EncodeDate che è una funzione in grado di restituire il valore corrispondente a giorno, mese e anno specificati nel tipo TDateTime specifico; l'istruzione successiva converte il valore TDateTime in una stringa per poterla visualizzare all'interno di un'etichetta.

    Originariamente inviato da grafica.web
    E poi non so come fare per fornire al mio programma un path relativo, ho meglio vorrei che al cliccare di un bottone io possa sceglire nelle risorse del mio PC una cartella di partenza su cui fare delle ricerche da essa alle sue sottocartelle...
    Definisci meglio cosa intendi per "fornire un path relativo".
    Per selezionare una cartella, puoi usare la funzione SelectDirectory, accessibile aggiungendo la unit FileCtrl alla clausola uses. Per le informazioni su questa funzione ti rimando alla Guida in linea di Delphi, uno strumento che è indispensabile imparare ad utilizzare, secondo me, poichè fornisce immediatamente molte delle risposte alle domande che vengono poi inesorabilmente fatte qui. Per ottenere informazioni su una funzione specifica, su un tipo di dati, su una proprietà o parole chiave e così via, basta posizionare il cursore sull'identificatore e premere F1.

    Per il momento è tutto.

    Buona programmazione con Delphi!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Ok, grazie per le info.. però c'è una cosa che non capisco..
    io per prova voglio fare vedere la data che ho creato in un msg...

    Ma mi da errore?.. non capisco..


    procedure TF_delete_dir.Bt_nextClick(Sender: TObject);
    var
    D, M, Y: Word;
    MyDate: TDateTime;

    begin
    D := StrToInt(E_day.Text);
    M := StrToInt(E_month.Text);
    Y := StrToInt(E_year.Text);
    MyDate := EncodeDate(Y, M, D);
    //DateLabel.Caption := DateToStr(MyDate);

    MessageDlg ( MyDate , mtInformation, [mbOK], 0);
    end;

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,282
    Il motivo per il quale non ti viene accettata quell'istruzione è lo stesso motivo che ho cercato di evidenziarti per tutto il mio messaggio di risposta: le conversioni dei tipi devono essere esplicite.

    La funzione MessageDlg si aspetta di ricevere il testo da visualizzare come dato string, pertanto non puoi passare come parametro MyDate, trattandosi di un tipo TDateTime quindi diverso, a meno di non fare una conversione esplicita usando la stessa funzione che ho utilizzato io per la visualizzazione all'interno dell'etichetta: DateToStr.

    La forma corretta diviene quindi
    codice:
    MessageDlg(DateToStr(MyDate), mtInformation, [mbOK], 0);
    P.S.: quando hai un problema, non scrivere semplicemente "ho un problema" oppure "non funziona" ma cerca di dettagliare al massimo il tuo scoglio scrivendo esattamente l'errore riportato e copiando il codice che ti segnala l'errore.

    P.P.S.: io ti suggerisco di munirti prima di un po' di documentazione su Delphi, magari leggendo alcune guide non complete ma fatte bene per i neofiti come quella pubblicata su Programmazione.HTML.it.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5

    [ delphi ] Informazioni recepite..

    Chiedo venia per la mia ignoranza in materia, il tuo è un ottimo consiglio che seguirò sicuramente... ma la voglia di realizzare è tanta e quando si tratta di leggere non vedo l'ora di provare subito il tutto... grazie ancora per le preziose info... il fatto che il Delphi è un linguaggio tipato non è da sottovalutare.. la prossima volta farò più attenzione...

    PS: la guida su hmtl è ottima.. ma non si può averla in formato doc o pdf per stamparla?

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

    Re: [ delphi ] Informazioni recepite..

    Originariamente inviato da grafica.web
    PS: la guida su hmtl è ottima.. ma non si può averla in formato doc o pdf per stamparla?
    Non credo. Forse si può acquistare su uno dei CD distribuiti dal circuito HTML.it, tuttavia trattandosi di pagine statiche ti basterebbe visitarle in modo che vengano memorizzate nella cache del browser e successivamente disconnetterti e consultarle in Modalità non in linea.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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