Plom 1 Denunciar post Postado Julho 4, 2008 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
Discorpio 1 Denunciar post Postado Julho 6, 2008 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
Plom 1 Denunciar post Postado Julho 7, 2008 Muito Obrigado, Discorpio!! Me ajudou muito! Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Discorpio 1 Denunciar post Postado Julho 8, 2008 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