Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   llamar a procedure desde otra procedure (https://www.clubdelphi.com/foros/showthread.php?t=42866)

rgstuamigo 04-03-2010 16:22:45

El problema que veo que tienes es que no has entendido el concepto de Programacion Orientado a Objeto, en éste caso si tienes un Procedure y/o funcion que esta declarado e implementado dentro de una clase, pues la única forma de llamar a tal método es instanciando un objeto de dicha clase ;) , a no ser :rolleyes: que lo declares como método clase(Class methods) .;) ,por ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var MiObjeto:MiClase;
begin
   MiObjeto:=MiClase.Create;//<-- creo un objeto de tipo "MiClase" ;)
   MiObjeto.Hola;// Ahora ya puedo llamar al método Hola
   MiObjeto.Free;{<--Siempre despues de usar un objeto hay que liberarlo
                 es decir liberar la memoria cuando ya no se va usar mas dicho objeto}
end;

Saludos...:)

CarlosHernandez 04-03-2010 16:49:21

gracias roman y rgstuamigo por ese aporte, ya me funciona perfecto

rgstuamigo 04-03-2010 17:25:00

Viendo un poco lo que pretendías hacer con éste códico >
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 MiClase.hola;
end;
y explicando un poco sobre los métodos de clase (Class methods) que te mencioné en mi anterior post , pues se puede lograr que tu anterior código funcione, tan solo deberias declarar al metodo "hola" como método de clase de ésta forma:
Código Delphi [-]
...
type
  MiClase = Class
  private
    { Aqui se pone todas las declaraciones privadas }
  public
    { Aqui se pone todas las declaraciones públicas }
    class procedure Hola();//este método es un método de clase
  end;
....
Bueno ..desde luego que la implementación del método "hola" tambien debe llevar la palabra reservada "class">
Código Delphi [-]
...
class procedure TMiClase.Hola;
begin
ShowMessage('Hola');
end;
...
En otros lenguajes de programacion como por ejemplo Java o C++ ésto se llama métodos estáticos(static).
Ésto significa que ya no necesito tener un objeto creado(instanciado) de la clase para poder llamar al método "hola", lo puedo hacer directamente atraves de la clase tal como tú lo hiciste , es decir asi:
Código Delphi [-]
...
MiClase.hola;//Ahora si puedo llamar al procedure "Hola" por que es un método de clase. ;)
...
Para más informacion sobre los método de clases ver la ayuda de Delphi presionando la tecla F1. ;)
Saludos...:)

CarlosHernandez 04-03-2010 18:44:37

tambie lo probe y funciona perfecto


La franja horaria es GMT +2. Ahora son las 02:49:35.

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