Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Efecto visual DBGrid (https://www.clubdelphi.com/foros/showthread.php?t=53756)

Minio 28-02-2008 20:42:14

Efecto visual DBGrid
 
Buenas tardes, como no sabía donde colocar mi problema pues aquí lo dejo.

Bueno el tema es que en un DBGrid se produce un efecto visual muy raro, y no he conseguido averiguar por que me pasa. Este efecto solo pasa cuando inserto la primera línea en el DbGrid, y se percibe de manera que el color de la fuente es negro y además en negrita y esta adquiere un color gris como si el DBGrid estuviera des habilitado. Esto es lo primero que yo comprobé, pero mi sorpresa fue que al desplegar la barra de inicio de Windows y quitarse, justo el texto que tapaba del DBGrid adquiría el color propio y el resto queda como he explicado. Lo mismo ocurre al arrastrar una ventana por encima.

Esto es rarisimo, solo me lo hace la primera línea, las siguientes no tiene el mismo problema. Ni siquiera cuando abro un nuevo albarán y cargo los datos, todo perfecto.

Bueno si alguien sabe algo o me puede ayudar, yo encantado...

Gracias a todos.

Neftali [Germán.Estévez] 29-02-2008 11:59:06

No acabo de entender muy bien, pero por lo que explicas debe ser problema del pintado. ¿Está usando el Grid estandar? ¿Has modificado rutinas de pintado? ¿Puedes colocar una imagen?

Minio 29-02-2008 12:21:24

Este código es el que tengo puesto en el evento OnDrawColumCell del DBGrid.

Ahora te paso una imagen para que te hagas una idea

Código Delphi [-]
procedure TFmAlbCli.DBGDatosDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  DBGDatos.Columns[0].Font.Color := clBlue;
  with (Sender as TDBGrid) do
    begin
      if DMGestion.TDetAlb.RecNo mod 2 = 0 then
        begin
          Canvas.Brush.Color := clYellow;
          if DBCPOnline.Checked = True then
            begin
              Columns[5].Font.Size := 6;
              Columns[6].Font.Size := 6;
            end
            //Canvas.Font.Size := 6
          else
            begin
              Columns[5].Font.Size := 8;
              Columns[6].Font.Size := 8;
            end
            //Canvas.Font.Size := 8;
        end
      else
        begin
          Canvas.Brush.Color := clWhite;
          if DBCPOnline.Checked = True then
            begin
              Columns[5].Font.Size := 6;
              Columns[6].Font.Size := 6;
            end
            //Canvas.Font.Size := 6
          else
            begin
              Columns[5].Font.Size := 8;
              Columns[6].Font.Size := 8;
            //Canvas.Font.Size := 8;
            end
        end;
        DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
  if (gdSelected in State) then
      begin
        DBGDatos.Canvas.Brush.Color := clBlue;
        DBGDatos.Canvas.Font.Style := [fsBold];
        DBGDatos.Canvas.Font.Color := clWhite;
        DBGDatos.DefaultDrawColumnCell(Rect, Datacol, Column, State);
      end;
end;

Minio 29-02-2008 12:59:14

Bueno adjunto te mando 3 imagenes en jpg con cada uno de los estados. Las he tenido que reducir para poder subirlas, no se si lo podrás apreciar bien.

En el primer estado verás lo que pasa cuando inserto el primer registro.

En el segundo lo que he hecho es desplegar la barra de inicio de windows.

Y en el tercero como puedes ver la barra de inicio ha vuelto a su estado normal y lo que se percibe es que la parte que tapaba la barra de menú ha cambiado al color que debe tener. Esto mismo ocurre si pincho sobre la celda, que adquiere el color negro normal, pero solo la celda que he pinchado con el puntero. Al igual sin arrastro una ventana por encima hace lo mismo.

Cuando cargo mas líneas ya no pasa nada raro todo funciona normal.

Bueno he aqui el dilema....

Gracias tio, por que no se por donde cogerlo.[IMG]file:///C:/DOCUME%7E1/Minio/CONFIG%7E1/Temp/moz-screenshot-2.jpg[/IMG]

Neftali [Germán.Estévez] 29-02-2008 13:56:06

Debes subir las imágenes a algun servidor público, para que podamos verlas. http://imageshack.us/ por ejemplo, y luego utilizas ese link.

Minio 29-02-2008 18:20:29

Estado 1


Estado 2


Estado 3

Minio 29-02-2008 18:22:55

No se si lo veras bien.

Lo siento pero estoy trabajando, y no estoy siempre delante del equipo, no te puedo responder lo rápido que quisiera, de todas formas muchas gracias.

Neftali [Germán.Estévez] 02-03-2008 13:35:51

La verdad es que no se ven muy bien.:(:(

Minio 03-03-2008 09:41:41

Buenos días comenzamos la semana.

Aquí te dejo las imágenes comprimidas a ver si puedes verlas.

http://www.imageshack.us/?pickup=80112309753949

Neftali, muchísimas gracias por tu insistencia.

Minio 03-03-2008 09:44:26

haammm el código que pide es el siguiente: 80112309753949

gracias...

Neftali [Germán.Estévez] 03-03-2008 11:31:18

Nada, que no puedo acceder a las imágenes. Me dice algo así como:
"File upload seems to be abandoned by sender"

:o:o:o

PeterPunk 03-03-2008 11:37:56

Cita:

Empezado por Minio (Mensaje 269727)
Estado 1


Estado 2


Estado 3

Con quitar el .th (de thumbnails) ya las puedes ver a tamaño real:
http://img402.imageshack.us/img402/408/imagen1vy1.jpg

Estado 2
http://img229.imageshack.us/img229/4342/imagen2hs5.jpg

Estado 3
http://img402.imageshack.us/img402/238/imagen3kx4.jpg

Neftali [Germán.Estévez] 03-03-2008 12:01:01

Cita:

Empezado por PeterPunk (Mensaje 270240)
Con quitar el .th (de thumbnails) ya las puedes ver a tamaño real...

¡¡Qué grande!! PeterPunk.
La verdad es que no me había fijado...

Delfino 03-03-2008 12:16:40

No sera por el theme q tienes puesto en el windows? prueba de poner el theme estandar a ver si es por eso..

Neftali [Germán.Estévez] 03-03-2008 12:20:41

He hecho las pruebas con los datos que has pasado y no tengo ningun problema. Parece que el código funciona perfectamente.
No acabo de ver claro donde asignas el color Gris a las letras (¿en diseño? ¿En otro lugar del código?).

http://img254.imageshack.us/img254/3...agen367jv6.png

http://img444.imageshack.us/img444/3...agen369aj2.png

http://img208.imageshack.us/img208/5...agen370ji2.png

Minio 03-03-2008 12:22:02

Deuuuu que desesperación, no se que hacer.

Tienes algún mail donde poder enviártelo si no te importa.

Minio 03-03-2008 12:24:59

Si en realidad el color gris yo no se lo asigno en ningún sitio, el unico color es para la celda que es o amarillo o blanco, según si es linea par o impar.

Minio 03-03-2008 12:28:54

Probaré lo del tema a ver que me dice.

Neftali [Germán.Estévez] 03-03-2008 12:33:54

He vuelto a leer tu mensaje.
¿Comentas que sólo te lo hace con la primera línea? Si tienes varias ¿sólo lo hace con la primera o con la que está seleccionada?

Ves eliminando temporalmente partes de ese código para detectar donde está el problema.

Comenta la parte del gdSelected, luego la parte del Yellow,...

A ver si detectas qué parte del código es la que da el problema. Tal vez llegues a comentarlo todo y el porblema esté en otro sitio.

¿Tienes más eventos programados sobre el Grid?
¿Tienes mensajes capturados sobre el form? Tipo WM_PAINT o similares que puedan afectar al repintado de los componentes.

Minio 03-03-2008 12:41:28

Lo del tema no resulta pasa lo mismo. Bueno tengo que salir a la tarde volveré a ver como va.


La franja horaria es GMT +2. Ahora son las 12:21:28.

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