Mostrar Campo Text num DBGrid

Delphi

26/08/2005

Pessoal, estou com uma dúvida. Trabalho com o delphi 7 e PostgreSql. Tenho um campo text numa query e gostaria de mostrar esse campo num DBGrid, mas ele aparece com a descrição MEMO. Como faço pra mostrar esse campo no grid? Afinal, tem como fazer isso?

Obrigada,
Juliana.


Jupedra

Jupedra

Curtidas 0

Respostas

Denis

Denis

26/08/2005

use o componente DbCtrlGrid. Ele tem uma forma parecida com dbgrid.


GOSTEI 0
Adriano Santos

Adriano Santos

26/08/2005

procedure TfReceber.dgGradePrincipalDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  R: TRect;
begin
  {exibe campo memo}
  R := Rect;
  Dec(R.Bottom, 2);
  if Column.Field = fdmPrincipal.qryReceber.FieldByName(´DESCRICAO´) then
  begin
    if not (gdSelected in State) then
      dgGradePrincipal.Canvas.FillRect(Rect)
    else
      dgGradePrincipal.Canvas.FillRect(Rect);
    {Desenha o texto do campo}
    DrawText(dgGradePrincipal.Canvas.Handle,
      PChar(fdmPrincipal.qryReceber.FieldByName(´DESCRICAO´).AsString),
      Length(fdmPrincipal.qryReceber.FieldByName(´DESCRICAO´).AsString), R,
      DT_WORDBREAK);
  end;
end;




Pra ficar mais legal, aumente o tamanho da fonte na propriedade Font do DBGrid para uns 24, depis clique duas vezes no DBGrid e selecione todos os campos/colunas e entre na propriedade Font diminuindo o tamanho para 8 (padrão) assim sua linha no DBGrid vai ficar mais alta.

Qualquer coisa te mando um exemplo.


GOSTEI 0
Jupedra

Jupedra

26/08/2005

Obrigada pela dica, achei outra forma de fazer no evento onGetText do campo Memo da query coloco a linha:

Text := Copy(querycampo.AsString, 1, 200);

E ai funciona direitinho. Obrigada. :wink:


GOSTEI 0
Adriano Santos

Adriano Santos

26/08/2005

Puts, mas mostra legal o texto?
Pq essa dica que eu passei foi publicada em uma revista ClubeDelphi bem atinga.


GOSTEI 0
Jupedra

Jupedra

26/08/2005

Pra mim mostrou legal sim, funcionou direitinho :D


GOSTEI 0
Firekiller_am

Firekiller_am

26/08/2005

[quote:7b5bae1b77=´Adriano Santos´]Puts, mas mostra legal o texto?
Pq essa dica que eu passei foi publicada em uma revista ClubeDelphi bem atinga.[/quote:7b5bae1b77]

Ola Adriano a sua dica funcionou comigo.. vlw


GOSTEI 0
Eduardo Mendonça

Eduardo Mendonça

26/08/2005

procedure TfReceber.dgGradePrincipalDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  R: TRect;
begin
  {exibe campo memo}
  R := Rect;
  Dec(R.Bottom, 2);
  if Column.Field = fdmPrincipal.qryReceber.FieldByName(´DESCRICAO´) then
  begin
    if not (gdSelected in State) then
      dgGradePrincipal.Canvas.FillRect(Rect)
    else
      dgGradePrincipal.Canvas.FillRect(Rect);
    {Desenha o texto do campo}
    DrawText(dgGradePrincipal.Canvas.Handle,
      PChar(fdmPrincipal.qryReceber.FieldByName(´DESCRICAO´).AsString),
      Length(fdmPrincipal.qryReceber.FieldByName(´DESCRICAO´).AsString), R,
      DT_WORDBREAK);
  end;
end;




Pra ficar mais legal, aumente o tamanho da fonte na propriedade Font do DBGrid para uns 24, depis clique duas vezes no DBGrid e selecione todos os campos/colunas e entre na propriedade Font diminuindo o tamanho para 8 (padrão) assim sua linha no DBGrid vai ficar mais alta.

Qualquer coisa te mando um exemplo.




Sinceramente esse exemplo resolveu minha vida. kkkkk
adorei seu exemplo funcionou muito bem.
GOSTEI 0
POSTAR