Delphi 如何读取值';来自注册表的名称和数据?
我已将gridView中的项目列表存储到注册表中,如下所示:Delphi 如何读取值';来自注册表的名称和数据?,delphi,registry,delphi-7,Delphi,Registry,Delphi 7,我已将gridView中的项目列表存储到注册表中,如下所示: frmPOSConfigSet.tblCatItems.First; while not frmPOSConfigSet.tblCatItems.Eof do begin RegItemSetting.WriteString('stk Group\Candy', frmPOSConfigSet.tblCatItemsCODE.Text, frmPOSConfigSet.tblCatItemsSPHOTO.T
frmPOSConfigSet.tblCatItems.First;
while not frmPOSConfigSet.tblCatItems.Eof do
begin
RegItemSetting.WriteString('stk Group\Candy',
frmPOSConfigSet.tblCatItemsCODE.Text,
frmPOSConfigSet.tblCatItemsSPHOTO.Text);
frmPOSConfigSet.tblCatItems.Next;
end;
在注册表编辑器中,我有以下内容:
stk组-糖果
->YUPI_GUM_HB,c:\Users\chai\Pictures\POS Item Images\image1.jpg
->YUPI_GUM_SBKISS,c:\Users\chai\Pictures\POS Item Images\image2.jpg
在我关闭表单并再次打开它之后,gridView中的所有值都消失了。加载表单时,如何从注册表中检索标识(例如YUPI_GUM_HB)及其值(例如c:\Users\chai\Pictures\POS Item Images\image1.jpg)并将其放入gridView 看起来您使用的不是
TRegistry
(参数太多,无法WriteString
),但如果是,您可以使用它将所有内容从注册表中取出。我怀疑您被卡住了,因为您想调用,但您不知道注册表值的名称,因此不知道将什么传递到ReadString
您可以通过调用获取所有值名称的列表。将TStringList
(或任何其他TStrings
后代)传递给它,该方法将用所有值名称填充列表
var
Names: TStrings;
Name, Data: string;
i: Integer;
begin
RegItemSetting.OpenKeyReadOnly('stk Group\Candy');
Names := TStringList.Create;
try
RegItemSetting.GetValueNames(Names);
for i := 0 to Pred(Names.Count) do begin
Name := Names[i];
Data := RegItemSetting.ReadString(Name);
end;
finally
Names.Free;
end;
end;
看起来您使用的不是
TRegistry
(参数太多,无法WriteString
),但如果是,您可以使用它将所有内容从注册表中恢复。我怀疑您被卡住了,因为您想调用,但您不知道注册表值的名称,因此不知道将什么传递到ReadString
您可以通过调用获取所有值名称的列表。将TStringList
(或任何其他TStrings
后代)传递给它,该方法将用所有值名称填充列表
var
Names: TStrings;
Name, Data: string;
i: Integer;
begin
RegItemSetting.OpenKeyReadOnly('stk Group\Candy');
Names := TStringList.Create;
try
RegItemSetting.GetValueNames(Names);
for i := 0 to Pred(Names.Count) do begin
Name := Names[i];
Data := RegItemSetting.ReadString(Name);
end;
finally
Names.Free;
end;
end;
我不知道gridView是什么,所以我无法回答这个问题。你说你在注册表中存储的东西来自gridView,那么你首先是如何将它放入gridView的呢?我通过数据集从gridView到注册表存储和检索数据。所以它是一个数据感知的网格控件?然后,要将其放入网格,请将这些内容放入数据集。我不知道怎么做。gridView是TwwwDBGrid,数据集是TClientDataSet,它相互链接。因此,当我将数据附加到dataset时,它会自动在gridView中显示数据。我不知道gridView是什么,所以我无法回答这个问题。你说你在注册表中存储的东西来自gridView,那么你首先是如何将它放入gridView的呢?我通过数据集从gridView到注册表存储和检索数据。所以它是一个数据感知的网格控件?然后,要将其放入网格,请将这些内容放入数据集。我不知道怎么做。gridView是TwwwDBGrid,数据集是TClientDataSet,它相互链接。因此,当我将数据附加到dataset时,它将自动在gridView中显示数据。