Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-02-2019
Sir16 Sir16 is offline
Registrado
 
Registrado: sep 2018
Posts: 8
Poder: 0
Sir16 Va por buen camino
Control grafico StringGrid

Buenas compañeros, me encuentro que tengo un stringGrid en el que lo hago mas ancho de la siguiente forma :

Código Delphi [-]
 
Procedure AmpliarRow; 
begin   
StringGrid1.RowHeights[1] := StringGrid1.RowHeights[1] + 10;
end;   
procedure Form1.StringGrid1.DrawCell(Sender: TObject; ACol,   ARow: Integer; 
Rect: TRect; State: TGridDrawState);   
var texto :string;
indice,posicion:integer; 
begin    
if Pos(#13,StringGrid1..Cells[Acol,Arow])<>0 then
     begin
       texto:= StringGrid1..Cells[Acol,Arow]+#13;
       StringGrid1.Canvas.FillRect(Rect);       
       indice:= 0;
       repeat
         posicion := pos(#13,texto);         
         with StringGrid1.Canvas do
           textout(rect.Left,rect.Top+(indice*(textHeight(copy(texto,1,posicion-1))+5)),copy(Texto,1,posicion-1));
         inc(indice);
         delete(texto,1,posicion);
       until posicion = 0;
     end;
  end;

El problema lo tengo que al seleccionar una de estas lineas, en la que lo tengo particionado, me sale el texto en medio sin la separación como si fuera un hint. Adjunto imagen del problema.

He encontrado que si cambio el DrawingStyle de gsdThemed a gsdClassic el problema me desaparece, pero no es tan atractivo visualmente.
Alguna recomendación de como controlar esto para que no me salga o quede igual que con el modo del drawcell.

Gracias de antemano.

PD. Trabajo con Delphi en entorno de desarrollo versión Berlin.
Imágenes Adjuntas
Tipo de Archivo: png imagen problema.PNG (5,6 KB, 16 visitas)
Responder Con Cita
  #2  
Antiguo 16-02-2019
Sir16 Sir16 is offline
Registrado
 
Registrado: sep 2018
Posts: 8
Poder: 0
Sir16 Va por buen camino
Después de estar peleando unas buenas horas solo con esto encontré la solución añadiendo una linea antes de hacer el fillRect con muestro a continuación en el proceso del draw cell;


Código Delphi [-]
if Pos(#13,StringGrid1.Cells[Acol,Arow])<>0 then
    begin
      texto:= StringGrid1.Cells[Acol,Arow]+#13;
// lineas añadidas para arreglar el problema

      StringGrid1.Canvas.Brush.Color := StringGrid1.Color;
      StringGrid1.Canvas.FillRect(Rect);
      indice:= 0;
      repeat
        posicion := pos(#13,texto);
        with StringGrid1.Canvas do
        begin
          Brush.Color := StringGrid1.Color;
          textout(rect.Left,rect.Top+(indice*(textHeight(copy(texto,1,posicion-1))+5)),copy(Texto,1,posicion-1));
        end;
        inc(indice);
        delete(texto,1,posicion);
      until posicion = 0;
    end;

Espero que a alguien le sirva.
Responder Con Cita
  #3  
Antiguo 16-02-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #4  
Antiguo 18-02-2019
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Gracias por compartir la solución

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
un grafico velezbunzl Gráficos 0 27-02-2009 07:31:52
stringgrid en celda de otro stringgrid?? noodle_ OOP 3 17-06-2008 14:36:01
Imprimir Reporte Gráfico A Partir De Un Stringgrid jhoncacru Impresión 2 17-12-2006 18:19:31
Control StringGrid chinchan C++ Builder 0 04-05-2006 22:36:13
Control que crea control craven OOP 5 07-06-2003 03:23:13


La franja horaria es GMT +2. Ahora son las 22:53:43.


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