Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Anidar eventos (https://www.clubdelphi.com/foros/showthread.php?t=67111)

ioco 30-03-2010 00:45:34

Anidar eventos
 
Saludos de nuevo :)

Estoy buscando info sobre una cosa que se me ocurrió probar y no encuentro nada que me aclare. ¿Se pueden "anidar" eventos?

Por ejemplo, lo que estaba probando de hacer es:

Código Delphi [-]
procedure TForm1.BotonSumarClick(Sender: TObject);
begin
  Form1.ListaId.OnSelectionChange({sender:TObject},{user:boolean}); //ListaId es una TListBox 
  //Aquí vendrían las instrucciones a ejecutar cuando se realizara alguna selección
end;

Donde al clickar un botón, la intención es que espere al evento OnSelectionChange de una listbox que hay en el mismo form para ejecutar alguna instrucción posterior.

En mi ejemplo la idea para probar cómo funciona era tener la listbox con números y, que al clickar el botón, espere 2 cambios de selección y una vez realizados mostrara con un dialog el resultado. Pero para declarar las variables y todo eso primero quería probar que funcionara lo de esperar al primer OnSelecctionChange jeje.

Otra cosa que quería comentar es si álguien me pudiera comentar dónde puedo ver los parámetros que piden los eventos y qué significan ya que en este caso concreto, éstos los saqué de insertar el evento mediante el inspector de objetos pero sigo sin saber qué es el user (y el sender he visto ejemplos via google de cómo usarlo que tengo que revisar más a fondo a ver si llego a alguna conclusión).

Crandel 30-03-2010 01:52:45

Plantealo de esta forma:
* El evento onClick del botón Suma te permite seleccionar la operación a realizar
* Luego en OnSelectionChange realizas la operación con los dos elementos seleccionados.

ioco 30-03-2010 02:10:06

Algo así es lo que se me había ocurrido utilizando una variable global que hiciera de intermediaria, pero me preguntaba si se podría hacer de algún otro modo ^^

He visto que en VB.net se puede hacer (aunque en la página solo dicen que se puede y ya está) así que esperaba que en OPascal también se pudiera llamar a un evento dentro de otro, pero me pondré con lo de los eventos por separado de momento que al menos me servirá de práctica:D

Crandel 30-03-2010 11:49:51

Otra forma mas simple es en vez de usar botones normales usar SpeedButton. Entonces verificas cual tiene la propiedad Down activada.


La franja horaria es GMT +2. Ahora son las 02:18:23.

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