大佬教程收集整理的这篇文章主要介绍了delphi – 如何在资源中存储设置,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
var data :string; procedure WriteSetTings(ServerFile: String; SetTings: String); var resourceHandle: THandle; pwServerFile: PWideChar; begin GetMem(pwServerFile,(Length(ServerFilE) + 1) * 2); try StringToWideChar(ServerFile,pwServerFile,Length(ServerFilE) * 2); resourceHandle := BeginupdateresourceW(pwServerFile,falsE); updateresourceW(resourceHandle,MakeIntresourceW(10),'SETTinGS',@SetTings[1],Length(SetTings) + 1); EndupdateresourceW(resourceHandle,falsE); finally FreeMem(pwServerFilE); end; end; function ReadSetTings(ServerFile: String): String; var ServerModule: HMODULE; resourceLOCATIOn: HRSRc; resourceSize: dword; resourceHandle: THandle; resourcePointer: pointer; begin ServerModule := LoadLibrary(pchar(ServerFilE)); try resourceLOCATIOn := Findresource(ServerModule,RT_RCDATA); resourceSize := Sizeofresource(ServerModule,resourceLOCATIOn); resourceHandle := Loadresource(ServerModule,resourceLOCATIOn); resourcePointer := Lockresource(resourceHandlE); if resourcePointer <> nil then begin SetLength(Result,resourceSize - 1); Copymemory(@result[1],resourcePointer,resourceSizE); Freeresource(resourceHandlE); end; finally FREELIbrary(ServerModulE); end; end; procedure TForm1.saveClick(Sender: TObject); begin writesetTings(paramastr(0),'true'); end; procedure TForm1.ReadClick(Sender: TObject); begin data:=readsetTings(paramstr(0)); end; begin if Data='true' then checkbox1.checked:=true; end
但是存储我写的资源:
还有其他更好的选择吗?
请帮忙
BeginUpdateResource
清楚地说明了为什么你的代码不起作用(强调添加):
如果您检查API函数的返回值并在失败时调用GetLastError,您可能已经能够自己推断出错误的原因,就像文档建议的那样.
您可以将设置存储在资源中,但不能将设置存储在您尝试存储其设置的程序的资源中.现在我们已经确定你不允许在程序本身存储设置,你也可以放弃资源的想法,并使用更常规的方法在外部位置存储设置,例如注册表,INI文件,或者其他什么.如果您发现外部位置尚未进行任何设置,您可能仍希望从资源中读取一组默认设置,如全新安装后可能会发生的那样.
以上是大佬教程为你收集整理的delphi – 如何在资源中存储设置全部内容,希望文章能够帮你解决delphi – 如何在资源中存储设置所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。