Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2010
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 24
Toni Va por buen camino
Problema con DBGrid en Windows 7

Hola,

Tengo un pequeño problema con una aplicación que hasta ahora todo funcionaba bien hasta que la he probado en Winwdows 7. El problema parece ser con el componente DBGrid, tengo un DBGrid que tiene asignado varios eventos entre ellos seria OnDblCkick y el OnTitleClick los que parece que tienen el problema con el Windows 7.

El problema en cuestion es cuando el usuario hace un doble click sobre el DBGrid y la aplicación pues en este evento abre otro formulario modal y cuando el usuario cierra este nuevo formulario parece ser que se ejecuta por arte de magia el evento OnTitleClick. Como decia en un inicio esto solo pasa con Windows 7 y lo hace siempre.

El evento OnTitleClick esta programa para ordenar el DBGrid en funcion de que columna se realice el click.

Esto me ha pasado en una instalacion en casa de un cliente, pero no lo he podido reproducir porque yo no tengo la suerte o 'desgracia' de tener Windows 7. Haber si alguien le a pasado y nos cuenta o lo puede reproducir.

Ya que resulta muy molesto en mi aplicación que te cambie el orden del DBGrid cada dos por tres sin venir a cuento.

Utilizo C++ Builder 6 y los componentes standard.

Muchas gracias de ante mano!
__________________
Saludos,

Bitman
Responder Con Cita
  #2  
Antiguo 16-12-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Las versiones antiguas del Builder, especialmente las menores de la 6 y algo también la 6, tienen problemas en algunos controles si se compila el XPManifest. Haz la prueba eliminando el XPManifest (si es tu caso) y correlo de nuevo en Windows 7.

Saludos.
Responder Con Cita
  #3  
Antiguo 17-12-2010
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 24
Toni Va por buen camino
Hola Escafandra,

No utilizo este componente en la aplicacion.

Gracias de todas formas.
__________________
Saludos,

Bitman
Responder Con Cita
  #4  
Antiguo 09-09-2011
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 24
Toni Va por buen camino
Hola,

Respecto a este post que inicie en su dia queria añadir que estaba equivocado y no se trata de un problema con Windows 7 como hice mención. La cuestión es que por cosas de las casualidades solo se habia reproducido el problema en pc's con Windows 7 y ademas intentando reproducir el mismo en otros equipos no hubo manera.

A dia de hoy todavia sigo con el problema sin resolver, pero finalmente he podido averiguar algun dato mas que me permite reproducir (no siempre) el problema que comentaba.

La cuestion es la misma, que no se porque se dispara un evento del DbGrid, el OnTitleClick.

Para entrar mas en detalle comentaros que es una aplicación tipo MDI y desde un formulario hijo que contiene el famoso dbgrid, cuando el usuario realiza doble click sobre el dbgrid la aplicación crea y muestra otro formulario hijo. Solo en los casos en que el segundo formulario hijo se muestra 'maximizado' al cerrar el mismo y eliminarlo cuando retorna al formulario desde el que se creo lanza el evento no deseado OnTitleClick (no siempre)

Decir que el evento OnTitleClick de este DbGrid no se llama en ningun otro lugar del codigo, solo cuando realiza click en el los titulos del DbGrid.

Se puede observar cuando se ha ejecutado el evento porque cambio el color del titulo en cuestion.


Pongo un enlace que he encontrado en otro foro que embarcadero que tambien comentan el bug existente en el dbgrid:

https://forums.embarcadero.com/threa...threadID=36057

Nota: Quizas tendria que iniciar un nuevo hilo puesto que el tema ha cambiado.
__________________
Saludos,

Bitman

Última edición por Toni fecha: 09-09-2011 a las 08:53:45.
Responder Con Cita
  #5  
Antiguo 09-09-2011
Toni Toni is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona - España
Posts: 364
Poder: 24
Toni Va por buen camino
Hola,

Una vez que he podido reproducir el problema me ha sido facil buscarle una solución. Como ya comentaba se trata de un pequeño bug en el componente DbGrid cuando se utiliza los eventos OnTitleClick y OnDblClick.

Este bug no sucede siempre que se programan estos eventos, en mi caso es al crear y mostrar un formulario MDIchild desde el evento OnDblClick del DbGrid, sobretodo cuando este formulario esta maximizado.

Os pongo un ejemplo muy simple pero que funciona para evitar este molesto problema.

Código Delphi [-]
void __fastcall TForm2:BGrid1DblClick(TObject *Sender)
{

  DBGrid1->Enable = false; // Inabilito el grid para evitar problema.
  TForm3 *Form3 = new TForm3(this);
  DBGrid1->Enable = true;  // Vuelvo a habilitar el grid.
}

Muchas gracias a todos.
__________________
Saludos,

Bitman
Responder Con Cita
  #6  
Antiguo 09-09-2011
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.671
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Gracias por explicar el problema y la solución.
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
Problema Con Ado en Windows Xp poliburro SQL 2 28-06-2006 19:32:26
Problema en Windows 98 LucasArgentino Varios 3 05-09-2005 16:04:51
Problema con Windows 98 claumar Windows 2 10-12-2004 00:15:02
Problema con Windows XP tiel API de Windows 0 03-07-2003 08:37:15
Problema con el exe y windows superhopi Conexión con bases de datos 0 23-05-2003 13:15:27


La franja horaria es GMT +2. Ahora son las 19:47:05.


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
Copyright 1996-2007 Club Delphi