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 02-07-2008
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 196
Poder: 20
darkerbyte Va por buen camino
Question No logro Levantar un SpeedButton

Se van a reir cuando les cuente mi problema, pero no le he encontrado solución y ya me desesperó. Así que les estaré muy agradecido si me ayudan.
El problema es este.
En un Panel tengo 4 Speedbuttons(SB). Estos tienen las propiedades

AllowAllUp:=true;
GropuIndex:=1;

Los dos primeros SB realizan sus respectivas funciones (algunas consultas). El problema lo tengo con el SB3 y SB4. Cuando el usuario presione el SB3 este traerá un form con el procedimiento

Código Delphi [-]
procedure TFormMain.SB3Click(Sender: TObject);
begin
if FormFecha.ShowModal= mrOk then begin //Procedimientos para efectuar una cosulta utilizando las fechas que //el usuario proporciona (...) end else SB3.down:=false;
end;

Ahora, supongamos que el usuario hace click sobre el SB1, este realiza su función y queda en estado presionado. Cuando el usuario hace clicl sobre el sb3 y aparece la ventana, no tengo ningun problema si el usuario hace click en aceptar. El SB3 se pone en down y el SB1 se levanta.
Pero cuando el usuario decide cancelar, por ende se cierra la ventana modal pero el boton SB3 se queda presionado junto con el SB1 y lo que quiero es que si el usuario decide cancelar la accion, el SB3 se levante y quede presionado solo el SB1.

Esto mismo me pasa con el SB4 que funciona similar.

Como ven? me podrían dar algo de luz?

Espero haber sido suficientemente claro
Desde ya, muchas gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 02-07-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Hay algo que no me cuadra.
El funcionamiento de estos botones hace que cuando pulses uno el otro "se levante". Tu función no debería interferir nunca en ese funcionamiento, como mucho "maquillarlo", porque de lo contrario no te recomiendo usar la propiedad "GropuIndex" sino emular tú mismo ese comportamiento para que se ajuste a tus necesidades.
Te recomiendo que repases tu código, seguro que tocas la propiedad "down" de los botones alguna otra vez y puede que ahí esté el problema.
Responder Con Cita
  #3  
Antiguo 02-07-2008
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Hola darkerbyte con el poco codigo que das no te puedo decir al 100% cual es el problema, pero si dices que al cerrar el formulario modal el SB3 y el SB1 se quedan presionados, podrias hacer algo asi:

Código Delphi [-]
procedure TFormularioModal.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   MainForm.SB3.down:=false;
end;

Espero que te sirva de algo, salu2
Responder Con Cita
  #4  
Antiguo 02-07-2008
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 196
Poder: 20
darkerbyte Va por buen camino
Exclamation Gracias por su ayuda

Probé con las soluciones que me dieron, y les agradezco mucho, aunque no funcionaron.
Estuve analizando más el código. Y esto es lo que encontré.
Cuando el usuario hace click sobre SB3 y aparece la ventana modal y el usuario cancela la ventana, cambio la propiedad down pero todo esto está dentro del el procedimiento OnClick de SB3 y es cuando termina este procedimiento que se activa la propiedad down del botón por lo que no sirve de nada cambiarla dentro de este mismo proceso. Lo que en teoría hay que hacer es que una funcion fuera de esta cambie el estado. Lo que hice fue lanzar un hilo que revise el estado de los botones y lo ponga correctamente.
Se que no es la solución mas óptima, pero caramba, esta funcionado y ya me desesperaron esos 4 SB

Si alguien tiene otra idea de por que pasa este fenómeno y/o tiene una solución mas apropiada les agradeceré un montón que me la pasen.

Thank's a lot
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
Crear un speedbutton dentro de un speedbutton madmai Varios 2 08-06-2008 17:54:30
Problema con matrices que no logro resolver galmacland Varios 11 20-06-2006 19:03:45
no logro ver datos reales de una bd de informix picapica Conexión con bases de datos 0 08-12-2004 22:27:52
Como logro la suma por grupo alcides SQL 2 19-07-2004 21:11:06
No logro que funcionen un FOREIGN KEY orfeo MySQL 2 16-07-2003 19:52:58


La franja horaria es GMT +2. Ahora son las 01:27:08.


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