关于DBGrid控件的使用(100分)

  • 主题发起人 主题发起人 张强
  • 开始时间 开始时间

张强

Unregistered / Unconfirmed
GUEST, unregistred user!
想使用DBGrid控件显示数据,但数据并不来自某个数据库,而是程序中
计算出来的数据,要求:当显示完一页后,能自动翻页,就象数据来自某个数
剧库一样。使用DBGrid.Canvas.TextOut(),能够将数据显示到DBGrid控件
上,但当数据的行数超过一页时,无法自动翻页。请问:用什麽控件、怎样
实现上述功能?谢谢!
 
addtional 里的stringgrid试一下
 
yes,推荐stringgrid
 
请问:怎样将某个数据写入StringGride控件的指定的位置中?例如:将字符“ABC“写入StringGride的第3行第4列,将INTEGER型的123写入StringGride的第5行第5列中?
另:怎样将字段名写上去呢?
谢谢!
 

with StringGrid1 do begin
Cells[0,0] := '名称';
Cells[1,0] := '地址';

Cells[4,3] := 'ABC';
Cells[5,5] := IntToStr(123);
end;

要显示的比较美观一些,需要对 TString 进行一些改进,比如Cell的Alignment等 ,可以到网上下载,很多
 
例如:将字符“ABC“写入StringGride的第3行第4列:
StringGrid1.Cells[4-1,3-1]:='ABC';

将INTEGER型的123写入StringGride的第5行第5列中?
StringGrid1.Cells[4,3]:=IntToStr(123);

另:怎样将字段名写上去呢?
使StringGrid1的RowCount不小于2,FixedRows=1,ColCount=字段数,
然后在StringGrid1的第一行写标题:
StringGrid1.Cells[0,0]:='字段名1';
StringGrid1.Cells[1,0]:='字段名2';
...

 
很有道理,同意:flyingfish
 
unit UnGrid1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, CheckLst, Grids;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
CheckListBox1: TCheckListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
With StringGrid2 do
begin
Cells[0,0]:='行/列';
Cells[1,0]:='第1列';
Cells[2,0]:='第2列';
Cells[3,0]:='第3列';
Cells[4,0]:='第4列';

Cells[0,1]:='第一行';
Cells[1,1]:='Ge';
Cells[2,1]:='Hong';
Cells[3,1]:='is';
Cells[4,1]:='excellent';

Cells[0,2]:='第二行';
Cells[1,2]:='Song';
Cells[2,2]:='is';
Cells[3,2]:='';
Cells[4,2]:='BAD';

Cells[0,3]:='第三行';
Cells[1,3]:='Ge';
Cells[2,3]:='Hong';
Cells[3,3]:='is';
Cells[4,3]:='excellent';

Cells[0,4]:='第四行';
Cells[1,4]:='Song';
Cells[2,4]:='is';
Cells[3,4]:='';
Cells[4,4]:='BAD';
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
CheckListBox1.Items:=StringGrid2.Rows[StringGrid2.Row]
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
I,J,K:Integer;
begin
K:=0;
with StringGrid1 do
for I:=0 to ColCount-1 do
for J:=0 to RowCount-1 do
begin
K:=K+1;
Cells[I,J]:=IntToStr(K);
end;
end;

end.
 
多人接受答案了。
 
后退
顶部