Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Punteros de Metodos (https://www.clubdelphi.com/foros/showthread.php?t=74923)

Paulao 18-07-2011 20:15:28

Punteros de Metodos
 
Que son, para que sirve y como si utiliza los Punteros de Metodos?
Ex:
Código Delphi [-]
TNotifyEvent = Procedure(Doc: TTipoClass) of Object;

ecfisa 19-07-2011 01:53:29

Hola Paulao.

El puntero a método es similar a un puntero a función o procedimiento con la diferencia que el puntero a método almacena el objeto sobre el que se aplica y la dirección de memoria del código del procedimiento o función asociado.

Un puntero a función o procedimiento es declarado:
Código Delphi [-]
type
  TFunciónPtr = procedure(Value: Integer);

Un puntero a método se declara:
Código Delphi [-]
type
  TNotifyEvent =  procedure(Sender: TObject) of object;

Un ejemplo del uso de puntero a método:
Código Delphi [-]
...
procedure TForm1.Edit1Click(Sender: TObject);
begin
  ShowMessage('Edit1Click');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Metodo: TMethod;
  Event: TNotifyEvent;
begin
  Metodo.Data:= Self;                        // objeto
  Metodo.Code:= MethodAddress('Edit1Click'); // código
  Event:= TNotifyEvent(Metodo);
  Event(Sender);                     
end;
...

Un saludo.


La franja horaria es GMT +2. Ahora son las 15:44:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi