delphi中的DBGridEh的行、列值是否可以向execl中的行显示1\2\3\4,列A\B\C\D这样显示

解决方案 »

  1.   

    view.Columns[0].Caption := '';
    view.Columns[1].Caption := 'A';
    view.Columns[2].Caption := 'B';再把 DataSet 建一个字段,指向 Columns[0],第一个字段的值写1,2,3,4,5啥的~~~
      

  2.   

    自己代码写出来吧,列的标头都是可以自己设置的,如果是自动生成,可以在sql中把字段拼出来,比如
    select fiel1 as A from tableA
      

  3.   

    unit Unit1;interfaceuses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, DB, ADODB, Grids, DBGrids;type
    TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOTable1: TADOTable;
    procedure DataSource1StateChange(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    private
    { Private declarations }
    FirstRecNo: integer;
    public
    { Public declarations }
    end;TDataSetEx= class(TDataSet);var
    Form1: TForm1;implementation{$R *.dfm}procedure TForm1.DataSource1StateChange(Sender: TObject);
    begin
    with TDataSource(Sender) do
    begin
    FirstRecNo := DataSet.RecordCount - TDataSetEx(DataSet).ActiveRecord; 字串8end;
    end;procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var
    i: integer;
    begin
    Inherited;
    with TDBGrid(sender) do
    begin
    if (DataCol =0) then
    begin
    if DataSource.State <> DsInsert then
    i:= DataSource.DataSet.RecNo
    else
    i:= FirstRecNo + Rect.Top div 19;
    Canvas.TextRect(rect,Rect.Left+2, Rect.Top+2, inttostr(i));
    end;
    end;
    end;end.