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

    [Delphi 2010] Seleziona tutte le righe di un componente DBGrid

    Ciao ragazzi, sono nuovo del forum quindi spero di aver postato nella posizione corretta.

    Vi espongo il mio problema.
    Ho una DBGrid, con una sola colonna, collegato ad un dataset e avrei la necessità, tramite un menù popup già configurato, di poter lanciare una selezione massiva di tutte le righe della griglia.

    Stò provando ad utilizzare la proprietà SelectedRows ma vedo che ritorna la lista delle celle che ho selezionato io manualmente e non è quello che cerco.

    Spero che possiate aiutarmi.
    Grazie anticipatamente a tutti.

  2. #2
    Mi sfugge qualche particolare, la selezione di tutte le righe equivale a selezionare tutti i record del dataset, quindi se dal pop-up dichiari un "select all" basta un ciclo while not eof sul dataset.
    N.

  3. #3
    Ciao, il problema non è selezionare tutti i record del dataset, giustamente come hai suggerito te, con un query si può risolvere semplicemente questo problema.
    La mia problematica è proprio quella selezionare graficamente tutte le celle della griglia, ma non manualmente con il ctrl + click del mouse ma a codice.

  4. #4
    Ok vediamo se ho capito
    Devi abilitare la multiselezione nelle options e poi selezionare a manina tutte le righe della griglia e settare la proprietà DBGrid1.SelectedRows.CurrentRowSelected := true
    qualcosa del tipo:

    codice:
      ClientDataSet1.First;   
      ClientDataSet1.DisableControls;
      try
         while not ClientDataSet1.eof do
         begin
           DBGrid1.SelectedRows.CurrentRowSelected := True;
           ClientDataSet1.Next;
         end;
        finally
         ClientDataSet1.EnableControls;
       end;
    N.

  5. #5
    Proprio questo intendevo grazie mi ero bloccato sull'utilizzo della proprietà SelectedRows.
    Domandina scema...il DisableControls slega il dataset da cosa???

  6. #6
    Il comando Disablecontrols disabilta il ridisegno a video dei controlli associati al dataset in modo che se da codice esegui un "while not eof" del dataset non vedi la griglia che scrolla su tutti i record, in questo modo non dovendo gestire il ridisegno a video la velocità di esecuzione aumenta.
    N.

  7. #7
    Perfetto come immaginavo

    grazie mille!!!

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.