用写ini文件或注册表的方式,在窗体OnShow事件和OnClose分别记录下窗体的<br>self.Left, self.Top, self.Width, self.Height这四个参数<br><br><br>1.下面是读写注册表的方式(读写键值是string, 用strToInt, 和 IntToStr进行转换)<br>function htwReadRegisry( RegKey :string ; Default :string ; MyRootKey : Hkey; MyOpenKey :string): string ;<br>var<br> Registry: TRegistry;<br> S : string;<br>begin<br> Registry:= TRegistry.Create;<br> try<br> begin<br> Registry.RootKey :=MyRootKey; // HKEY_CURRENT_USER;<br> Registry.OpenKey(MYOpenKey,false); // Registry.OpenKey('/Software/MachineAdministrator',false);<br> S := Registry.ReadString(RegKey);<br> end<br> finally<br> begin<br> Registry.CloseKey;<br> Registry.Free;<br> end;<br> if Trim(S)='' then Result := Default<br> else Result := S;<br> end;<br><br>end;<br><br>procedure htwWriteRegisry(RegKey :string ;asValueTobewrited : string; MyRootKey : Hkey; MyOpenKey :string );<br>var<br> Registry: TRegistry;<br>begin<br> Registry:= TRegistry.Create;<br> try<br> begin<br> Registry.RootKey :=MyRootKey; // HKEY_CURRENT_USER;<br> Registry.OpenKey(MyOpenKey,true); //Registry.OpenKey('/Software/MachineAdministrator',true);<br> Registry.WriteString(RegKey,asValueTobewrited);<br> end<br> finally<br> begin<br> Registry.CloseKey;<br> Registry.Free;<br> end;<br> end;<br>end;<br><br>调用方法:<br> try<br> htwWriteRegisry('sShortDate','yyyy-MM-dd' ,HKEY_CURRENT_USER, '/Control Panel/International');<br> htwWriteRegisry('sShortDate','yyyy-MM-dd' ,HKEY_USERS, '/.DEFAULT/Control Panel/International');<br> setlocaleinfo(LOCALE_SYSTEM_DEFAULT,LOCALE_SDATE,'yyyy-MM-dd');<br> except<br> end;<br><br>2.下面是读写ini文件的方式(用的是API):<br><br>要利用.INI文件做程序有关数据的存储工作,就需要能读和写.INI文件,所以列了如下方法给大家参考:<br>从.INI文件中获取字符串<br>var<br>strResult
char;<br>begin<br>GetPrivateProfileString(<br>'windows', // []中标题的名字<br>'NullPort', // =号前的名字<br>'NIL', // 如果没有找到字符串时,返回的默认值<br>strResult, //存放取得字符<br>100, //取得字符的允许最大长度<br>'c:/forwin95/win.ini' // 调用的文件名<br>);<br>edit1.text:=strResult; //显示取得字符串<br>从.INI文件中获取整数<br>edit1.text:=inttostr(GetPrivateProfileInt(<br>'intl', // []中标题的名字<br>'iCountry', // =号前的名字<br>0,// 如果没有找到整数时,返回的默认值<br><br>'c:/forwin95/win.ini' // 调用的文件名<br>));<br>向.INI文件写入字符串<br>WritePrivateProfileString(<br>'windows', // []中标题的名字<br>'load', // 要写入“=”号前的字符串<br>'accca', //要写入的数据<br>'c:/forwin95/win.ini' // 调用的文件名<br>);<br>向.INI文件写入整数<br>WritePrivateProfileSection(<br>'windows', // []中标题的名字<br>'read=100', // 要写入的数据<br>'c:/forwin95/win.ini' // 调用的文件名<br>);<br><br><br>