我想将ini文件中的文本存储到变量中,并在我的设置页面上多次使用var,
对于instace,我可以说我有一个名为" datatxt" 的ini文件,ini部分 - [txtdata] ,部分键 - & #34; htxt" ,键值 - " hello world" 。 我想将此文本值存储在名为 - " hiVar" 的var中,并在此处使用 -
Title :=
TNewStaticText.Create(MOPage);
Title.Parent := MOPage.Surface;
Title.Font.Name := 'Verdana';
Title.Caption := hiVar;
答案 0 :(得分:1)
对于声明变量,有两个可用范围。本地和全球。本地声明的变量仅在声明它们的过程或方法的主体内可见。它们被广泛用作中间操作的临时存储,或者用于保存对象引用(如您所知):
procedure DoSomething;
var
S: string; // <- this is a locally declared variable
begin
// only inside this procedure the S variable can be accessed
end;
全局声明的变量(这是您的问题)在整个代码脚本部分的所有过程和方法的范围内都可见。它们用于保存跨脚本代码使用的对象的引用,在事件方法之间传递某些操作的结果,或者用于保存一些永久值(这是您的情况):
var
S: string; // <- this is a globally declared variable
procedure DoSomething;
begin
// inside this procedure the S variable can be accessed
end;
procedure DoSomethingElse;
begin
// as well as inside this procedure the S variable can be accessed
end;
用一个例子回答你的问题是非常困难的,因为你没有描述你想要读取该INI文件的上下文,所以很难说你应该在哪个事件中阅读它。在以下示例中,初始化向导表单时将读取INI文件值。您可以看到从另一个方法访问全局变量:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Files]
Source: "datatxt"; Flags: dontcopy
[Code]
var
hiVar: string; // <- this is a globally declared variable
procedure InitializeWizard;
begin
// extract the file into the setup temporary folder
ExtractTemporaryFile('datatxt');
// assign the read value into a global variable
hiVar := GetIniString('txtdata', 'htxt', '', ExpandConstant('{tmp}\datatxt'));
// from now on the variable should contain the key value
end;
procedure CurPageChanged(CurPageID: Integer);
begin
// just a random code showing that you can access global
// variables across the methods
if CurPageID = wpWelcome then
MsgBox(hiVar, mbInformation, MB_OK);
end;