tetzner 0 Denunciar post Postado Janeiro 10, 2008 Ola, Tenho um projeto com 2 forms ( 2 unit´s ) numa unit tenho uma funcao que gostaria de chamar nos dois .pas como devo declarar/chamar a Função da Unit1 e usá-la tb na Unit 2 ? Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Janeiro 10, 2008 É realmente uma funão ou seria uma procedure, coloque a forma como ela esta declarada aí, para vermos o tipo que ela é. Assim facilita saber o tipo de componentes que ela utilizará e como chamá-la. abs Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Janeiro 10, 2008 Ela precisa estar declarada no public da unit, depois na outra unit basta chamar a mesma fazendo: form1.MinhaFuncao(); Caso o form1 ainda não esteja adicionado no uses do form2 ele vai pedir para adicionar, bastando confirmar. Compartilhar este post Link para o post Compartilhar em outros sites
tetzner 0 Denunciar post Postado Janeiro 10, 2008 é uma função mesmo na unit 1 ela está declarada normalmente e é utilizada mas na unit1 2 eu não consigo chamá-la como declaro ela para uso global ? interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) function A (Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; function a ( valor : integer ) : String; Begin if a > 5 then showmessage( 'maior') else showmessage( 'menor ou igual '); End; begin ... end; Compartilhar este post Link para o post Compartilhar em outros sites
Aprendizporumavida 0 Denunciar post Postado Janeiro 10, 2008 private { Private declarations } public { Public declarations } end; var form1: Tform1; implementation uses aqui você tem que por o nome do formulário onde a função está localizada, se achar mais fácil é só teclar alt+f11, e selecionar o formulário e clicar em ok. Feito isto você pode chamála assim NomedaFunção(NomedoFormulárioondeelafoicriada) Qualquer dúvida poste aí. espero ter ajudado. abs Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Janeiro 10, 2008 é uma função mesmo na unit 1 ela está declarada normalmente e é utilizada mas na unit1 2 eu não consigo chamá-la como declaro ela para uso global ? interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) function A (Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; function a ( valor : integer ) : String; Begin if a > 5 then showmessage( 'maior') else showmessage( 'menor ou igual '); End; begin ... end; para uso global vai precisar mudar um pouco, ficando: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } function a ( valor : integer ) : String; end; var Form1: TForm1; implementation {$R *.dfm} function TForm1.a ( valor : integer ) : String; Begin if valor > 5 then showmessage( 'maior') else showmessage( 'menor ou igual '); End; { TForm1 } end. No form2 basta fazer: Form1.a(numero_desejado); Sua função tinha um pequeno erro de lógica... ele fazia... if a > 5 then e o certo é: if valor > 5 then Compartilhar este post Link para o post Compartilhar em outros sites
tetzner 0 Denunciar post Postado Janeiro 10, 2008 eu digitei correndo aqui, não tenho o codigo original rs mas muitissimo obrigado. vou testar em casa vlw! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Janeiro 10, 2008 beleza... sem problemas :D precisando volte a postar :P Compartilhar este post Link para o post Compartilhar em outros sites