我打印的东西很少,就是几个数据,但是用户要求,他可以修改打印数据的位置,并且一次改动后,以后一直用这个改动后的位置。我现在用改变quickreport里面的qrtitle里的字段的TOP和LEFT的值来改变打印的位置,但是用这种方法,在关闭程序后,下次还是会恢复回原样,也就是说无法保留。
方法:设一个打印调整页,然后录入调整距离,点击打印调整按钮后,在ONCLICK事件中,将录入的调整距离加减入原来的字段的TOP或LEFT属性,以此来实现字段的移动。但只在该次运行期间有效,怎么样才能让这个调整永久保留,设哪个属性呢??谢谢!!!!!
方法:设一个打印调整页,然后录入调整距离,点击打印调整按钮后,在ONCLICK事件中,将录入的调整距离加减入原来的字段的TOP或LEFT属性,以此来实现字段的移动。但只在该次运行期间有效,怎么样才能让这个调整永久保留,设哪个属性呢??谢谢!!!!!
用读取ini的方法,然后,通过加密,写入ini文件,即使别人从外部打开ini文件,也看不懂!
关于ini的读写!
从.INI文件中获取字符串
var
strResult:pchar;
begin
GetPrivateProfileString(
'windows', // []中标题的名字
'NullPort', // =号前的名字
'NIL', // 如果没有找到字符串时,返回的默认值
strResult, //存放取得字符
100, //取得字符的允许最大长度
'c:\forwin95\win.ini' // 调用的文件名
);
edit1.text:=strResult; //显示取得字符串
从.INI文件中获取整数
edit1.text:=inttostr(GetPrivateProfileInt(
'intl', // []中标题的名字
'iCountry', // =号前的名字
0,// 如果没有找到整数时,返回的默认值'c:\forwin95\win.ini' // 调用的文件名
));
向.INI文件写入字符串
WritePrivateProfileString(
'windows', // []中标题的名字
'load', // 要写入“=”号前的字符串
'accca', //要写入的数据
'c:\forwin95\win.ini' // 调用的文件名
);
向.INI文件写入整数
WritePrivateProfileSection(
'windows', // []中标题的名字
'read=100', // 要写入的数据
'c:\forwin95\win.ini' // 调用的文件名
);
[节]
关键字1=***
关键字2=***读写INI文件:uses IniFiles;var
MyIniFile:TIniFile;
name:string;
num:integer;begin
MyIniFile:=TIniFile.Create('c:\test.ini');// 读写C:\TEST.INI;
MyIniFile.WriteString('set','name','ABC')//将字符串ABC写入INI文件中的SET节NAME中;
MyIniFile.WriteInteger('set','num',1000);//将整数1000写入INI文件中SET节NUM节中;
...
name:=MyIniFile.ReadString('set','name','AAA');//将INI文件中SET字段NAME节的字符串读出并赋予变量NAME,如果该节中没有值,则缺省为AAA;
num:=MyIniFile.ReadInteger('set','num',500);与上同;
MyIniFile.Free;
end;