PDA

Ver la Versión Completa : eventos de PageControl creado en tiempo de ejecucion


kaozz
16-07-2007, 22:23:24
Que tal foro:

He creado en tiempo de ejecución un page control y sus correspondientes TabSheets, lo que no se, es como hacer que cuando el usuario cambie de TabSheet ejecute una serie de instrucciones, si el objeto lo creo en tiempo de diseño no tengo problema, solo programo el evento OnChange del TPageControl, la pregunta es como lo hago cuando el TPageControl fue creado en tiempo de ejecución.

Gracias

adfa76
16-07-2007, 22:35:49
Algo así.

procedure manejadorOnchage(sender: TObject)
begin
//lo que quieras hacer
end;

procedure crearLaPagina;
var
pagina : TPageControl;
begin
pagina := TPageControl.Create;
pagina.onChange := manejadorOnchage;
end;

dec
16-07-2007, 23:12:07
Hola,

Bueno, no quiero yo enmendar la plana a nadie (dios me libre), sino que, me parece que hay algo en el código del compañero que tal vez pueda inducir a error, y es lo siguiente.

Como manejador del evento de un objeto necesitamos un método, es decir, un procedimiento o función que se encuentre declarado como miembro de una determinada clase.

Entonces podríamos asumir que los anteriores procedimientos que escribe el compañero pueden formar parte de una supuesta clase "TForm":


procedure TForm1.manejadorOnchage(sender: TObject)
begin
//lo que quieras hacer
end;

procedure TForm1.crearLaPagina;
var
pagina : TPageControl;
begin
pagina := TPageControl.Create;
pagina.onChange := manejadorOnchage;
end;


Perdonadme si es una tontería... lo cierto es que tampoco nadie me ha preguntado nada... ¡pero ya está!

kaozz
16-07-2007, 23:39:12
Gracias a adfa76 y dec por su pronta respuesta, en este momento lo voy a checar y les informo del resultado.


Saludos desde Pachuca, Hidalgo, México

kaozz
16-07-2007, 23:59:56
Nuevamente gracias:

Ya cheque la colución y quedo como el buen dec dice.



Hasta la proxima.....duda :D.

adfa76
17-07-2007, 15:02:10
Si dec, tienes toda la razón. Lo escribi sin el ide a mano y apurado.
Me falto poner la clase antes.
Mis disculpas si induje algun error.

Saludos