Como vocês vão me ajuda(nossa que confiança) fiz este tutorial pra não ficar "sangue-suga"
Neste artigo que vou fazer agora é meio complicado.
Se você já sabe como criar Function e Procedure fica mais fácil.
Logo quando você inicia um form(formulário) você têm isso em mãos:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Agora vou explicar cada linha:
// Aqui temos a linha em que indica qual arquivo esta salvo
unit Unit1;
// Aqui é onde fica os metodos do botoes e etc
interface
// Aqui são o que o formulario usa
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
// Aqui é onde fica declarado as classes
type
//Aqui cria a classe do nosso formulario
TForm1 = class(TForm)
// Aqui são as funcions/var/proriedades/proc que so podem ser usadas nesse formulario
private
{ Private declarations }
// E aqui a que são vistas em todas OBS: Para usar você precisa colocar por exemplo:
// form1.NOME_DA_FUNCTION
public
{ Public declarations }
end;
// Aqui são as variaveis globais
var
Form1: TForm1;
// E aqui os codigos :/
implementation
// Aqui são os arquivos incluidos, nesse caso, seria o dfm(arquivo onde fica os lugares do componentes).
{$R *.dfm}
end.
semi-globais
Bom espero que você já saibam utilizar function e etc. Agora vamos aprender como usar variáveis semi-globais.
Após public do form1 digite:
public
var_publica: string;
Agora no Form2 clique duas vezes no formulário:
procedure TForm2.FormCreate(Sender: TObject);
begin
form1.var_publica := 'STRING';
end;
Não se esqueçam de adicionar no uses do form2(Em qualquer um deles)
uses
unit1;
Pronto!
USES
Agora vamos falar um pouco sobre uses
As uses são os arquivos que o código usa para compilar.
Após interface há uma. Essa você pode usar em qualquer lugar: Inclusive antes de implementation
Após implementation você pode adicionar outra. Essa somente pode ser utilizada após implementationCLASS
Class são as coisas mais chatas e boas ao mesmo tempo!
Após type você declara as classes. Pode ser de vários jeitos, mas o que eu sei é assim:
type como_esta = (nadando, parado);
Agora no numa procedure qualquer:
procedure TForm1.Button1Click(Sender: TObject);
var
estado_do_meu_irmão: como_esta;
begin
estado_do_meu_irmão := nadando;
if (estado_do_meu_irmão = nadando) then
estado_do_meu_irmão := parado;
end;
Pronto!
PROPERTY
Property são as propriedades do form1, aquelas mesmo, que aparecem na listinha.
Dependendo do lugar em que foi declarada fica igual o uses.
Faça o seguinte no form1:
Após:
public
var_publica: string;
{ Public declarations }
Ai você me pergunta, "Ué, não é a mesma coisa", e é mesmo. Porém.
Agora volte no form1 e após private adicione:
protected
var_texto_protegido: string;
Ficando:
type como_esta = (nadando, parado);
private
{ Private declarations }
protected
var_texto_protegido: string;
public
var_publica: string;
{ Public declarations }
property meu_nome: string read var_texto_protegido write var_texto_protegido;
end;
Agora você já pode modificar variáveis protegidas.
Agora modifique tudo por:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
type como_esta = (nadando, parado);
private
{ Private declarations }
function getVar: String;
procedure setVar(texto: string);
protected
var_texto_protegido: string;
public
var_publica: string;
{ Public declarations }
property meu_nome: string read getVar write setVar;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
estado_do_meu_irmão: como_esta;
begin
estado_do_meu_irmão := nadando;
if (estado_do_meu_irmão = nadando) then
estado_do_meu_irmão := parado;
end;
function TForm1.getVar: String;
begin
Result := var_texto_protegido;
end;
procedure TForm1.setVar(texto: string);
begin
var_texto_protegido := texto;
end;
end.
Acho que irão entender :D
property meu_nome: string read getVar write setVar;
No Read é onde ele irá ler o valor, e no write é onde ele seta. Também podemos colocar mais um(que eu conheço)
property meu_nome: string read getVar write setVar default = 'nada';
Assim teremos como receber algum valor sem mesmo ser "setado"
Agora vamos modifcar a procedure setVar
procedure TForm1.setVar(texto: string);
begin
if (texto <> '') then
var_texto_protegido := texto;
end;
A mesma coisa com o getVar:
if (var_texto_protegido = 'nada') then
Result := ''
else
Result := var_texto_protegido;
Pronto!
Achei um site em ingles a pouco tempo, ta melhor que meu tutorial:
Pergunta
Rento
Como vocês vão me ajuda(nossa que confiança) fiz este tutorial pra não ficar "sangue-suga"
Neste artigo que vou fazer agora é meio complicado.
Se você já sabe como criar Function e Procedure fica mais fácil.
Logo quando você inicia um form(formulário) você têm isso em mãos:
Agora vou explicar cada linha: semi-globais Bom espero que você já saibam utilizar function e etc. Agora vamos aprender como usar variáveis semi-globais. Após public do form1 digite: Agora no Form2 clique duas vezes no formulário: Não se esqueçam de adicionar no uses do form2(Em qualquer um deles) Pronto! USES Agora vamos falar um pouco sobre uses As uses são os arquivos que o código usa para compilar. Após interface há uma. Essa você pode usar em qualquer lugar: Inclusive antes de implementation Após implementation você pode adicionar outra. Essa somente pode ser utilizada após implementation CLASS Class são as coisas mais chatas e boas ao mesmo tempo! Após type você declara as classes. Pode ser de vários jeitos, mas o que eu sei é assim: Agora no numa procedure qualquer: Pronto! PROPERTY Property são as propriedades do form1, aquelas mesmo, que aparecem na listinha. Dependendo do lugar em que foi declarada fica igual o uses. Faça o seguinte no form1: Após: Adicione: Após(no form2): Adicione: Ai você me pergunta, "Ué, não é a mesma coisa", e é mesmo. Porém. Agora volte no form1 e após private adicione: Ficando: Agora você já pode modificar variáveis protegidas. Agora modifique tudo por: Acho que irão entender :D property meu_nome: string read getVar write setVar; No Read é onde ele irá ler o valor, e no write é onde ele seta. Também podemos colocar mais um(que eu conheço) property meu_nome: string read getVar write setVar default = 'nada'; Assim teremos como receber algum valor sem mesmo ser "setado" Agora vamos modifcar a procedure setVar A mesma coisa com o getVar:Pronto!
Achei um site em ingles a pouco tempo, ta melhor que meu tutorial:
http://www.delphibasics.co.uk/Article.asp?Name=OOExample
Editado por RentoLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.