我已将gridView中的项目列表存储到注册表中,如下所示:
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中的所有值都消失了。如何从注册表中检索ident(例如YUPI_GUM_HB)及其值(例如:c:\ Users \ chai \ Pictures \ POS Item Images \ image1.jpg)并在加载表单时将其放入gridView中?
答案 0 :(得分:3)
看起来你看起来并不像TRegistry
(WriteString
的参数太多了),但如果你是,你可以使用它来从注册表中取出所有内容。我怀疑你因为想要拨打ReadString
而被卡住了,但你不知道注册表值的名称,所以你不知道要传递给ReadString
的内容。
您可以致电GetValueNames
获取所有值名称的列表。将它传递给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;