Ponteiro
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
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
Curtidas 0
Respostas
Doug_chagas
22/02/2003
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.
GOSTEI 0
Anonymous
22/02/2003
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.
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.
GOSTEI 0