Lo que sucede es que una instancia de TProcDesconocido debe ser un procedimiento independiente o desconocido, que no forme parte de ninguna clase u objeto. Tú estás pasando lo que se conoce como "Procedure of Object", un procedimiento de objeto. Es por eso del error de "Tipos incompatibles".
PonClickArticulos al ser parte de la clase
TForm1 viene a ser un
Procedure of Object. Para que tu código compile mejor utiliza la clase
TNotifyEvent (Ya definida por Delphi por su popularidad) en el parámetro
proc del procedimiento
CargarArticulos.:
Código Delphi
[-]
…
private
procedure PonClickArticulos(Sender: TObject);
procedure CargarArticulos(Pagina, filas, columnas: Integer;
panel : tscrollbox; tabla : tclientdataset;proc: TNotifyEvent );
…
procedure TForm1.PonClickArticulos(Sender: TObject);
begin
…
End;
procedure TForm1.cargararticulos(Pagina, filas, columnas: Integer;panel : tscrollbox; tabla : tclientdataset;proc: TNotifyEvent);
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;