Ir para conteúdo

POWERED BY:

Arquivado

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

Plom

Função em Delphi

Recommended Posts

Olá, gostaria de saber como faço para criar um método em delphi.. para que possa "chama-lo" em qualquer parte do código e não precisar digitar sempre o mesmo código em diversos buttons por exemplo..

 

Tipo em java quando se faz:

 

static void Exemplo {

System.out.println ("Testando");

}

 

e depois chama o método:

 

Exemplo;

 

tpo assim! é possivel??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Plom.

 

Dentro do Delphi, a princípio, todos os métodos quando não acrescidos das cláusulas "Virtual" ou "Dynamic" ao final de sua assinatura, são considerados estáticos, ou seja, o Delphi permite utilizar todos os métodos que não são Virtual ou Dynamic, sem precisar instanciar os Objetos.

 

Tal qual o Java, o Delphi é fortemente tipado, ou seja, voce precisa declarar variáveis e métodos antes de usá-lo. Só que existe um enorme diferença, eis que a linguagem Object Pascal que o Delphi usa, tem uma lógica de escrita na programação quase parecida com o COBOL, ou seja, voce tem que declarar as classes, variáveis e métodos antes em uma seção chamada Interface e depois implementar os métodos e usar as váriáveis e classes na seção Implementation. A Unidade (Unit) é um arquivo *.pas que é definida inicialmente assim:

 

unit MeuProjeto;

interface

{ Aqui voce declara primeiro as classes, variáveis e métodos }

implementation

{ Aqui voce implementa as classes, variáveis e métodos } 

end.

Voce pode criar métodos a saber:

 

1º) Procedure: São métodos que não retornam nada, como se fosse Void no Java.

 

2º) Function: São métodos que retornam valores.

 

Como voce quer usar um método globalmente, toda variável ou método declarado antes de implementation, e fora do corpo das classes, ficam visíveis em todo o projeto, assim:

 

unit Unit2;

interface

uses   // Como se fosse a cláusula Import e abaixo os nomes das Units
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

// Definição de classe, como se fosse public class TForm2 extends TForm no Java
type
TForm2 = class(TForm)  
private
{ Private declarations }
public
{ Public declarations }
end;

// Aqui voce declara as suas variáveis com a cláusula var e ou métodos que ficarão visíveis em todo projeto (global), assim:
var
Form2: TForm2; variável tipo Objeto

procedure Incluir;   // método Void sem parâmetro

procedure Mensagem(Mens: String; Flags: Boolean); // método Void com 2 parâmetros

function AtivarBtns: Boolean; // método que retorna valor booleano sem parâmetros;

function AtivarBtns(Ativo: Boolean): Boolean; // método que recebe parâmetro booleano e retorna outro valor booleano.

implementation

{$R *.dfm}

procedure Incluir:
begin
  ....
  ....
end;

procedure Mensagem(Mens: String; Flags: Boolean);
begin
  ....
  ....  
end;

function AtivarBtns: Boolean;
begin
  ...
  ...
end;

function AtivarBtns(Ativo: Boolean): Boolean;
begin
   ...
   ...
end;

end.

Se voce pretende criar várias variáveis e métodos globalmente, então eu sugiro que voce crie uma Unit somente para isso, com o nome Unit Biblioteca, e depois é só declarar essa Unit Biblioteca na seção Uses de cada Unit de um Classe Formulário.

 

Como criar essa Unit ? Vá no menu File -> New -> Unit e pronto.

 

Nunca esquecer que os blocos de Instruções que no Java são as chaves "{ }", no Delphi são as cláusulas "Begin....End"

 

Se voce declarar variáveis dentro dos blocos Private e Public do escopo da classe, então dentro de Implementation, voce terá que digitar o nome da classe primeiro seguido de um ponto e logo em seguida a asssinatura do método, como eles podem ser estáticos, o objeto da classe não precisa estar instanciado, entretanto os métodos declarados em Private só ficará visíveis dentro da própria Unit onde a classe é declarada, enquanto que em Public, ele fica visível em outras Units, desde que voce o declare a Unit que contém o método da classe, na Seção Uses (Import do Java) da Unit que voce vai utilizar o método.

 

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Plom.

 

De nada.

 

Só que esqueci de te informar mais um pequeno detalhe.

 

Voce pode também declarar variáveis dentro do escopo das implementações dos métodos, sendo que essas variáveis só ficarão visíveis dentro do método, e elas tem que ser declaradas entre a assinatura do método e a cláusula Begin, assim:

 

function AtivarBtns(Ativo: Boolean): Boolean;

var

btn: TButton; // variável tipo objeto Button.

Flag: Integer;

AlgumaCoisa: String;

begin

...

...

end;

um abraço;

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.