dbgrid是不是不能显示备注型字段?(0分)

  • 主题发起人 主题发起人 wangchengwu
  • 开始时间 开始时间
W

wangchengwu

Unregistered / Unconfirmed
GUEST, unregistred user!
dbgrid是不是不能显示备注型字段?
 
可以显示
 
请问一下该如何显示
 
老兄,前几天我刚好碰到这个问题,已有人回答,方法可行,你查一下 
 
看一看demo
 
在DBGrid中查看Memo方便吗???

我是这样用的,双击DbGrid就弹出一个框,这个这框里显示对应的Memo或相片。
 
我给你转贴过来,你看一下。
来自:successlikun, 时间:2002-9-17 16:50:00, ID:1330473
DBGrid中不能显示备注型字段
解决方法
一。可以用DBMemo显示,DBMemo是专用来显示备注型字段
二。既然“内容不会很复杂,就是字符,长度也不会很长”为
三。更毒的解决方法:Query加计算字段
例备注字段为Temp 加计算字段 Cal_Temp,Query名为AdoQuery1
procedure TForm1.ADOQuery1CalcFields(DataSet: TDataSet);
begin
AdoQuery1Cal_Temp.Text := AdoQuery1.FieldByName('Temp').AsString;
end;
加分吧!

 
这段代码绝对可以:(trim函数把最后的一个符号去掉就可以显示出来了)
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, DBCtrls, Grids, DBGrids, Db, DBTables;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Table1SpeciesNo: TFloatField;
Table1Category: TStringField;
Table1Common_Name: TStringField;
Table1SpeciesName: TStringField;
Table1Lengthcm: TFloatField;
Table1Length_In: TFloatField;
Table1Notes: TMemoField;
Table1Graphic: TGraphicField;
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure Table1NotesGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure Table1NotesSetText(Sender: TField; const Text: String);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
bmp:Tbitmap;
Outrect:Trect;
Bmpwidth:integer;
begin
Outrect:=rect;
if column.field=Table1Common_name then
begin //ok
Bmp:=Tbitmap.create;
try
Bmp.assign(Table1Graphic);
bmpWidth:=(Rect.bottom-Rect.top)*2;
Outrect.Right:=rect.left+BmpWidth;
dbGrid1.canvas.StretchDraw(outRect,Bmp);
finally
bmp.free;
end; //try
outrect:=rect;
Outrect.left:= Outrect.left+BmpWidth;

end; //ok

//color

if (column.field=Table1Lengthcm) and (Table1Lengthcm.AsInteger>100) then
Dbgrid1.canvas.font.Color:=clred;

Dbgrid1.defaultdrawdatacell(outrect,column.field,state);




end;

procedure TForm1.Table1NotesGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
text:=trim(sender.asString);
end;

procedure TForm1.Table1NotesSetText(Sender: TField; const Text: String);
begin
sender.AsString:=text;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin

end;

end.
 
有没有办法在DBGRID中显示备注型字段植呢?
 
后退
顶部