terça-feira, 3 de agosto de 2010

Trabalhando com métodos comparando delphi com java.

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
typeTForm2 = 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.


Nenhum comentário:

Postar um comentário