通过文件菜单的打开在DBGrid里显示出来!

解决方案 »

  1.   

    看不到图
    不过通过控制dbgrid的显示就可以吧
    如果就为了显示INI文件,还是用listview好点吧
      

  2.   

    listvie的列可以显性的显示出来吗?
      

  3.   

    如何显示不重要,重要的是INI文件中的数据需要你自己写代码读出来
      

  4.   

    肯定能显示出来的,好比将Excel文件保存为Txt文件的逆过程
      

  5.   

    在窗体上放一个clientdataset1,设置datasource1.dataset:=clientdataset1,设置dbgrid1.datasource=datasource1
    双击clientdataset1,在打开的字段列表窗口里右键选择new fields 创建你自己的字段,选择字段类型
    然后照着下面的代码写就行了unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, Grids, DBGrids, DBClient, IniFiles;type
      TForm1 = class(TForm)
        ClientDataSet1: TClientDataSet;
        DBGrid1: TDBGrid;
        DataSource1: TDataSource;
        Button1: TButton;
        OpenDialog1: TOpenDialog;
        ClientDataSet1WinName: TStringField;
        ClientDataSet1ProName: TStringField;
        ClientDataSet1TitleLanguage: TStringField;
        ClientDataSet1HotKey: TStringField;
        ClientDataSet1cColor: TStringField;
        ClientDataSet1cFontSize: TStringField;
        ClientDataSet1cHint: TStringField;
        ClientDataSet1Bz: TStringField;
        procedure Button1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}function SplitStr(var AStr: string; ASplitChar: Char = ';'): string;
    var
      sF: string;
    begin
      sF := '';
      if AStr <> '' then
        if Pos(ASplitChar, AStr) > 0 then
        begin
          sF := Copy(AStr, 1, Pos(ASplitChar, AStr) - 1);
          AStr := Copy(AStr, Pos(ASplitChar, AStr) + 1, MaxInt);
        end
        else
        begin
          sF := AStr;
          AStr := '';
        end;
      Result := sF;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    var IniFile:TIniFile;
        i,wCount:Integer;
        slabel:string;
    begin
      if OpenDialog1.Execute then
      begin
        IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'config.ini');
        wCount:=IniFile.ReadInteger('frmCount','wCount',1);
        for i := 1 to wCount do
        begin
          slabel:=IniFile.ReadString('frm'+IntToStr(i),'lable1','');
          ClientDataSet1.Append;
          ClientDataSet1.FieldByName('WinName').AsString:=IniFile.ReadString('frm'+IntToStr(i),'frmCaption','');
          ClientDataSet1.FieldByName('ProName').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.FieldByName('TitleLanguage').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.FieldByName('HotKey').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.FieldByName('cColor').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.FieldByName('cFontSize').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.FieldByName('cHint').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.FieldByName('Bz').AsString:=SplitStr(slabel,'^');
          ClientDataSet1.Post;
        end;
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      ClientDataSet1.Close;
      ClientDataSet1.CreateDataSet;
      ClientDataSet1.Open;
    end;end.