Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #25  
Antiguo 06-08-2010
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: 19.449
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
Cita:
Empezado por FGarcia Ver Mensaje
Errores:
El texto se dibuja pero no en el orden adecuado, todo se repite en cada columna.
Las celdas de las columnas del horario aparecen con un marco el cual desaparece si se hace click en ellas
(1) El primer problema de que se repita el texto de los horarios, es simplemente que no pasas como parámetro la fila, y es algo imprescindible. Creo que la rutina la has complicado más de lo necesario. Si haces la llamada por ejemplos así:

Código Delphi [-]
  if (ACol = 0) then begin
     _PaintHourCol0(ACol, ARow);
  end;

Y el procedimiento lo simplificas así:

Código Delphi [-]
  //Aqui Pintamos las columnas de los horarios del primer turno
  procedure _PaintHourCol0(ACol, ARow:integer);
  var
    a,j,p:integer;
    Str:String;
  begin
    if (ACol=0) then begin
      a := ARow+6;
      Str := Format('%.2d:00',[a]) + ' - ' + Format('%.2d:00',[a+1]);
    end; //if

    if (ARow > 1) then
      begin
        StringGrid1.Canvas.Brush.Style := bsSolid;
        StringGrid1.Canvas.Brush.Color := $00E6E6E6;
        StringGrid1.Canvas.Rectangle(Rect); //FillRect(Rect);
        Application.ProcessMessages;
        StringGrid1.Canvas.TextOut(Rect.Left + 5,Rect.Top + 3, Str);
        Application.ProcessMessages;
      end;
  end;

Funciona perfectamente (sólo basta replicarlo en los otros dos).
Y si me apuras mucho, eso tres puedes juntarlo en uno sólo (eso para más adelante ).



(2) El tema del marco que desaparece, no es ningun misterio , simplemente es que te has dejado de añadir a línea:

Código Delphi [-]
  StringGrid1.Canvas.Pen.Color := clBlack;

En los procedimientos _PaintHourCol0, _PaintHourCol3, _PaintHourCol6 en la segunda parte cuando pintas sobre el canvas.
Si añades la línea:

Código Delphi [-]
  InflateRect(Rect, -2, -2);

Controlas si el recuadro está más ajustado al borde o menos:

Código Delphi [-]
...
    if (ARow > 1) then
      begin
        // Hago el recuadro 2 pixels más pequeño por cada lado
        InflateRect(Rect, -2, -2);
        // Pen color (borde) a NEGRO
        StringGrid1.Canvas.Pen.Color := clBlack;
        // Resto...
        StringGrid1.Canvas.Brush.Style := bsSolid;
        StringGrid1.Canvas.Brush.Color := $00E6E6E6;
        StringGrid1.Canvas.Rectangle(Rect); //FillRect(Rect);
        Application.ProcessMessages;
        StringGrid1.Canvas.TextOut(Rect.Left + 5,Rect.Top + 3, Str);
        Application.ProcessMessages;
      end;

Una cosa más.
Pare evitar este efecto en las celdas:


En la propiedad Options, pon goFixedVertLine a FALSE. En diseño.
__________________
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: 06-08-2010 a las 13:31:45.
Responder Con Cita
 



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
stringgrid en celda de otro stringgrid?? noodle_ OOP 3 17-06-2008 13:36:01
Tutorial muli MS SQL Server 3 15-05-2008 10:31:59
Tutorial jocey Conexión con bases de datos 1 06-11-2007 14:57:32
Tutorial .Net MaMu .NET 2 06-08-2007 19:40:15
Tutorial de POO AbcXxx OOP 3 06-02-2004 16:29:48


La franja horaria es GMT +2. Ahora son las 21:48:22.


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