Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 21-06-2008
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 24
David Va por buen camino
Bueno he seguido investigando y me he encontrado con un problema.

supongamos esto :

Código Delphi [-]
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, dxCntner, dxEditor, dxExEdtr, dxEdLib, Spin;

type
  TForm1 = class(TForm)
    cbFunciones: TComboBox;
    btnAdd: TButton;
    btnEjecutar: TButton;
    spin: TSpinEdit;
    ListBox1: TListBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure btnAddClick(Sender: TObject);
    procedure btnEjecutarClick(Sender: TObject);
  private
    { Private declarations }
  public
    funciones : array of procedure of object;
    metodos : array of array[0..3] of String;
    procedure funcion1(nombre:String);
    procedure funcion2(valor,nombre:String);
    procedure funcion3;
    procedure funcion4(nombre,valor,arg:String);
    procedure funcion5;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnAddClick(Sender: TObject);
begin
  if cbFunciones.Text <> '' then
  begin
    SetLength(metodos,spin.Value+1);
    metodos[spin.Value][0] := cbFunciones.Text;
    metodos[spin.Value][1] := edit1.Text;
    metodos[spin.Value][2] := edit2.Text;
    metodos[spin.Value][3] := edit3.Text;
    spin.Value := spin.Value + 1;
    btnEjecutar.Enabled := true;
    listBox1.Items.Add(cbFunciones.Text);
  end;
end;

procedure TForm1.btnEjecutarClick(Sender: TObject);
var
 i : integer;
begin
  cbFunciones.Enabled := false;

  btnEjecutar.Enabled := false;
  for i:= 0 to high(metodos) do
  begin
    SetLength(funciones,i+1);
   if metodos[i][0] = 'funcion1' then
      funciones[i] := funcion1(metodos[i][1]); //Aquí da error
    if metodos[i][0] = 'funcion2' then
      funciones[i] := funcion2(metodos[i][1],metodos[i][2]); // Aquí tb da Error
    if metodos[i][0] = 'funcion3' then
      funciones[i] := funcion3;
    if metodos[i][0] = 'funcion4' then
      funciones[i] := funcion4(metodos[i][1],metodos[i][2],metodos[i][3]); // Aquí da error
    if metodos[i][0] = 'funcion5' then
      funciones[i] := funcion5;
  end;

  for i:= 0 to high(funciones) do
  begin
    funciones[i];
    application.ProcessMessages;

    spin.Value := spin.Value - 1;

    if i <> high(funciones) then
      sleep(6000);
  end;

  funciones := nil;
  metodos := nil;
  btnAdd.Enabled := true;
  ListBox1.Clear;
  cbFunciones.Enabled := true;
end;

procedure TForm1.funcion1(nombre:String);
begin
  ShowMessage('Ejecutando la función 1:'+nombre);
end;

procedure TForm1.funcion2(valor,nombre:String);
begin
  ShowMessage('Ejecutando la función 2'+valor+' '+nombre);
end;

procedure TForm1.funcion3;
begin
  ShowMessage('Ejecutando la función 3');
end;

procedure TForm1.funcion4(nombre,valor,arg:String);
begin
  ShowMessage('Ejecutando la función 4'+nombre+' '+valor+' '+arg);
end;

procedure TForm1.funcion5;
begin
  ShowMessage('Ejecutando la función 5');
end;

end.

En todos los puntos donde le he pasado un argumento me da este error:

Incompatible types: 'Procedure of object' and 'procedure, untyped pointer or untyped parameter'
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Puede Delphi ejecutar procedures no compiladas sysmar Varios 3 26-03-2008 17:13:02
Hacer un insert o un update en un campo array David Firebird e Interbase 4 27-04-2007 19:14:13
Se puede hacer un multi FTP? JuanErasmo Internet 4 08-11-2006 16:38:09
Se puede hacer esto ??????? AMINOA2R Firebird e Interbase 2 21-10-2005 17:50:59
se puede hacer armando Conexión con bases de datos 6 20-05-2004 05:12:26


La franja horaria es GMT +2. Ahora son las 20:08:27.


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