Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) StringGrid


AllNet

Pergunta

Bom dia pessoal, tenho em em form uma striggrid, e no evento onshow do form o seguinte codigo:

begin
  StringGrid1.cells[0, 0]:= ' Pedido';
  StringGrid1.cells[1, 0]:= 'Data';
  lbNome.Caption:='';
  dm.ZQuery1.SQL.Clear;
  dm.ZQuery1.SQL.Add('SELECT codpedido, data');
  dm.ZQuery1.SQL.Add('FROM pedidos');
  dm.ZQuery1.SQL.Add('WHERE cliente = :cliente AND status = "T"');
  dm.ZQuery1.ParamByName('cliente').AsInteger := StrToInt(frmRelatorioPedido.edtCliente.Text);
  dm.ZQuery1.Open;
  while not dm.ZQuery1.EOF do
  begin
    StringGrid1.rowcount := StringGrid1.rowcount + 1;
    StringGrid1.cells[0, StringGrid1.rowcount -2 ]:= trim(dm.zquery1.fieldbyname('codpedido').asstring);
    StringGrid1.cells[1, StringGrid1.rowcount -2 ]:= trim(dm.zquery1.fieldbyname('data').asstring);
    dm.zquery1.next;
  end;
  dm.ZQuery1.Close;
end;

isto para quando abrir o form aparecer os pedidos do tal cliente.

minha dúvida é como fazer para selecionarmos uma linha da stringgrid e quando clicar nesta linha, ou dar um enter nesta linha, eu pegar o código do pedido (codpedido)?

Fui claro?

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
minha dúvida é como fazer para selecionarmos uma linha da stringgrid e quando clicar nesta linha, ou dar um enter nesta linha, eu pegar o código do pedido (codpedido)?

Voce pode usar as propriedades do StringGrid

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  if (ACol = 2) and  (ARow = 2) then
     begin
        showmessage('voce selecionou a coluna 2 e linha 2');
        // comandos ...
     end;
end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
   if (key = #13) then
      begin
         //  faça alguma coisa quando teclar Enter
         showmessage('voce teclou <Enter>');
         // comandos ...
      end;
end;

OBS: Ao invés de usar StringGrid não seria muito melhor usar o DBGrid ?

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

olá Jhonas, eu coloquei este código:

procedure MouseCell(Grid: TStringGrid;

  var Coluna, Linha: integer);
var
  Pt: TPoint;
begin
  GetCursorPos(Pt);
  Pt := Grid.ScreenToClient(Pt);
  if PtInRect(Grid.ClientRect, Pt) then
    Grid.MouseToCell(Pt.X, Pt.Y, Coluna, Linha)
  else
  begin
    Coluna := -1;
    Linha := -1;
  end;
end;

procedure TfrmProcurarCliente.StringGrid1DblClick(Sender: TObject);
var
  Coluna, Linha: integer;
  begin
      MouseCell(StringGrid1, Coluna, Linha);
  if (Coluna >= 0) and (Linha >= 0) then
    Caption := 'Coluna: ' + IntToStr(Coluna) + ' - ' +
      'Linha: ' + IntToStr(Linha)
  else
  Caption := 'O mouse não está no StringGrid';
end;

porém ele mostra a linha e a coluna, e eu queria que ele pegase os dados dentro da linha ou coluna.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Joao Paulo --

Voce poderia tentar assim

procedure TForm1.StringGrid1Click(Sender: TObject);
var
a: String;
b: Integer;
begin
b:=StringGrid1.Row;
a:=StringGrid1.Cells[0,b];
ShowMessage(a);
end;

A variável "a" recebe o valor que estiver na coluna zero da linha que voce clicar, testa aí, ve se dá certo

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...