Ir para conteúdo
Fórum Script Brasil
  • 0

Procedimento...


plikts

Pergunta

oi!!!

Eu tenho uma dúvida (entre as nilhares, tongue.gif ), um procedimento é considerado aki:

...
type
  TForm1 = class(TForm)
    Edt1: TEdit;
   procedure BtnFecharClick(Sender: TObject);
    procedure BtnLimparClick(Sender: TObject);
ou aki:
procedure TForm1.BtnAdiClick(Sender: TObject);
begin
Valor1:=StrToFloat(Edt1.Text);
Valor2:=StrToFloat(Edt2.Text);
Edt3.Text:=FloatToStr(Valor1+Valor2);
Storage:=StrToFloat(Edt3.Text);
end;

ou este últimko seria a implementação do código no procedimento??

obrigado!

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

valeu..agora tenho outra pergunta...no livro q eu tenho esta escrito isso:

"No Code Explorer observamos o nome da procedure, identificando qual o objeto e o evento que dará início à execução do código, e onde está localizado este objeto.O parâmetro SENDER informa ao Delphi qual componente recebeu o evento que chamou a execução deste procedimento"

TFrm.BtnIniciarClick(Sender:TObject)

eu não entendi a parte q diz: "O parâmetro SENDER informa ao Delphi qual componente recebeu o evento que chamou a execução deste procedimento"

preciso de ajuda!!

obrigado!

Link para o comentário
Compartilhar em outros sites

  • 0

"Sender" ou "remetente" é justamente uma referência ao objeto cujo evento chamou esse procedimento. Se você colocar dois botões no form e definir o evento OnClick de *ambos* para o *mesmo* procedimento, e colocar o código abaixo no procedimento...

  showmessage((Sender as TButton).Name);

... você verá que o código é um só, porém ao clicar no primeiro botão ele mostrará o nome do primeiro botão (Button1, se você não mudar); e, ao clicar no segundo botão, ele mostrará o nome do segundo botão (Button2, se você não mudar). Ambos estarão chamando o mesmo procedimento, porém o argumento Sender será definido para aquele que chamou (ora o botão 1, ora o botão 2). Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Saquei.... wink.gif

agora outra pergunta aproveitando...

qual o sentido de se colocar uma variável aki :

TFrm.BtnIniciarClick(Var  OI:Integer Sender:TObject)
outro exemplo
 procedure DefaultHandler(var Message)

Sei q existem variáveis a nível de projeto, de Unit e de Procedimento (são "destruídas" logo depois de seu uso).. mas e nesse caso serve para q??

obrigado!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Olá,

Sei q existem variáveis a nível de projeto, de Unit e de Procedimento (são "destruídas" logo depois de seu uso).. mas e nesse caso serve para q??

Esse VAR na frente da variável, significa que essa variável vai retornar algo. Pode ser inteiro, string, boolean ... Depende do tipo que ela é...

Abs.

Kiko

Link para o comentário
Compartilhar em outros sites

  • 0
desculpa mas não entendi muito bem, essa variável não é para armazenar dados??

Sim, ela armazena, porém ela é passada por referência. Isso significa que se o valor dela for alterado dentro da função, essa alteração se refletirá também fora da função. Imagine uma procedure assim:

procedure Incrementa(n : integer);
begin
  n := n+1;
end;
Se você fizer (considere 'a' como um inteiro)...
a := 2;
Incrementa(a);
ShowMessage(inttostr(a));
... verá que o valor de 'a' permanece 2. Isso porque nesse caso o parâmetro é passado por valor. Isso significa que é feita uma cópia do 2 (valor de 'a') em 'n' no momento em que a função é chamada. Já se a procedure fosse:
procedure Incrementa(var n : integer);
begin
  n := n+1;
end;

E você fizesse o mesmo teste acima, veria que 'a' teve seu valor mudado. Isso porque ao invés de se fazer uma cópia do valor de 'a' em 'n', 'n' seria uma referência à 'a' (ou seja, tudo que acontecer com 'n' acontecerá com 'a', pois ambos apontam para a mesma posição em memória). É para isso que serve aquele Var ali. Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
desculpa mas não entendi muito bem...

tem como dar um exemplo funcional??? não consegui fazer algo com isso....

Na minha opinião, aquele dali já é um exemplo funcional... rolleyes.gif Bom, talvez você não tenha conseguido é implementá-lo, então segue um exemplo pronto: http://www.graymalkin.globalhosts.com.br/stuff/Var.zip

Descompacte e abra o projeto, execute-o e veja o que ocorre em cada um dos botões. Depois, leia novamente o tópico.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...