📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, DBTables, ExtCtrls, DBCtrls;
type
TForm1 = class(TForm)
Table1: TTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1CustNo: TAutoIncField;
Table1Last_Name: TStringField;
Table1First_Name: TStringField;
Table1City: TStringField;
Table1StateProv: TStringField;
Table1Country: TStringField;
Table1Phone: TStringField;
Table1Remarks: TMemoField;
DBNavigator1: TDBNavigator;
procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
var
P: array [0..50] of char; {为显示Memo字段定义了一个50个长度的数组}
bs: TBlobStream; {流对象}
hStr: String;
begin
if Field is TMemoField then
begin
with (Sender as TDBGrid).Canvas do
begin
bs := TBlobStream.Create(Table1Remarks, bmRead);//为Memo字段建立一个流对象
FillChar(P,SizeOf(P),#0); //给数组赋初值
bs.Read(P, 50); //把流对象值读入数组
bs.Free; //释放流对象
hStr := StrPas(P);
while Pos(#13, hStr) > 0 do
hStr[Pos(#13, hStr)] := ' ';
while Pos(#10, hStr) > 0 do
hStr[Pos(#10, hStr)] := ' ';
FillRect(Rect); //建立一个Rect对象
TextOut(Rect.Left, Rect.Top, hStr); //将Memo字段的值在Rect中显示
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -