Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-08-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Wink Visualización de campos MEMO en un Grid

Hola compañeros.
En lugar de estar en el chiringuito con una cerveza y unas aceitunas, estamos en el despacho con el aire acondicionado programando... y es que siempre han existido clases, y contra más clases... más sabes, y contra más sabes... más trabajas y más responsabilidad, y no directamente proporcional al... parné. Pero en fin, dentro de unos días estaré por Formentera y esta vez prometo perder el teléfono movil.

Al royo.

Necesitaba visualizar datos de un memo en un dbgrid. Historicamente siempre lo tenía pendiente, pues bien, he encontrado un truco en trucomania y mejor o peor lo he adecuado (ya que ese truco no funcionaba como estaba publicado) y con este algoritmo se visualiza perfectamente.

Para todos aquellos que lo necesiten, aquí lo tienen.
Faltará adecuarlo y seguramente perfeccionarlo, pero esto ya es algo.
Suerte a todos y gracias.


// De como visualizar y sólo visualizar un campo memo en un grid

procedure TFBuscaProveedores.DBGridSQLBusquedaDrawColumnCell(
Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
Grid : TStringGrid;
Texto : String;
Rectangulo : TRect;
begin
Rectangulo:=Rect;
Grid := TStringGrid(Sender);
if DataCol = 14 then // Aquí esta la pega de tener que poner esta
begin // constante "14" indicativa de la columna del grid
Grid.Canvas.FillRect(Rect); // q representa el memo
Texto := DBGridSQLBusqueda.Fields[14].Value;
DrawText( Grid.Canvas.Handle,
PChar(Texto),
StrLen(PChar(Texto)),
Rectangulo,
DT_WORDBREAK);
end;
end;
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
Responder Con Cita
  #2  
Antiguo 21-08-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Hola

Dos comentarios a tu codigo

1.- Si en la linea

Código:
if DataCol = 14 then
Pones
Código:
if Column.Field.DataType = ftMemo then
No tendras que preocuparte de que columna es el Memo

2.- Esto se ha discutido varias veces

Código:
Grid := TStringGrid(Sender);
Este "casteo" no es correcto ya que no es una herencia lineal

TCustomGrid --> TStringGrid --> TDbGrid

sino que es

TCustomGrid --> TCustomDrawGrid --> TDrawGrid --> TStringGrid
TCustomGrid --> TDbGrid

Aunque el truco funcione, se tiene que estar seguro de lo que se esta haciendo (para mas info mira algunos hilos que hay en los foros)
Responder Con Cita
  #3  
Antiguo 26-08-2003
Avatar de Cabanyaler
Cabanyaler Cabanyaler is offline
Miembro
 
Registrado: jun 2003
Ubicación: País Valencià
Posts: 339
Poder: 21
Cabanyaler Va por buen camino
Efectivamente esa era una de las posibles mejoras....
__________________
El meu país és tan petit, que des de dalt d'un campanar es pot veure el campanar veí.
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


La franja horaria es GMT +2. Ahora son las 18:32:30.


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