Faz tempo que não posto aqui no ScriptBrasil... como estão?
Bom, estou montando um sistema em Delphi (sou iniciante) e, embora o meu programa esteja funcionando bem, ainda apresenta alguns problemas que desejo solucionar.
Como faço para saber qual o índice que está sendo selecionado pelo usuário no DBGrid?
Fiz um form que monta uma requisição de materiais. O usuário entra com os materiais e automáticamente este vai salvando no bd e exibe no dbgrid. Mas da mesma forma que ele insere eu também quero que seja alterado, excluido, etc. Eu fiz da seguinte forma:
procedure TFReqMat.btnInsereClick(Sender: TObject);
var s: string;
begin
s := matQtde.Text;
while Pos(',',s) > 0 do
s[Pos(',',s)] := '.';
matQtde.Text := s;
qLstM.Active;
qLstM.Close;
qLstM.SQL.Clear;
qLstM.SQL.Add('INSERT INTO lst_reqm (id_mat, reqm_qtde, id_reqm)');
qLstM.SQL.Add('VALUES (');
qLstM.SQL.Add('"'+ IntToStr(idmat) +'",');
qLstM.SQL.Add('"'+ matQtde.Text +'",');
qLstM.SQL.Add('"'+ IntToStr(idreqm) +'");');
qLstM.ExecSQL;
qlstM.Close;
qlstM.SQL.Clear;
qlstM.SQL.Add('SELECT');
qlstM.SQL.Add('materiais.mat_eam, materiais.mat_descr,');
qlstM.SQL.Add('lst_reqm.reqm_qtde');
qlstM.SQL.Add('FROM materiais, lst_reqm');
qlstM.SQL.Add('WHERE materiais.id_mat = lst_reqm.id_mat ');
qlstM.SQL.Add(' AND lst_reqm.id_reqm = ' + IntToStr(idreqm) + ';');
qlstM.ExecSQL;
qlstM.Open;
if qlstM.RowsAffected > 0 then begin
lstReq.Refresh; // ATUALIZA O DBGRID
end;
end;
Ao apertar o botão Add o usuário vai cadastrar os produtos no bd. Está básico, é claro. Até aí funciona legal.
Porém o problema é quando eu quero ver o índice da linha. Suponha que eu inclui dois materiais na requisição, eu selecionei com o mouse a linha 2. Para isso eu fiz um botão e nele fiz o seguinte código
procedure TFReqMat.removerClick(Sender: TObject);
var
i, val: integer;
begin
With lstReq do
Begin
showmessage(IntToStr(lstReq.SelectedIndex)); // O QUE ME RETORNA É SEMPRE 0.
end;
end;
O que me retorna é sempre zero, independentemente de onde esteja apontando o ponteiro. Porque?
Pergunta
toretto_PHP
Boa tarde.
Faz tempo que não posto aqui no ScriptBrasil... como estão?
Bom, estou montando um sistema em Delphi (sou iniciante) e, embora o meu programa esteja funcionando bem, ainda apresenta alguns problemas que desejo solucionar.
Como faço para saber qual o índice que está sendo selecionado pelo usuário no DBGrid?
Fiz um form que monta uma requisição de materiais. O usuário entra com os materiais e automáticamente este vai salvando no bd e exibe no dbgrid. Mas da mesma forma que ele insere eu também quero que seja alterado, excluido, etc. Eu fiz da seguinte forma:
Ao apertar o botão Add o usuário vai cadastrar os produtos no bd. Está básico, é claro. Até aí funciona legal. Porém o problema é quando eu quero ver o índice da linha. Suponha que eu inclui dois materiais na requisição, eu selecionei com o mouse a linha 2. Para isso eu fiz um botão e nele fiz o seguinte códigoO que me retorna é sempre zero, independentemente de onde esteja apontando o ponteiro. Porque?
Obrigado quem vier a me ajudar...
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.