Arrais Júnior Postado Julho 5, 2010 Denunciar Share Postado Julho 5, 2010 olá, estou tendo um probleminha, como exibo em um DBGRIG um campo MEMO ?dei uma olhada nos sites e não consegui com nenhum exemplo, sou iniciante, deve ser por isso...o nome do campo da tabela é COMENTARIOSalguém poderia me fornecer o codigo e informar em qual evento do DBGRID ele tem que ser posto. obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 5, 2010 Denunciar Share Postado Julho 5, 2010 Dê uma olhada nesse tópico:http://scriptbrasil.com.br/forum/index.php?showtopic=90142Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 5, 2010 Autor Denunciar Share Postado Julho 5, 2010 olhei o exemplo do link e ficou assim:procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);var R : TRect;beginR:=Rect;Dec(R.Bottom,2);if Column.Field=Query1.FieldByName('comentario') thenbeginif not (gdSelected in State) thenDBGrid2.Canvas.FillRect(Rect);DBGrid2.Canvas.TextRect(R,R.Left,R.Top,Query1.FieldByName('comentario').AsString);end;end;end;end.porém, dar erro nessa linha: if Column.Field=Query1.FieldByName('comentario') thendetalhe, eu apenas uso um adoconnect, um adotable um datasoucer e um dbgrid.como eu faria pro memo ficar na coluna? pode ser que essa solução seja viavel!obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 5, 2010 Denunciar Share Postado Julho 5, 2010 olhei o exemplo do link e ficou assim:procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);var R : TRect;beginR:=Rect;Dec(R.Bottom,2);if Column.Field=Query1.FieldByName('comentario') thenbeginif not (gdSelected in State) thenDBGrid2.Canvas.FillRect(Rect);DBGrid2.Canvas.TextRect(R,R.Left,R.Top,Query1.FieldByName('comentario').AsString);end;end;end;end.porém, dar erro nessa linha: if Column.Field=Query1.FieldByName('comentario') thendetalhe, eu apenas uso um adoconnect, um adotable um datasoucer e um dbgrid.como eu faria pro memo ficar na coluna? pode ser que essa solução seja viavel!obrigadohehe, tenta assim ó:if Column.Field.Name = 'comentario' thenAbraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 5, 2010 Autor Denunciar Share Postado Julho 5, 2010 (editado) ok, ficou assim....mais tah dando erra lá na linha vermelha var R : TRect;beginR:=Rect;Dec(R.Bottom,2);if Column.Field.Name = 'comentario' thenbeginif not (gdSelected in State) thenDBGrid2.Canvas.FillRect(Rect);DBGrid2.Canvas.TextRect(R,R.Left,R.Top,Query1.FieldByName('comentario').AsString);end;end;obrigado pela paciencia Editado Julho 5, 2010 por Arrais Júnior Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 5, 2010 Denunciar Share Postado Julho 5, 2010 qual o erro? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 6, 2010 Autor Denunciar Share Postado Julho 6, 2010 na linha Query1.FieldByName('comentario').AsString);qual poderia ser o problema?obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 6, 2010 Denunciar Share Postado Julho 6, 2010 Puxa mas sem eu saber o erro que está exibindo aí ao compilar eu não tenho como te ajudar...eu acho que você não tem o componente Query1, ele deve ter outro nome, você tem q colocar o nome correspondente!Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 7, 2010 Autor Denunciar Share Postado Julho 7, 2010 ok ok, realmente eu não tinha o query Oo...agora tá tudo normal...porem, ainda no Dbgrid exibe (MEMO) ....beginR:=Rect;Dec(R.Bottom,2);if Column.Field.Name = 'comentario' thenbeginif not (gdSelected in State) thenDBGrid2.Canvas.FillRect(Rect);DBGrid2.Canvas.TextRect(R,R.Left,R.Top,Query1.FieldByName('comentario').AsString);end;end;queria saber se nesse código eu preciso ativar pra que seja mostrada, algo do tipo...eu gostaria que no grid já mostrasse automaticamente as memos...vlws Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 8, 2010 Autor Denunciar Share Postado Julho 8, 2010 por favor...me ajuda a deixar o dgrid exibindo as memos automaticamente....obrigado..desculpa o poste "duplo" Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 Se você já usava um dbGrid que tinha dados e estava funcionando, eu acho que esse Query1 que você criou não tem nada relacionado com os componentes do banco, tente substituir o Query1.FieldByName('comentario').AsString); pelo nome do componente de banco que você usa, acho que deve ser até outra query, exemplo: qryconsulta, qryDbGrid, minhaQry, ou algo assim, ou você deve estar usando um clientdataset, daí você deve coloca-lo, CdsConsulta, CdsMeu, MeuCds..... você tem q colocar o componente de banco que usa, e não criar uma Query1 somente para dar certo o código!Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 8, 2010 Autor Denunciar Share Postado Julho 8, 2010 (editado) pronto...deu certo aqui :)procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);var R : TRect;beginR:=Rect;Dec(R.Bottom,2);if Column.Field=adotable1.FieldByName('qualificacao') thenbeginif not (gdSelected in State) thenDBGrid2.Canvas.FillRect(Rect);DBGrid2.Canvas.TextRect(R,R.Left,R.Top,adotable1.FieldByName('qualificacao').AsString);end;end;end.OBS...só tem um probleminha.....quando eu clico no grid pra Copiar tudo que tem lá, copia apenas (MEMO) não copia os dados :(....algum luz?...algum dica de como eu poderia copiar todo o comentário? Editado Julho 8, 2010 por Arrais Júnior Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 OBS...só tem um probleminha.....quando eu clico no grid pra Copiar tudo que tem lá, copia apenas (MEMO) não copia os dados :(....algum luz?...algum dica de como eu poderia copiar todo o comentário?Não entendi, carrega uma print da tela no imageshack.us e manda aqui pra mim ver e entender melhor!Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 8, 2010 Autor Denunciar Share Postado Julho 8, 2010 tipo, os COMENTÁRIOS que estao dentro do campo comentário, não estao sendo copiados quando eu dou um CTRL + C, por mais que eu selecione o campo para copiar, quando eu colo CRTL + V, aparece apenas (MEMO) ...como se o conteudo que tivesse sendo mostrado fosse apenas uma imagem e não um texto que pudesse ser copiado...é de extrema importancia que eu pegue todo o comentário , copiando do grid, ou de outra forma, e cole em um arqivo do tipo editor de texto....obrigado e desculpas mais uma vez pelo transtorno. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Julho 8, 2010 Denunciar Share Postado Julho 8, 2010 Adicione a Use ClipBrd no seu projeto.Tenta fazer isso no evento OnKeyDown do DBGrid:if (ssCtrl in Shift) and (Key=Ord('C')) then begin if DBGrid1.SelectedField = adotable1.FieldByName('qualificacao') then begin Clipboard.AsText := ADOTable1.FieldByName('qualificacao').AsString; end; end; Lembrando que essa linha: Clipboard.AsText := ADOTable1.FieldByName('qualificacao').AsString; você tem que colocar o campo do Memo, se for esse então deixa assim... caso não dê certo, tente colocar outra coisa no OnKeyDown do DBGrid: if (ssCtrl in Shift) and (Key=Ord('C')) then begin Clipboard.AsText = trim(lowercase('(memo)')) then Clipboard.AsText := ADOTable1.FieldByName('qualificacao').AsString; end;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 10, 2010 Autor Denunciar Share Postado Julho 10, 2010 muito obrigado...só não tou conseguindo achar o Clipbrd, já procurei 3x os componentes do delphi 7 e não achei...tou procurando no canto certo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Julho 10, 2010 Denunciar Share Postado Julho 10, 2010 muito obrigado...só não tou conseguindo achar o Clipbrd, já procurei 3x os componentes do delphi 7 e não achei...tou procurando no canto certo?Nem vai achar .. não é um componenteuses Clipbrd; procedure TForm1.Button1Click(Sender: TObject); begin if (ssCtrl in Shift) and (Key=Ord('C')) then begin Clipboard.AsText := trim(lowercase('(memo)')); Clipboard.AsText := ADOTable1.FieldByName('qualificacao').AsString; end; end;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Arrais Júnior Postado Julho 11, 2010 Autor Denunciar Share Postado Julho 11, 2010 muito obrigado pela ajuda..consegui fazer o que eu tava querendo....graça a ajuda de vocês! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Arrais Júnior
olá, estou tendo um probleminha, como exibo em um DBGRIG um campo MEMO ?
dei uma olhada nos sites e não consegui com nenhum exemplo, sou iniciante, deve ser por isso...
o nome do campo da tabela é COMENTARIOS
alguém poderia me fornecer o codigo e informar em qual evento do DBGRID ele tem que ser posto.
obrigado.
Link para o comentário
Compartilhar em outros sites
17 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.