TStringGrid e selezione multipla di righe

di il
3 risposte

TStringGrid e selezione multipla di righe

Buongiorno a tutti,
necessito di aiuto per risolvere un problema con una TStringGrid (non TDBStringGrid).

Ho bisogno di sapere, in caso di selezione multipla, le righe selezionate per cancellarne il contenuto.
Ho provato diverse routine ma non riesco in nessun modo ad identificare le righe corrette.

Qualcuno ha un esempio da condividere o una dritta sulla strada da seguire ?

Grazie

EDV

3 Risposte

  • Re: TStringGrid e selezione multipla di righe

    EDV ha scritto:


    Ho bisogno di sapere, in caso di selezione multipla, le righe selezionate per cancellarne il contenuto.
    Il controllo TStringGrid dispone della proprietà Selection di tipo TGridRect che ti fornisce le coordinate dell'angolo superiore sinistro e inferiore destro del rettangolo formato dal range delle celle selezionate.

    Agendo sulla proprietà Options hai la facoltà di definire le opzioni di selezione attuabili sulla griglia; ad esempio, puoi abilitare (e disabilitare) la selezione di un range (goRangeSelect) o di una intera riga (goRowSelect). La scelta di diverse opzioni influisce sull'estensione del range a fronte di una selezione della griglia, ma i valori restituiti da Selection saranno sempre coerenti.

    Prova ad esempio a visualizzare su un pulsante al clic le coordinate attuali della selezione con questo codice:
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      LSelection: TGridRect;
    begin
      LSelection := StringGrid1.Selection;
      Button1.Caption := Format('Left=%d, Top=%d, Right=%d, Bottom=%d',
        [LSelection.Left, LSelection.Top, LSelection.Right, LSelection.Bottom]);
    end;
    
    Modificando il range di selezione sulla TStringGrid e premendo il TButton avrai subito un esempio chiaro di come variano le coordinate e quindi come riconoscere quali sono le righe selezionate.

    Per approfondimenti, fai riferimento anche alla .

    Ciao!
  • Re: TStringGrid e selezione multipla di righe

    Fantastico !!!pensavo che Selection ti restituisse la posizione in termini di coordinate grafiche, come il TRec in DrawCell, in realtà vedo che restituisce riga Top, riga Bottom Col Left e Col Right della selezione... fantastico, con 2 righe di codice.
    Grazie Marco, Buon anno
    EDV
  • Re: TStringGrid e selezione multipla di righe

    EDV ha scritto:


    Fantastico !!!pensavo che Selection ti restituisse la posizione in termini di coordinate grafiche, come il TRec in DrawCell, in realtà vedo che restituisce riga Top, riga Bottom Col Left e Col Right della selezione... fantastico, con 2 righe di codice.
    Sì, la StringGrid è più versatile di quanto si pensi, soprattutto perché si adatta a molte esigenze ed è flessibile pur senza coinvolgere il "data binding".

    EDV ha scritto:


    Grazie Marco, Buon anno
    Buon anno anche a te!
Devi accedere o registrarti per scrivere nel forum
3 risposte