Originariamente inviato da firefox88
La DBGrid è piuttosto difficile da usare per l'utente finale. E' tutt'altro che intuitiva.
Sicuramente, è molto più intuitiva di una ListBox che, al contrario, non è adatto allo scopo, non visualizza nomi per le colonne, non supporta la loro riorganizzazione, non permette di fornire una scelta di valori "in place", non permette in sostanza di fare nulla di quanto invece implementa il controllo TDBGrid.

Originariamente inviato da firefox88
Ad esempio, non è chiaro come si faccia a rendere effettive le modifiche apportate a una determinata riga, e quando si crea una nuova riga, è necessario aggiungerne un'altra vuota in fondo altrimenti quella precedente non viene salvata. Provare per credere.
Perciò ho pensato di fare una ListBox [...]
Molto più semplice dell'inserimento direttamente sulla griglia
Parti dall'errato concetto che la griglia, responsabile della visualizzazione tabulare dei dati, debba fornire TUTTE le funzionalità e i comandi che consentono di aggiungere, modificare, eliminare, salvare e annullare i record, cosa che non fa, ma che per inciso non fa nemmeno la ListBox.

Infatti, tu stesso ammetti che hai l'intenzione di aggiungere pulsanti e altri elementi che consentano di fare queste operazioni in modo più intuitivo; allora, dico io, perchè non farle per la DBGrid piuttosto che per la ListBox?

La cosa magnifica è che utilizzando un TDBNavigator e associandolo allo stesso DataSource, puoi tranquillamente fornire una comoda interfaccia per svolgere tutte le operazioni che desideri sui record senza costringere l'utente a fare tutto dal controllo TDBGrid ricordandosi le opportune combinazioni di tasti.

Se non ti soddisfano le funzionalità o l'aspetto del DBNavigator, puoi sempre ricorrere al componente TActionList e introdurre al suo interno le "Standard Actions" che consentono di eseguire operazioni su un generico TDataSet e associare tali azioni ai tasti personalizzati dell'interfaccia utente.

Insomma, qualsiasi soluzione tu voglia adottare per l'accesso ai dati, Delphi ti fornisce una valida e funzionale soluzione che spesso non richiede di scrivere nemmeno una sola riga di codice.

Ciao!