Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2023
Badillo Badillo is offline
Miembro
 
Registrado: jun 2021
Posts: 33
Poder: 0
Badillo Va por buen camino
Cómo capturar el objeto al que he dado clic

Buenos días, tengo una problemática que no encuentro como solucionarla. Me explico

En un Tform tengo un panel a la izquierda con varios botones y a la derecha otro panel con un PageControl, básicamente lo que necesito es: en evento OnExit del PageControl poder conocer a que botón le he dado click justo en momento que se disparó este evento, para después de hacer las operaciones del OnExit poder ejecutar el evento OnClick del botón correcto.

Gracias.
Responder Con Cita
  #2  
Antiguo 09-10-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Badillo Ver Mensaje
... en evento OnExit del PageControl poder conocer a que botón le he dado click justo en momento que se disparó este evento, para después de hacer las operaciones del OnExit poder ejecutar el evento OnClick del botón correcto.
Yo no lo he entendido.
Responder Con Cita
  #3  
Antiguo 09-10-2023
Badillo Badillo is offline
Miembro
 
Registrado: jun 2021
Posts: 33
Poder: 0
Badillo Va por buen camino
Trataré de aclarar

Saludos,
En el PageControl tengo necesidad de al salir preguntar si se quieren guardar los cambios realizados en la pág activa, de eso se encarga el método save que tengo implementado.

Ahora en el evento OnExit del PageControl pregunto si es la pág que necesito llamar al método guardar y de ser así llamo al método y por tanto se queda en esa página y no sale. Le puse exit después de esa llamada y tampoco sale para el botón al que di click.
Responder Con Cita
  #4  
Antiguo 09-10-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puedes poner un ejemplo sencillo para que podamos probar?
Responder Con Cita
  #5  
Antiguo 09-10-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 264
Poder: 2
pgranados Va por buen camino
Yo utilizaría una bandera para identificarlo, pon una variable tipo string y al crear la forma y cambiar de pagina graba el valor

No se, por ejemplo, en el onCreate del form pon:

Código Delphi [-]
Origen:= PageControl1.ActivePage

y en el onChange de tu PageControl pon

Código Delphi [-]
if Origen <> PageControl1.ActivePage
begin
     showMessge('La pagina cambio');
     // cosas que hacer si la pag cambio
end
else
begin
     showMessge('La pagina es igual');
     // cosas que hacer si la pagina no cambio
end;
Origen:= PageControl1.ActivePage;
Responder Con Cita
  #6  
Antiguo 09-10-2023
Badillo Badillo is offline
Miembro
 
Registrado: jun 2021
Posts: 33
Poder: 0
Badillo Va por buen camino
Ejemplo

Saludos,

Adjunto un ejemplo.

Pasos a seguir:
1. click en el botón 7
2. poner texto en cualquiera de los dos edit que están en TabSheet7
3. hacer click en el botón 6 (se disparará el evento OnExit del PageControl)
4. Realizará lo que está en el evento OnExit del PageControl
5. No continua con la acción del botón 6 que fué donde dió click, sino que se queda en el PageControl en la misma página


Código Delphi [-]
procedure TForm1.PageControl1Exit(Sender: TObject);
begin
  if PageControl1.ActivePage = TabSheet7 then
    if (Edit1.Text <> '') or (Edit2.Text <> '') then
      if MessageDlg('Desea guardar la información',mtConfirmation, mbOKCancel, 0) = mrOk then
        SaveInfo;

  // Ejecutar el evento del botón donde se haya dado click
  // Cómo identifico en que botón se dió click
  // Cómo hago para que en vez que quedarse en el TabSheet7 se ejecute el evento onclick del botón donde se haya dado click
end;
Archivos Adjuntos
Tipo de Archivo: zip EjemploPageControl.zip (4,4 KB, 1 visitas)
Responder Con Cita
  #7  
Antiguo 10-10-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo creo que estás colocando el código en un evento equivocado, independientemente de que no funcione como esperas.
Creo que tiene más sentido (al menos para mi) moverlo a OnChange/OnChanging.
__________________
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.
Responder Con Cita
  #8  
Antiguo 19-10-2023
Badillo Badillo is offline
Miembro
 
Registrado: jun 2021
Posts: 33
Poder: 0
Badillo Va por buen camino
Saludos.

No he logrado resultados positivos ni en OnExit, OnChanging o OnChange.

He puesto banderas, pero nada.

Gracias por las ideas y sugerencias, seguiré buscando y si encuentro como hacerlo lo publicaré.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Capturar hijo de objeto hernandoh FireMonkey 3 02-07-2017 12:57:50
Dado un objeto obtener la lista de procs and functions avmm2004 OOP 3 11-02-2015 15:37:35
capturar y mostrar registro dado entre 2 fechas maxi915 Tablas planas 9 06-07-2014 20:19:11
Capturar clic derecho del ratón vejerf API de Windows 2 10-11-2009 17:48:05
capturar registros con un clic o doble clic corvarod Conexión con bases de datos 2 18-04-2009 13:29:42


La franja horaria es GMT +2. Ahora son las 18:47:54.


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