Ver Mensaje Individual
  #10  
Antiguo 27-03-2014
belpab belpab is offline
Miembro
 
Registrado: sep 2007
Posts: 47
Reputación: 0
belpab Va por buen camino
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);
beginEnd;

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.

Última edición por ecfisa fecha: 28-03-2014 a las 03:11:48. Razón: corregir etiquetas [delphi] (WYSIWYG)
Responder Con Cita