Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802

    [Delphi] Inserimento Item in ComboBox da code

    Ciao a tutti,
    devo inserire in un ComboBox una lista di valori corrispondenti all'anno (1930, 1950 ecc) in base all'anno attuale. Mi spiego meglio: l'anno attuale è il 2006 e nella ComboBox devono apparire gli anni che vanno dal 2006 fino a 70 anni fa quindi dal 1936 fino al 2006 prendendo in automatico l'anno attuale in modo che anche negli anni successivi lo script possa funzionare regolarmente. Come posso fare sta cosa? Sicuramente da codice ma non saprei da dove partire. Ho provato ad inserire:

    ComboBox4.Items := '1930';

    Ma mi da errore perchè si aspetta una stringa e a quanto pare lo vede come numero nonostante gli apici. Ho trovato anche un CodeEditor per gli item ma mi sembra di aver capito che non "legge" gli if e i for.
    www.beppegrillo.it
    Il blog di Beppe!!

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

    Re: [Delphi] Inserimento Item in ComboBox da code

    Originariamente inviato da colde
    Ma mi da errore perchè si aspetta una stringa e a quanto pare lo vede come numero nonostante gli apici. Ho trovato anche un CodeEditor per gli item ma mi sembra di aver capito che non "legge" gli if e i for.
    Assolutamente no, non si aspetta una stringa, ma sei tu che indichi una stringa laddove questa non è richiesta.

    Inoltre, con un assegnamento del genere, ammesso che sia possibile, avresti un solo elemento...e tutti gli altri?

    Hai provato a guardare anche sulla Guida in linea?

    Ad ogni modo, l'inserimento è molto semplice; prendi spunto da questo esempio che ho codificato al volo:
    codice:
    uses
      DateUtils;
    
    procedure TDemoForm.FillYearComboBox;
    var
      currentYear: Word;
      itemYear: Word;
    begin
      // Pulisce il contenuto della casella di riepilogo
      YearComboBox.Items.Clear;
      // Determina l'anno corrente
      currentYear := YearOf(Now);
      // Scandisce gli ultimi 70 anni a ritroso
      for itemYear := currentYear downto (currentYear - 70) do
      begin
        // Aggiunge l'anno alla casella di riepilogo
        YearComboBox.Items.Add(IntToStr(itemYear));
      end;
    end;
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Ora provo.

    Grazie
    www.beppegrillo.it
    Il blog di Beppe!!

  4. #4
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Per funzionare funziona ma quando clicco su un qualsiasi anno non viene visualizzato alla chiusura della tendina, rimane vuota come se non avessi fatto alcuna selezione. Da cosa dipende?
    www.beppegrillo.it
    Il blog di Beppe!!

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da colde
    Per funzionare funziona ma quando clicco su un qualsiasi anno non viene visualizzato alla chiusura della tendina, rimane vuota come se non avessi fatto alcuna selezione. Da cosa dipende?
    Come è impostata la proprietà Style del controllo?

    Hai del codice che viene eseguito sulla selezione di un elemento?

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

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

  6. #6
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Non so risponderti sullo style (non ho Delphi sottomano), ma posso dirti che non ho inserito codice per la selezione di un elemento, ho solo inserito la parte che mi hai dato come esempio per creare i contenuti dinamicamente. Immagino che la selezione funzioni normalmente come le altre tendine utilizzate e funzionanti, oppure mi sbaglio? Popolando la tendina dinamicamente viene richiesto anche l'inserimento di codice per gestire le selezioni?
    www.beppegrillo.it
    Il blog di Beppe!!

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da colde
    Popolando la tendina dinamicamente viene richiesto anche l'inserimento di codice per gestire le selezioni?
    No, non è necessario inserire alcunché.

    In quale evento hai inserito il codice per il caricamento degli elementi?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it L'avatar di colde
    Registrato dal
    Feb 2001
    Messaggi
    1,802
    Ciao alka,
    mi potresti spiegare solo un paio di cose del tuo script?

    uses
    DateUtils;

    procedure TDemoForm.FillYearComboBox;
    var
    currentYear: Word;
    itemYear: Word;
    begin
    // Pulisce il contenuto della casella di riepilogo
    YearComboBox.Items.Clear;
    // Determina l'anno corrente
    currentYear := YearOf(Now);
    // Scandisce gli ultimi 70 anni a ritroso
    for itemYear := currentYear downto (currentYear - 70) do
    begin
    // Aggiunge l'anno alla casella di riepilogo
    YearComboBox.Items.Add(IntToStr(itemYear));
    end;
    end;

    La uses elenca le classi utilizzate nel form, giusto?
    Come variabili hai impostato currentYear e itemYear come Word, mi sapresti dire cosa sarebbe questa Word?

    Grazie mille
    www.beppegrillo.it
    Il blog di Beppe!!

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da colde
    La uses elenca le classi utilizzate nel form, giusto?
    No, assolutamente, sono le unit che forniscono tipi, funzioni e procedure che vengono utilizzate nella unit in cui è presente il codice corrente.

    Originariamente inviato da colde
    Come variabili hai impostato currentYear e itemYear come Word, mi sapresti dire cosa sarebbe questa Word?
    E' uno dei tipi di dato interi disponibili.
    Posizionati su Word e premi F1...la Guida è buona consigliera.

    Aggiungo che, pur non potendo leggere interamente il libro di Cantù (che poi non richiede settimane e settimane, io l'ho esaurito in due), puoi comunque consultare la Guida in linea (che fornisce un approccio guidato a tutte le informazioni di base, come un vero manuale), oppure la guida su Programmazione.HTML.it.

    Secondo me, la tua avventura da autodidatta in caso contrario sarà molto ardua.

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