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
  #21  
Antiguo 05-08-2010
Avatar de yapt
yapt yapt is offline
Miembro
 
Registrado: sep 2006
Ubicación: España
Posts: 258
Poder: 18
yapt Va por buen camino
Cita:
Empezado por FGarcia Ver Mensaje
El codigo que muestras me indica que no se nada de nada!!!
Bienvenido al club.....

Cita:
Empezado por Neftali Ver Mensaje
Cita:
Empezado por FGarcia Ver Mensaje
Yapt, mil disculpas, en ningun momento fue intencion menospreciar a alguien por lo del d2010
No te preocupes, yo al menos no lo entendí así.
Yo tampoco.....
Responder Con Cita
  #22  
Antiguo 06-08-2010
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
mmmmm....

Ya parezco disco rayado ( para lo que conocieron los discos LP )

Pues aqui esta el codigo que llevo, sin embargo no logro hacer que al colorear la columna de horarios se pinte el texto correctamente. Todo esto lo estoy haciendo en el evento OnDrawCell.

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

El codigo con el que lleno las columnas de horarios funciona ok. Todo el relajo se hace al querer pintar las columnas de los horarios

Agradezco sus comentarios y sugerencias para arreglar el codigo.
Archivos Adjuntos
Tipo de Archivo: zip StringGrid_2.zip (12,9 KB, 24 visitas)
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #23  
Antiguo 06-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Mi pobre delphi 6 se pega con el codigo, no lo puede ni abrir.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #24  
Antiguo 06-08-2010
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola
Mi pobre delphi 6 se pega con el codigo, no lo puede ni abrir.
Saludos
Me lo imagine, esta en d2010.

Podrias hacer esto descomprime el archivo. En delphi 6 creas un nuevo proyecto de delphi 6. Desde el menu vas a project y le dices que agrege la unit1.pas que descomprimiste, salva el proyecto pero no le salves la unidad que por defecto creo d6. El proyecto deberia compilar y crear el dpr y el dcu.

Comentas como te fue.
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #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: 18.269
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 Caral Ver Mensaje
Hola
Mi pobre delphi 6 se pega con el codigo, no lo puede ni abrir.
Saludos

¿En sero Carlos? Yo lo acabo de abrir con D6 sin problemas.
Sólo hay que crear el directorio de DCUs dentro del de proyecto (donde coloca por defecto los DCUs) y comentar la siguiente línea del DPR:

Código Delphi [-]
Application.MainFormOnTaskbar := True;

¿Qué error ta da?
Si no hay controles extraños, no deberia haber problemas.
__________________
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
  #26  
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: 18.269
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
  #27  
Antiguo 06-08-2010
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Bueno, pues ya corregi tal cual me comentaste y al parecer ya esta listo.

Código Delphi [-]
//Aqui Pintamos las columnas de los horarios del segundo turno
  procedure _PaintHourCol3(ACol,ARow:integer);
  var
    a,j,p:integer;
    Str:String;
  begin
    if (ACol=3) and (ARow <10) then   //Ignoro la fila de resumen
      begin
        a := ARow + 14 - 2; //14 es la hora de inicio
                                   //Restamos los dos renglones o filas fijos
        Str := Format('%.2d:00',[a]) + ' - ' + Format('%.2d:00',[a+1]);
      end; //if

    if (ARow > 1) then
      begin
        InflateRect(Rect, -1, -2);

        StringGrid1.Canvas.Pen.Color := clBlack;
        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;

//Para el tercer turno (Columna 6) hice una chapuza HORRIBLE pero por el momento me resuelve el problema
//Aqui Pintamos las columnas de los horarios del tercer turno
  procedure _PaintHourCol6(ACol,ARow:integer);
  var
    a,j,p:integer;
    Str:String;
  begin
  if (ACol=6) then
      begin
        case ARow of
          2 : a := 22;
          3 : a := 23;
          4 : a := 0;
          5 : a := 1;
          6 : a := 2;
          7 : a := 3;
          8 : a := 4;
          9 : a := 5;
        end;

        Str := Format('%.2d:00',[a]) + ' - ' + Format('%.2d:00',[a+1]);
      end;

    if (ARow > 1) and (ARow <10) then  //Ignoro la fila de resumen
      begin
        InflateRect(Rect, -1, -2);

        StringGrid1.Canvas.Pen.Color := clBlack;
        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;
Imágenes Adjuntas
Tipo de Archivo: jpg Rejilla3.jpg (51,6 KB, 37 visitas)
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #28  
Antiguo 09-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: 18.269
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
Bueno, pues ya corregi tal cual me comentaste y al parecer ya esta listo.
Me alegro de que al final lo hayas conseguido.
Como vez, al final no ha sido tan difícil...
__________________
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
  #29  
Antiguo 18-07-2017
amrp amrp is offline
Registrado
NULL
 
Registrado: jul 2017
Posts: 2
Poder: 0
amrp Va por buen camino
hola a todos

Última edición por Casimiro Notevi fecha: 18-07-2017 a las 17:39:20.
Responder Con Cita
  #30  
Antiguo 18-07-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por amrp Ver Mensaje
hola a todos
Bienvenido a clubdelphi, por favor, lee nuestra guía de estilo. Gracias
Responder Con Cita
  #31  
Antiguo 19-07-2017
amrp amrp is offline
Registrado
NULL
 
Registrado: jul 2017
Posts: 2
Poder: 0
amrp Va por buen camino
Exclamation hola a todos

Hola a todos

Última edición por Casimiro Notevi fecha: 19-07-2017 a las 17:40:57. Razón: salio la tabla mal
Responder Con Cita
  #32  
Antiguo 19-07-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por amrp Ver Mensaje
Hola a todos
Bienvenido a clubdelphi, por favor, lee nuestra guía de estilo. Gracias
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
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 20:33:50.


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