Duvida com listview
Pessoal, sou novo em programação. Quero fazer o seguinte: pegar valores inseridos em 2 edit e joga-los num listview. Apos, salvar todos os valores do listview no banco de dados. O meu codigo insere os valores dos edit no listview, mas da erro e n''ao salva no BD.
Meu codigo:
Obrigado...
Meu codigo:
procedure TForm1.BitBtn_IncluirProcClick(Sender: TObject); var item:TListItem; begin inherited; Edit1.SetFocus; item:= Listview1.Items.Add; item.Caption:=form1.Edit1.Text; item.SubItems.Add(form1.Edit2.Text); Edit1.Text:=''''; Edit2.Text:=''''; end;
procedure TForm1.BitBtnSalvarClick(Sender: TObject);
Var i : Integer;
begin
inherited;
DM2.ADOQry.Active:= True;
for i := 0 to ListView1.Items.Count-1 do
begin
ListView1.ItemIndex:=0;
DM2.ADOQry.FieldByName(''nome'').AsString:=Listview1.Items[i].SubItems.Strings[0];
DM2.ADOQry.FieldByName(''num_processo'').AsString:=Listview1.Items[i].SubItems.Strings[1];
DM2.ADOQry.Post;
end;
Listview1.Clear;
end;Obrigado...
Maurício Curi
Curtidas 0
Respostas
Claudia Nogueira
25/11/2012
Oie bem vindo ao fórum. :)
Eu não entendi muito bem o código do BitBtn_IncluirProcClick por causa daquela declaração da variável, mas vou tentar te ajudar nos erros que eu achei.
No BitBtn_IncluirProcClick:
Não precisa disso var item:TListItem;, coloquei um TListView com Name = item no form
E no BitBtnSalvarClick:
Qualquer coisa posta novamente.
Eu não entendi muito bem o código do BitBtn_IncluirProcClick por causa daquela declaração da variável, mas vou tentar te ajudar nos erros que eu achei.
No BitBtn_IncluirProcClick:
item.Items.Add; item.Items[item.Items.Count-1].Caption := Edit1.Text; item.Items[item.Items.Count-1].SubItems.Add(Edit2.Text); Edit1.Clear; Edit2.Clear; Edit2.SetFocus;
Não precisa disso var item:TListItem;, coloquei um TListView com Name = item no form
E no BitBtnSalvarClick:
procedure TForm1.BitBtnSalvarClick(Sender: TObject);
Var i : Integer;
begin
inherited;
DM2.ADOQry.Close;
DM2.ADOQry.Open;
for i := 0 to item.Items.Count - 1 do
begin
DM2.ADOQry.Insert;
DM2.ADOQry.FieldByName('nome').AsString:= item.Items[i].Caption;
DM2.ADOQry.FieldByName('num_processo').AsString:= item.Items[i].SubItems.Text;
DM2.ADOQry.Post;
end;
item.Clear;
end;
Qualquer coisa posta novamente.
GOSTEI 0
Maurício Curi
25/11/2012
Muito obrigado Claudiadnh pela ajuda. A procedure BitbtnIncluir inclui dados através dos Edit nas colunas do Listview, então quero salvar os dados inseridos neste listview no banco de dados access. Vou testar a sua dica, e depois te respondo se deu ou não certo. Até mais. Obrigado.
GOSTEI 0
Maurício Curi
25/11/2012
Claudiadnh, o seu código executou corretamente, mas eu tive de alterar item por Listview1, pois usando a variável "item" não aparece o método "items", então tive de fazer a troca p/ executá-lo. O que vc acha que tá faltando pra executar usando a variável "item"? Seria a falta de alguma unit não declarada? Simplismente não reconhece item como variável. Obrigado desde já.
GOSTEI 0
Claudia Nogueira
25/11/2012
O "item" foi o nome que eu dei ao componente TListView que eu coloquei no form.
Claudiadnh, o seu código executou corretamente, mas eu tive de alterar item por Listview1, pois usando a variável "item" não aparece o método "items", então tive de fazer a troca p/ executá-lo. O que vc acha que tá faltando pra executar usando a variável "item"? Seria a falta de alguma unit não declarada? Simplismente não reconhece item como variável. Obrigado desde já.
GOSTEI 0
Maurício Curi
25/11/2012
Claudiadnh, estou trabalhando com 4 campos na minha tabela do access. Tentei implementar isso ao código abaixo mas executou c/ erro. Poderia me ajudar? Inseri mais 2 edits e mais 2 colunas no listview.
Quando executo o campo obs da minha tabela do bd recebe valor igual ao do num_processo, mas o que eu queria é que salvasse o que foi digitado no edit3(que consta na 3ª coluna do listview). Obrigado...
procedure TForm1.BitBtn_IncluirProcClick(Sender: TObject); begin inherited; Edit1.SetFocus; item.Items.Add; item.Items[item.Items.Count-1].Caption := Edit1.Text; item.Items[item.Items.Count-1].SubItems.Add(Edit2.Text); item.Items[item.Items.Count-1].SubItems.Add(Edit3.Text); Edit1.Clear; Edit2.Clear; Edit3.Clear; end;
procedure TForm1.BitBtnSalvarClick(Sender: TObject);
Var i : Integer;
begin
inherited;
DM2.ADOQry.Close;
DM2.ADOQry.Open;
for i := 0 to item.Items.Count - 1 do
begin
DM2.ADOQry.Insert;
DM2.ADOQry.FieldByName('nome').AsString:= item.Items[i].Caption;
DM2.ADOQry.FieldByName('num_processo').AsString:= item.Items[i].SubItems.Text;
DM2.ADOQry.FieldByName('obs').AsString:= item.Items[i].SubItems.Text;
DM2.ADOQry.Post;
end;
item.Clear;
Edit1.SetFocus;
end;Quando executo o campo obs da minha tabela do bd recebe valor igual ao do num_processo, mas o que eu queria é que salvasse o que foi digitado no edit3(que consta na 3ª coluna do listview). Obrigado...
GOSTEI 0