Hola,
Cita:
|
Empezado por Sotrono
Estoy haciendo una aplicacion sin form (programo en el dpr) y hasta ahora me encontre con 2 problemas que no puedo solucionar:
|
¿Quieres decir que estás haciendo una aplicación de tipo consola?
Cita:
|
Empezado por Sotrono
1) Como creo un objeto? En una aplicacion con form tengo que poner
Código Delphi [-]
NombreObjeto:= NombeClase.Create(self);
Pero sin el Form no se puede usar "self".
|
Puedes crearlo sin referencia, o sea con una refencia "nula", tal como te plantea
Lepe arriba. Luego no debes olvidarte de destruir el objeto en cuestión: puesto que tú te haces cargo del mismo.
Cita:
|
Empezado por Sotrono
2) Como y donde tengo que declarar los procedimientos para los eventos.
|
A ver, tenemos que aclarar qué quiere decirse por "procedimientos para los eventos". ¿Te refieres a que el objeto tiene ciertos eventos publicados? ¿Te refieres a que el objeto cuente con uno o más métodos que puedan asociarse a un evento, digamos, de otro objeto?
Como creo que es a esto último a lo que te refieres, piensa en declarar e implementar en tu objeto un método que cuente con los parámetros apropiados para el evento al cual piensas asociarlo. Ambos, evento y método han de tener exactamente los mismos parámetros y en el mismo orden.
Supón que creamos un objeto que cuente con un método que podamos luego asociar a un evento sencillo (con un solo parámetro), como pudiera ser el "Click" de un botón. Para ello no tenemos que crear un tipo de evento, cosa que podemos hacer, sino que nos valdrá con "TNotifyEvent", que, habrás visto alguna vez.
El tipo "TNotifyEvent" se declara como sigue:
Código Delphi
[-]
type
TNotifyEvent = procedure(Sender: TObject) of object;
Así que nosotros tenemos que preparar en nuestro objeto un método (un procedimiento, que es método por pertenecer a nuestro objeto, y así tiene que ser, como puedes ver por "of Object") capaz de trabajar con el evento "TNotifyEvent".
Código Delphi
[-]
type
TNuestroObjeto = class
private
procedure MetodoParaEvento(Sender: TObject);
end;
procedure TNuestroObjeto.MetodoParaEvento(Sender: TObject);
begin
end;
Una vez creado nuestro objeto podremos disponer de una instancia del mismo y asociar a cualquier evento de tipo "TNotifyEvent" nuestro "MetodoParaEvento". ¿Y si necesitas crear tu propio evento? Pues declaras un tipo tal que "TNofyEvent", de este modo, por ejemplo:
Código Delphi
[-]
type
TUnEvento = procedure (Sender: TObject; mensaje: string) of Object;
Y el objeto podría quedar así para contar con un método capaz de asociarse con "TUnEvento":
Código Delphi
[-]
type
TNuestroObjeto = class
private
procedure MetodoParaMiEvento(Sender: TObject; mensaje: string);
end;
procedure TNuestroObjeto.MetodoParaMiEvento(Sender: TObject; mensaje: string);
begin
end;