Permitindo Múltiplas Seleções [TDBGrid]
Para seleção múltipla, você precisa colocar a opção dgMultiSelect como "True" na propriedade Options.
Quando dgMultiSelect é "True", você podem selecionar várias linhas no TDBGrid.
As teclas de "Ctrl + clique do mouse" "Shift + teclas de seta" Funcionam quando habilitado a opção dgMultiSelect
Os registros selecionados são armazenados na propriedade SelectedRows do TDBGrid.
O SelectedRows é apenas utilizado apenas quando as propriedades dgMultiSelect ou dgRowSelect estão configuradas como "True".
Podemos usar a propriedade SelectedRows para;
>> Limpar seleção;
>> Obter o número de linhas selecionadas
>> Excluir todos os registros selecionados
>> Verifique se um registro específico está selecionado
Exemplo de dgMultiSelect
Vamos precisa de:
>> cdsgbGrid: TClientDataSet;
>> dsgbGrid: TDataSource;
>> gbGrid: TDBGrid;
>> cdsgbGridCODIGO: TIntegerField;
>> cdsgbGridDESCRICAO: TStringField;
>> pnlTopo: TPanel;
>> BtnCodigo: TBitBtn;
No TDBGrid Ative a Opção (Options >> dgMultiSelect)
Quando dgMultiSelect é "True", você podem selecionar várias linhas no TDBGrid.
As teclas de "Ctrl + clique do mouse" "Shift + teclas de seta" Funcionam quando habilitado a opção dgMultiSelect
Os registros selecionados são armazenados na propriedade SelectedRows do TDBGrid.
O SelectedRows é apenas utilizado apenas quando as propriedades dgMultiSelect ou dgRowSelect estão configuradas como "True".
Podemos usar a propriedade SelectedRows para;
>> Limpar seleção;
>> Obter o número de linhas selecionadas
>> Excluir todos os registros selecionados
>> Verifique se um registro específico está selecionado
Exemplo de dgMultiSelect
Vamos precisa de:
>> cdsgbGrid: TClientDataSet;
>> dsgbGrid: TDataSource;
>> gbGrid: TDBGrid;
>> cdsgbGridCODIGO: TIntegerField;
>> cdsgbGridDESCRICAO: TStringField;
>> pnlTopo: TPanel;
>> BtnCodigo: TBitBtn;
No TDBGrid Ative a Opção (Options >> dgMultiSelect)
procedure TFDbGrid.BtnCodigoClick(Sender: TObject);
var
wLocalInicial : TBookmark;
i: Integer;
begin
{Bookmarks permitem ao programador salva o registro da tabela para que possa retornar logo apos passar pelo processo}
wLocalInicial := cdsgbGrid.GetBookmark;
if (gbGrid.SelectedRows.Count > 0) then begin
for i := 0 to gbGrid.SelectedRows.Count - 1 do begin
{Nesse metodo faz você passar entre os registros da tabela de acordo com o que esta no DBGrid}
cdsgbGrid.GotoBookMark(Pointer(gbGrid.SelectedRows.Items[I]));
cdsgbGrid.Edit;
if cdsgbGridDESCRICAO.Value = 'Pago' then
cdsgbGridDESCRICAO.Value := 'Aberto'
else
cdsgbGridDESCRICAO.Value := 'Pago';
cdsgbGrid.Post;
end;
end;
{FreeBookMark Libera o Bookmarks da memoria: Obs: Se não liberado pode comprometer o espaço em memoria}
cdsgbGrid.FreeBookMark(wLocalInicial);
end;
Exemplo: Download do exemplo
0 comentários:
Postar um comentário