Ponteiro

22/02/2003

0

olá

Tenho o seguinte problema meu usuário seleciona um nome num grid, dando dois clicks, depois outro e outro... eu tenho que formar uma lista com estes nomes.
Gostaria de saber quais foram as linhas que ele selecionou, tem como eu fazer isto com Grid ou o que posso usar.

Se alguém poder me ajudar, desde já agradeço

Raquel


Anonymous

Anonymous

Responder

Posts

23/02/2003

Doug_chagas

olá Tenho o seguinte problema meu usuário seleciona um nome num grid, dando dois clicks, depois outro e outro... eu tenho que formar uma lista com estes nomes. Gostaria de saber quais foram as linhas que ele selecionou, tem como eu fazer isto com Grid ou o que posso usar. Se alguém poder me ajudar, desde já agradeço Raquel


Seguinte.

Crie mais um campo nessa tabela, pode ser numérico ou lógico. Se quiser que fique melhor exiba-o como 1º campo do grid.

Ai vc coloca no evento double-click da grid para preencher esse campo com ´*´ por exemplo. Não precisa se preocupar em setar, pois os clicks já vão setar no registro correto.

Dai no seu botão ok (não sei se a rotina é assim), vc faz um while em todos os registros da grid e trata como selecionados só os que estão com ´*´ no campo novo.

Valew. Se entendi sua pergunta resolveria assim.
É simples, tem outras formas mais sofisticadas, mas ...

Falow ae.


Responder

23/02/2003

Anonymous

Uma maneira bem simples é vc selecionar na propriedade Options do dbGrid, dgMultiSelect para True, e usar o seguinte código num evento OnClick de um botão.

procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin

if (j>0) then s:=s+´, ´;
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= ´´;
end;
end;

Este código cópia as linhas selecionadas para um ListBox ou até mesmo se vc quiser, um StringList.


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar