Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    [Delphi] Modifica Index di una ListBox

    Sto sviluppando un software in delphi che raccoglie dei dati da un database mysql e inserisce in una listbox uno dei valori resituiti dalla query.
    In pratica prendo dalla tabella "aziende" i valori associati ad ogni azienda e poi ne metto il nome in una ListBox. Quando poi seleziono una riga della ListBox di cui sopra tutti i valori associati all'azienda selezionata vengono visualizzati in degli EditBox. Al momento effettuo la query per la visualizzazione dei dettagli prendendo il nome dell'azienda così come compare nella lista. Però mi chiedevo se era possibile assegnare ad ogni riga, a parte il testo che è il nome dell'azienda, un index che non sia quello progressivo della tabella ma quello autoincrement preso dal database.
    E' un'utopia? Ho cercato sulla guida e su internet.
    Una cosa che sembra fare al caso mio è ListBox.Items.Insert(index,stringa) ma non ho capito come si usa.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310
    Puoi usare il metodo AddObject di ListBox.Items: tale metodo consente di aggiungere una stringa associando un oggetto ad essa, in modo simile ad un dizionario.

    Ovviamente, nel nostro caso, lavorando in Win32 e avendo a che fare con un numero intero, non disponiamo di un oggetto ma di un tipo primitivo Integer, quindi occorre fare un cast del valore dell'ID per poterlo inserire nella ListBox.

    Un esempio (non verificato)
    codice:
    ListBox.Items.AddObject(CompanyName, TObject(ID));
    dove CompanyName e ID sono inizializzati al nome della società e all'ID univoco corrispondente, prelevati dal database.

    P.S.: parere personale, non capisco questa smania di usare la ListBox quando esistono tanti Data Control che contengono, al loro interno, tutto ciò che stai sviluppando tu in questo momento, ma collaudati da quasi 10 anni di esperienza di Borland.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Hai ragione. Ma usare una DBGrid mi pare un pò "grossolano", comodo ma grossolano.
    Con la DBListBox potrei far visualizzare il contenuto del DB direttamente associandogli un DataSource però con i DataControls non ho molta familiarità.

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ok.. prendendo in considerazione l'idea dei DataControls e volendo visualizzare i dati in una DBListBox ho fatto così:
    - ho creato una tabella associata a quella da cui prendere i dati (TAziende)
    - ho creato un datasource associato a quella tabella (DSAziende)
    - ho creato una query associato al datasource (QAziende)
    - ho creato la DBListBox (LBAziende) associato alla query settando come DataField il campo "nome".

    Cosa c'è di sbagliato in queste operazioni?

  5. #5

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,310
    Originariamente inviato da VaLvOnAuTa
    Cosa c'è di sbagliato in queste operazioni?
    Leggi la risposta che ho dato al tuo quesito precedente: il controllo DBListBox modifica i dati di un campo di una tabella, *NON* visualizza tutti i record della tabella; per fare questo, devi usare un controllo DBGrid, che puoi personalizzare nell'aspetto fino a farlo assomigliare ad una comune ListBox.

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