Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tetzner

[Resolvido] omo devo declarar/chamar a Função da Unit1 e usá-la t

Recommended Posts

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

É 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

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

é 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

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

é 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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.