Hola a todos.
Estoy intentando seguir los pasos que me
dice Roman y no consigo pasar un procedimiento por parámetros a otro.
Os explico lo que quiero hacer y me comentáis si veis que estoy haciendo mal.
intento hacer un procedimiento que cree una botonera de TPV pero queme sirva para cualquier tabla.
Código Delphi
[-]procedure TForm1.cargararticulos(Pagina, filas, columnas: Integer;panel : tscrollbox; tabla : tclientdataset;proc : TProcDesconocido);
este procedimiento crea la botonera con el cliendataset que se le pasa ( parámetro “tabla”) en el tscrollbox que se le pasa ( parámetro “panel” ) y quiero asignarle al evento click de cada botón un procedimiento ( parámetro “proc”).
para ello me he creado un tipo “TProcDesconocido” así:
Código Delphi
[-] TProcDesconocido = procedure (SENDER: TObject);
y me he definido el procedimiento “PonClickArticulos”
Código Delphi
[-]procedure PonClickArticulos(Sender: TObject);
que hace lo que yo quiero asignar al evento click y que paso al procedimiento “cargararticulos” en el parámetro “proc”.
Quedaría algo así
Código Delphi
[-]
type
TProcDesconocido = procedure (SENDER: TObject);
…
private
procedure PonClickArticulos(Sender: TObject);
procedure CargarArticulos(Pagina, filas, columnas: Integer;
panel : tscrollbox; tabla : tclientdataset;proc : TProcDesconocido );
…
procedure TForm1.PonClickArticulos(Sender: TObject);
begin
…
End;
procedure TForm1.cargararticulos(Pagina, filas, columnas: Integer;panel : tscrollbox; tabla : tclientdataset;proc : TProcDesconocido);
var
Boton: tspeedbutton;
begin
…
Boton:= TSpeedButton.Create(Self);
Boton.OnClick:= Proc;
end;
…
procedure TForm1.button1Click(Sender: TObject);
begin
…
CargarArticulos(p,f,c,scrollBArticulos,TablaArticulos,PonClickArticulos);
end;
y al compilar me devuelve este error
[DCC Error] principal.pas(218): E2009 Incompatible types: 'method pointer and regular procedure'
alguien me puede decir que estoy haciendo mal...
Un saludo y gracias de antemano.