Passar dados de um campo de um formulário pra outro formulário...
olá pessoal, sou novato aqui e estou precisando muito de ajuda... bom a principio a pergunta que fiz já a tempos que foi respondidas em outros foruns, a questão é que sou iniciante também em delphi, mais sou curioso no assunto, bem vejam só estou desenvolvendo uma aplicação de cadastro de clientes, nessa aplicação será necessário digitalizar varias imagens pra cada cliente, então o que fiz, no banco de dados criei uma tabela pra os dados do cliente e uma tabela para as imagens que forem digitalizadas, no formulário onde insiro os dados dos clientes tipo nome, cpf e etc... coloquei um botão que abre um outro formulário onde posso digitalizar as imagens, bem o que preciso afinal... é que ao clicar no botão conforme a imagem abaixo os dados código e nome do cliente sejam passados pra o formulário de digitalização vejam a imagem abaixo...
[img:descricao=exemplo]http://arquivo.devmedia.com.br/forum/imagem/378260-20140725-032710.png[/img]
pessoal me ajudem...
[img:descricao=exemplo]http://arquivo.devmedia.com.br/forum/imagem/378260-20140725-032710.png[/img]
pessoal me ajudem...
Alexsandro
Curtidas 0
Melhor post
Itamar Souza
25/07/2014
Um exemplo simples:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
RecebeCodigo :String; //vai passar o conteúdo de outro forme
RecebeNome :String;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormActivate(Sender: TObject);
begin
Label1.Caption := RecebeCodigo;
Label2.Caption := RecebeNome;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//formulário que vai enviar os dados
try
Form2 :=TForm2.Create(Application);
Form2.RecebeCodigo := '12213';
Form2.RecebeNome := 'nome';
Form2.ShowModal;
Finally
FreeAndNil(Form2);
end;
end;
end.
GOSTEI 1
Mais Respostas
Alexsandro
25/07/2014
Então pessoal... como posso resolver esse pequeno pro...
GOSTEI 0
Itamar Souza
25/07/2014
Bom dia
Você tem varias formas de fazer isso
Um exemplo: na tela que vai receber as informações, você criar duas variáveis publicas.
public
{ Public declarations }
recebeCodigo :string;
recebeNome :string;
end;
E no onActivate deste formulário você passar o conteúdo delas para os campos que precisa.
No formulário que vai passar a informação você consegue passar as informações para a variável.
Veja se ajuda
Você tem varias formas de fazer isso
Um exemplo: na tela que vai receber as informações, você criar duas variáveis publicas.
public
{ Public declarations }
recebeCodigo :string;
recebeNome :string;
end;
E no onActivate deste formulário você passar o conteúdo delas para os campos que precisa.
No formulário que vai passar a informação você consegue passar as informações para a variável.
Veja se ajuda
GOSTEI 0
Alexsandro
25/07/2014
Opá Itamar!... como disse sou curioso no assunto, mas, não estou sabendo fazer da maneira correta, e já pesquisei em vários foruns eles até dizem como fazer, o problema é que não sei como...
não sei se seria pedir muito, mas teria como disponibilizar um exemplo?
não sei se seria pedir muito, mas teria como disponibilizar um exemplo?
GOSTEI 0
Alexsandro
25/07/2014
Itamar obrigado por responder porém está apresentando algumas falhas no formulário que ira receber do dados... veja as mensagens de erro.
[Error] uPrincipal.pas(255): Unknown directive: 'private'
[Error] uPrincipal.pas(257): Unknown directive: 'public'
[Error] uPrincipal.pas(259): Unknown directive: 'RecebeCodigo'
[Error] uPrincipal.pas(259): Declaration expected but ':' found
[Error] uPrincipal.pas(269): Identifier redeclared: 'TfrmPrincipal.FormActivate'
[Error] uPrincipal.pas(270): Undeclared identifier: 'RecebeCodigo'
[Error] uPrincipal.pas(271): Undeclared identifier: 'RecebeNome'
[Error] uPrincipal.pas(273): '.' expected but ';' found
[Fatal Error] UClientes.pas(82): Could not compile used unit 'C:\Users\alex\Desktop\Exemlo_Scanner\uPrincipal.pas'
o que foi que eu fiz de errado agora! rsrs
[Error] uPrincipal.pas(255): Unknown directive: 'private'
[Error] uPrincipal.pas(257): Unknown directive: 'public'
[Error] uPrincipal.pas(259): Unknown directive: 'RecebeCodigo'
[Error] uPrincipal.pas(259): Declaration expected but ':' found
[Error] uPrincipal.pas(269): Identifier redeclared: 'TfrmPrincipal.FormActivate'
[Error] uPrincipal.pas(270): Undeclared identifier: 'RecebeCodigo'
[Error] uPrincipal.pas(271): Undeclared identifier: 'RecebeNome'
[Error] uPrincipal.pas(273): '.' expected but ';' found
[Fatal Error] UClientes.pas(82): Could not compile used unit 'C:\Users\alex\Desktop\Exemlo_Scanner\uPrincipal.pas'
o que foi que eu fiz de errado agora! rsrs
GOSTEI 0
Alexsandro
25/07/2014
esse é o codigo do formulário que quero que receba os dados
unit uPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, AcquireImage, ClipBrd, Jpeg, FMTBcd, DBXpress, DB,
Buttons, Grids, DBGrids, DBClient, Provider, SqlExpr, DBCtrls, Mask,
Menus;
type
TfrmPrincipal = class(TForm)
aiScanearImagem: TAcquireImage;
sdsDocumentos: TSQLDataSet;
sqlConexao: TSQLConnection;
dspDocumentos: TDataSetProvider;
cdsDocumentos: TClientDataSet;
dtsDocumentos: TDataSource;
DBGrid1: TDBGrid;
sdsDocumentosDESCRICAO: TStringField;
sdsDocumentosNOME_ARQUIVO: TStringField;
cdsDocumentosDESCRICAO: TStringField;
cdsDocumentosNOME_ARQUIVO: TStringField;
dbImagem: TDBImage;
sdsDocumentosDOCUMENTO: TBlobField;
cdsDocumentosDOCUMENTO: TBlobField;
Panel1: TPanel;
Bevel2: TBevel;
Bevel3: TBevel;
btnIncluir: TSpeedButton;
btnAlterar: TSpeedButton;
btnGravar: TSpeedButton;
btnCancelar: TSpeedButton;
btnExcluir: TSpeedButton;
btnSair: TSpeedButton;
DBNavigator1: TDBNavigator;
btnCaptura: TSpeedButton;
GroupBox1: TGroupBox;
dbeDescricao: TDBEdit;
dbeArquivo: TDBEdit;
Label2: TLabel;
Label3: TLabel;
MainMenu1: TMainMenu;
Arquivo1: TMenuItem;
mnuSair1: TMenuItem;
Editar1: TMenuItem;
mnuInserir1: TMenuItem;
mnuAlterar1: TMenuItem;
N1: TMenuItem;
mnuGravar1: TMenuItem;
mnuCancelar1: TMenuItem;
N2: TMenuItem;
mnuExcluir1: TMenuItem;
rdgTipoImagem: TRadioGroup;
Shape1: TShape;
sdsDocumentosCODIGO_CLIENTE: TStringField;
sdsDocumentosIMG_NOMECLIENTE: TStringField;
cdsDocumentosCODIGO_CLIENTE: TStringField;
cdsDocumentosIMG_NOMECLIENTE: TStringField;
Panel2: TPanel;
codigo: TDBEdit;
nome: TDBEdit;
Label1: TLabel;
Label4: TLabel;
procedure aiScanearImagemTwainError(Sender: TObject; state,
error: Integer);
procedure btnCapturaClick(Sender: TObject);
procedure btnIncluirClick(Sender: TObject);
procedure btnAlterarClick(Sender: TObject);
procedure btnGravarClick(Sender: TObject);
procedure btnCancelarClick(Sender: TObject);
procedure btnExcluirClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnSairClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormActivate(Sender: TObject);
private
procedure AtivaDesativaBotoes(AAcao: Char);
end;
var
frmPrincipal : TfrmPrincipal;
implementation
uses UClientes;
{$R *.DFM}
procedure TfrmPrincipal.aiScanearImagemTwainError(Sender: TObject; state,
error: Integer);
begin
raise Exception.Create('Error from state: ' + IntToStr(State)
+ '. Error type: ' + IntToStr(Error));
end;
procedure TfrmPrincipal.btnCapturaClick(Sender: TObject);
var
Jpg : TJpegImage;
Bmp : TBitmap;
Flag : Boolean;
S : string;
begin
Flag := False;
with aiScanearImagem do
begin
if LoadTWainModule then
begin
try
OpenSourceManager;
S := GetSource(false);
SelectSource(S);
OpenSource;
case rdgTipoImagem.ItemIndex of
0: AcquireBmp(Bmp);
1: AcquireJpg(Jpg, 50);
2: AcquireToClipboard;
end;
Flag := True;
finally
CloseTWainSession;
UnloadTWainModule;
end;
end
else
MessageDlg('Erro ao carregar a biblioteca TWAIN_32.DLL', mtError, [mbOk], 0);
end;
if Flag then
case rdgTipoImagem.ItemIndex of
0: dbImagem.Picture.Bitmap := Bmp;
1: dbImagem.Picture.Bitmap.Assign(Jpg);
2: dbImagem.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,
ClipBoard.GetAsHandle(cf_Bitmap), 0);
end;
end;
procedure TfrmPrincipal.btnIncluirClick(Sender: TObject);
begin
cdsDocumentos.Append;
dbeDescricao.SetFocus;
AtivaDesativaBotoes('I');
end;
procedure TfrmPrincipal.AtivaDesativaBotoes(AAcao: Char);
begin
case AAcao of
'I', 'A':
begin
btnIncluir.Enabled := False;
btnAlterar.Enabled := False;
btnGravar.Enabled := True;
btnCancelar.Enabled := True;
btnExcluir.Enabled := False;
btnSair.Enabled := False;
btnCaptura.Enabled := True;
mnuSair1.Enabled := False;
mnuInserir1.Enabled := False;
mnuAlterar1.Enabled := False;
mnuGravar1.Enabled := True;
mnuCancelar1.Enabled := True;
end;
'G', 'C':
begin
btnIncluir.Enabled := True;
btnAlterar.Enabled := True;
btnGravar.Enabled := False;
btnCancelar.Enabled := False;
btnExcluir.Enabled := True;
btnSair.Enabled := True;
btnCaptura.Enabled := False;
mnuSair1.Enabled := True;
mnuInserir1.Enabled := True;
mnuAlterar1.Enabled := True;
mnuGravar1.Enabled := False;
mnuCancelar1.Enabled := False;
end;
end;
end;
procedure TfrmPrincipal.btnAlterarClick(Sender: TObject);
begin
if cdsDocumentos.IsEmpty then
Exit;
cdsDocumentos.Edit;
dbeDescricao.SetFocus;
AtivaDesativaBotoes('A');
end;
procedure TfrmPrincipal.btnGravarClick(Sender: TObject);
begin
with cdsDocumentos do
begin
if Trim(FieldByName('NOME_ARQUIVO').AsString) <> '' then
begin
cdsDocumentos.Post;
cdsDocumentos.ApplyUpdates(0);
sqlConexao.CloseDataSets;
AtivaDesativaBotoes('G');
end
else
begin
MessageDlg('O campo "Nome do Arquivo" é de preenchimento obrigatório.', mtError, [mbOk], 0);
dbeArquivo.SetFocus;
end;
end;
end;
procedure TfrmPrincipal.btnCancelarClick(Sender: TObject);
begin
cdsDocumentos.Cancel;
AtivaDesativaBotoes('C');
end;
procedure TfrmPrincipal.btnExcluirClick(Sender: TObject);
begin
if cdsDocumentos.IsEmpty then
Exit;
if MessageDlg('Confirma exclusão do documento selecionado?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
cdsDocumentos.Delete;
cdsDocumentos.ApplyUpdates(0);
end;
end;
procedure TfrmPrincipal.FormShow(Sender: TObject);
begin
sqlConexao.Connected := True;
cdsDocumentos.Open;
cdsDocumentos.First;
end;
procedure TfrmPrincipal.btnSairClick(Sender: TObject);
begin
Close;
end;
procedure TfrmPrincipal.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
cdsDocumentos.Close;
sqlConexao.Connected := False;
end;
procedure TfrmPrincipal.FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
RecebeCodigo:String; //vai passar o conteúdo de outro forme
RecebeNome:String;
end;
var recebe:TfrmPrincipal;
procedure TfrmPrincipal.FormActivate(Sender: TObject);
codigo := RecebeCodigo;
nome := RecebeNome;
end;
end.
GOSTEI 0
Alexsandro
25/07/2014
Itamar , cara muito obrigado, depois de apanhar muito aqui consegui graças a essa sua explicação... cara valeu mesmo... agora posso dormir pois estava perdendo o sono... rsrs
GOSTEI 0