Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   relacionar un procedimiento con un evento de un objeto (https://www.clubdelphi.com/foros/showthread.php?t=26372)

aranel 20-10-2005 18:16:29

relacionar un procedimiento con un evento de un objeto
 
Hola, aquí estoy otra vez :$ Mi problema es que en mi editor (el que estoy creando) tiene diferentes pestañas con unTMemo en cada una de ellas, pero necesito saber la linea actual en la que estoy, entonces defino el evento OnKeyDown, para qu eme diga cada vez que se pulsa un tecla en que línea estoy. Pero claro, eso lo puedo hacer para un objeto concreto de la clase TMemo,pero ese evento no está definido en los nuevos Memos que voy creando conforme se van abriendo pestañas.

Se me ha ocurrido crearme una clase, que contenga un objeto memo, al que le defino dicho evento, entonces para cada pestaña nueva me creo una instancia de esta clase. Mi problema entonces es que no se como asociarle el procedimiento que me creo para que me diga la linea actual, con el evento del objeto TMemo instanciado en esa clase. Yo lo de asociar un procedimiento con un evento siempre lo he hecho a través de la interfaz grafica, pero en este caso eso no me es posible porque esa clase no es un formulario, sino que hereda de TObject.

Aunque, no lo sé, pero puede que quizás haya otra foma más sencilla de hacerlo.

dec 20-10-2005 18:28:31

Hola,

Como otras formas de hacerlo, puede que sí, que estas existan. En todo caso, para lo que te ocupa, puedes definir un método en tu clase que sirva para el evento "OnKeyDown", siendo así que podrías asignar dicho método al evento en cuestión, algo más o menos así:

Código Delphi [-]
 type
   TMiClase = class(TObject)
   private
     {...}
     procedure EventoOnKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
     {...}
   end;
Por supuesto habrías de implementar ese método, pero, puesto que los parámetros coinciden con los que son precisos para responder al evento en cuestión, no tendrías problemas para asignar el método a eventos del tipo "TKeyEvent", es decir, por ejemplo, el "OnkeyDown" de un "TMemo".

roman 20-10-2005 18:34:34

Realmente no entiendo qué relación hay entre obtener la línea actual en un memo y el evento OnKeyDown. Pienso que te estás complicando de más.

// Saludos

luisgutierrezb 20-10-2005 21:50:36

puedes utilizar un mismo evento para todos los memo, simplemente usas:

memo2.onkeyDown := nombreprocedimientokeydownmemo1;

y listo.. usas uno para todos, igual puedes buscar informacion acerca de un manejador de eventos para varios controles..


La franja horaria es GMT +2. Ahora son las 02:45:52.

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