FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Te sugiero que no uses el evento OnChange, sino el evento OnChanging, que se ejecuta inmediatamente antes del que usas; con ésto, te aseguro que tendrás el control del componente tal como lo requieres.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively... "Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum. Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco |
#2
|
||||
|
||||
Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
No se si te será más fácil traducir esto:
Se trata de definir una clase nueva que deriva de TPageControl y define esa propiedad con los 2 métodos. Si revisas cualquier clase creada en Builder se trata de hacerla igual. Y luego en lugar de llamar a:;
utilizas:
AÑADO: Veo que Román se ha adelantado. He de decir que yo tampoco se si este truco funcionará en Builder, pero es fácil que lo compruebas. Yo tampoco tengo conocimientos de Builder así que no te puedo ayudar a "traducirlo".
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 12-01-2012 a las 17:30:25. |
#4
|
||||
|
||||
Hola.
Otra opción puede ser: Código:
... int OldPageIndex = -1; void __fastcall TForm1::btnChangeIndexClick(TObject *Sender) { OldPageIndex = PageControl1->ActivePageIndex; // guardar índice actual PageControl1->ActivePageIndex = 1; // cambiar índice if(PageControl1->ActivePageIndex != OldPageIndex) // ¿ es diferente ? PageControl1Change(Sender); //si, llamar evento OnChange } void __fastcall TForm1::PageControl1Change(TObject *Sender) { ShowMessage("OnChange"); } ...
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 12-01-2012 a las 20:45:24. Razón: corrección ortográfica |
#5
|
|||
|
|||
Gracias a todos por su tiempo, estuve con unos problemas por eso no me pude conectar a responder.
Creo que las soluciones que me brindaron pueden llegar a funcionar todas, pero tengo el inconveniente que no puedo traducirlas. Además no tengo tantos conocimientos por ejemplo, como para poder crear nuevas clases, perdón soy bastante novato. Por eso valoro muchísimo lo que hacen todos ustedes por los demás. Saludos y gracias. |
#6
|
||||
|
||||
No me había percatado de este tema hasta ahora. Voy a poner mi granito de arena.
En primer lugar y como solución sencilla sería llamar al evento OnChange cada vez que usemos la propiedad ActivePageIndex, de forma "manual". Tiene la ventaja de ser sencillo y comprenderse bien, pero no es automático: Código:
PageControl1->ActivePageIndex = 3; PageControl1Change(this); Código:
// Nueva definición de SetActivePageIndex de la clase TPageControl void __fastcall TPageControl::SetActivePageIndex(const int Value) { if (Value > -1 && Value < PageCount) ActivePage = Pages[Value]; else ActivePage = 0; if(OnChange) OnChange(this); // Lanzamos el Evento } // Asignación de ActivePageIndex void __fastcall TForm1::Button1Click(TObject *Sender) { PageControl1->ActivePageIndex = 1; } // Evento OnChange void __fastcall TForm1::PageControl1Change(TObject *Sender) { ShowMessage("Eureca"); } Saludos. |
#7
|
||||
|
||||
Estaba buscando por el foro, porque tengo el mismo problema que abrió este hilo. Este código de escafandra me parece estupendo por lo sencillo pero he estado mirando por Builder y no encuentro por ninguna parte ese método SetActivePageIndex. ¿Me podéis explicar como implementarlo?
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
OnChange | elturu15 | Varios | 4 | 03-05-2011 17:51:54 |
Evento onChange en TImage | MAXIUM | Gráficos | 3 | 08-03-2010 03:02:11 |
evento onchange de un dbedit | ercrizeporta | Varios | 1 | 31-10-2006 14:09:38 |
Findfirst funciona cuando quiere | rfernandez | API de Windows | 3 | 17-03-2005 11:35:43 |
OnChange en TListBox | fedecm | Varios | 1 | 30-06-2004 17:24:32 |
|