procedure TFormMain.WriteControlPlacement; var iniFile : TIniFile; idx : integer; ctrl : TControl; listview:TListView; i:Integer; begin iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ; try for idx := 0 to -1 + Self.ComponentCount do begin if Components[idx] is TControl then begin ctrl := TControl(Components[idx]) ; iniFile.WriteInteger(ctrl.Name,'Top',ctrl.Top) ; iniFile.WriteInteger(ctrl.Name,'Left',ctrl.Left) ; iniFile.WriteInteger(ctrl.Name,'Width',ctrl.Width) ; iniFile.WriteInteger(ctrl.Name,'Height',ctrl.Height) ; end; if Components[idx] is TListView then begin listview:= Components[idx] as TListView ; //iniFile.WriteInteger(ctrl.Name,'ColumnCount',listview.Columns.Count) ; for I := 0 to listview.Columns.Count-1 do begin iniFile.WriteInteger(ctrl.Name,'ColWidth'+Inttostr(I),listview.Columns[i].Width) ; end; end; end; finally FreeAndNil(iniFile) ; end; end; (*WriteControlPlacement*) procedure TFormMain.ReadControlPlacement; var iniFile : TIniFile; idx : integer; ctrl : TControl; listview:TListView; i:Integer; begin iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ; try for idx := 0 to -1 + Self.ComponentCount do begin if Components[idx] is TControl then begin ctrl := TControl(Components[idx]) ; ctrl.Top := iniFile.ReadInteger(ctrl.Name,'Top',ctrl.Top) ; ctrl.Left := iniFile.ReadInteger(ctrl.Name,'Left',ctrl.Left) ; ctrl.Width := iniFile.ReadInteger(ctrl.Name,'Width',ctrl.Width) ; ctrl.Height := iniFile.ReadInteger(ctrl.Name,'Height',ctrl.Height) ; end; if Components[idx] is TListView then begin listview:= Components[idx] as TListView ; //iniFile.WriteInteger(ctrl.Name,'ColumnCount',listview.Columns.Count) ; for I := 0 to listview.Columns.Count-1 do begin listview.Columns[i].Width:= iniFile.ReadInteger(ctrl.Name,'ColWidth'+Inttostr(I),100) ; end; end; end; finally FreeAndNil(iniFile) ; end; end; (*ReadControlPlacement*) //注:在窗体的OnCreate事件处理程序中调用ReadControlPlacement。 //在窗体的OnClose或OnDestroy事件处理程序中调用WriteControlPlacement。 |
|