读书人

delphi 数据按行滚动展示

发布时间: 2012-09-09 09:27:54 作者: rapoo

delphi 数据按行滚动显示
有一个文本文件,如下形式:
a 1 e
b 2 f
c 3 g
d 4 h
e 5 i
如何实现其按行滚动显示在stringgrid中,一个cells中显示一个数。谢谢啦

[解决办法]
新建一个工程,双击窗体、将下列代码覆盖你的unit1

Delphi(Pascal) code
unit Unit1;interfaceuses  Windows, SysUtils, Classes, Controls, Forms,  StdCtrls, ExtCtrls, Grids;type  TForm1 = class(TForm)    procedure FormCreate(Sender: TObject);  private    { Private declarations }    procedure Timer1Timer(Sender: TObject);    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}var r:integer;    sl:array[0..2]of TStringList;    StringGrid1:TStringGrid;    Timer1: TTimer;procedure TForm1.FormCreate(Sender: TObject);var i:integer;begin  Height:=320;  Width:=420;  Position:=poScreenCenter;  OnCloseQuery:=FormCloseQuery;  for i:=0 to 2 do    sl[i]:=TStringList.Create;  for i:=0 to 4 do begin    sl[0].Append(char(i+ord('a')));    sl[1].Append(char(i+ord('1')));    sl[2].Append(char(i+ord('e')));  end;  for i:=5 to 7 do begin    sl[0].Append('');    sl[1].Append('');    sl[2].Append('');  end;  StringGrid1:=TStringGrid.Create(self);  with StringGrid1 do begin    RowCount:=8;    Parent:=Form1;    Width:=338;    Height:=210;    FixedCols:=0;    FixedRows:=0;    Left:=40;    Top:=30;  end;  Timer1:=TTimer.Create(self);  Timer1.OnTimer:=Timer1Timer;end;procedure TForm1.Timer1Timer(Sender: TObject);var i,x:integer;begin  for i:=0 to 7 do begin    x:=(r+i)mod 8;    StringGrid1.Cells[1,i]:=sl[0][x];    StringGrid1.Cells[2,i]:=sl[1][x];    StringGrid1.Cells[3,i]:=sl[2][x];  end;  //滚上:  inc(r);{  //滚下:  r:=r+8;  dec(r);}end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);var i:integer;begin  Timer1.Enabled:=false;  Timer1.Free;  StringGrid1.Free;  for i:=0 to 2 do sl[i].Free;end;end. 

读书人网 >.NET

热点推荐