Dúvida no DBgrid...

12/05/2003

0

Tenho uma dúvida e se alguém puder me ajudar agradeço. Tenho um DBgrid1 no Form2 que mostra os meus clientes. Quando eu der
um clique na linha deste DBgrid, quero que o Form1 apareça e
mostre os dados deste cliente nos respectivos DBedits. Será que
alguém pode me ajudar? Como faço isto?


Ginosam

Ginosam

Responder

Posts

12/05/2003

Aborges

Exprimenta fazer o seguinte,

no evento OnDblClick da DbGrid
fazes o create do Form1

Por ex. Form1 := TForm1.create(Application);

e ligas os DBEdits do Form1 ao query do Form2.


Responder

12/05/2003

Ginosam

Aborges, acho que você não me entendeu... não estou usando query,
o programa até aonde eu falei está funcionando sem problemas,
apenas usando um Datasource e uma Table.
Segundo a sua idéia fiz isto, o restante não entendi...
Bem, isto funciona, mas o form1 não mostra o registro selecionado.
mano o que mais devo adicionar aqui?

procedure TForm2.DBGrid1DblClick(Sender: TObject);
begin
Edit1.Text:=´´; {serve para apagar a busca(digitada) que o cara fizer, }
form1.Show; {depois de fechar o form2 é claro!}
form2.Close;
end;

Cara, se você não me entendeu avise que coloco o fonte dos dois Forms
pra ajudar em alguma coisa!
T+


Responder

12/05/2003

Rosivaldo

Declara a Unit2 no cláusula uses do form1, depois é só pegar os DBEdits e apontar o Datasource para o Datasource do form2, vai quebrar teu galho


Responder

12/05/2003

Ginosam

Não, não é isso que eu quero saber! Vamos fazer o seguinte, vou começar a explicar novamente do zero! Vejam este fonte e testem que ele está funcionando direitinho! Coloquei tudo num Form só para exemplificar melhor o seu funcionamento. Agora, se alguém conseguir fazer a pesquisa num outro form, ou seja, clicar num botão do form1 e este abrir um outro form com um edit e um DBgrid e funcionar igual a este exemplo que estou mostrando ponha o fonte aqui também!
Bom aí está :unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Buttons, Mask, DBCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
DBEdit1: TDBEdit;
Label1: TLabel;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
DataSource1: TDataSource;
Table1: TTable;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Table1CampPedidos: TStringField;
Table1CampNome: TStringField;
Table1CampEndereco: TStringField;
Table1CampCidade: TStringField;
Table1CampEstado: TStringField;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBGrid1: TDBGrid;
Edit1: TEdit;
Label6: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure Table1FilterRecord(DataSet: TDataSet; var Accept: Boolean);
procedure FormActivate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
teste: string;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
table1.Insert;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
table1.Edit;
end;

procedure TForm1.BitBtn4Click(Sender: TObject);
begin
table1.Cancel;
end;

procedure TForm1.BitBtn6Click(Sender: TObject);
begin
close;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if Table1.State in [dsEdit,dsInsert] then
begin
Table1.Post;
end;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if Application.MessageBox (´Deseja excluir registro ?´,´Aviso´, mb_YesNo) = IdYes then
begin
Table1.Delete;
end;
end;

procedure TForm1.BitBtn7Click(Sender: TObject);
begin
table1.Prior;
end;

procedure TForm1.BitBtn8Click(Sender: TObject);
begin
table1.Next;
end;

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
teste:= Edit1.Text;
if(pos(uppercase(Edit1.Text),uppercase(Table1campNome.Value))) <> 0 then
accept:=True
else
accept:=False;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
if teste = edit1.Text then
Table1.Filtered:=True
else
Table1.Filtered:=False;

end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
table1.Refresh;
end;

end.


Responder

13/05/2003

Jeancamila

guinosam,

a repostas que os colegas colocaram estão corretas em relação ao que vc pediu.

Basta vc ligar atraves do file/use unit/ ai vc deve escolher a unit do outro form.

agora basta vc conectar o datasource com o datasourece da outra table.

o que quero complementar, é vc utilizar no evento onclick do dbgrid deve ser feito a chama ao outro for!

Jean


Responder

13/05/2003

Jeancamila

so complementando:

quando disse conectar o datasource queria dizer do dbedit ao datasource da table1 do outro form.


Jea


Responder

13/05/2003

Ginosam

Falo, pessoal obrigado a todos!


Responder

13/05/2003

Moisesbenigno

No evento dblclick e, não esqueça de fazer a chamada do form 1.
Espero ter ajudado...


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar