2010-06-16 81 views
0

我已经存储了从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: \用户\柴\图片\ POS产品图片\ image1.jpg
- > YUPI_GUM_SBKISS,C:\用户\柴\图片\ POS产品图片\ image2.jpg

后,我关闭窗体,并打开它AGA在GridView中的所有值都消失了。如何从注册表中检索ident(例如YUPI_GUM_HB)及其值(eg.c:\ Users \ chai \ Pictures \ POS Item Images \ image1.jpg),并在加载表单时将其放入gridView中?

回答

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; 
+0

我不知道gridView是什么,所以我不能回答这个问题。你说你存储在注册表中的东西来自gridView,那么你是如何将它放入gridView的? – 2010-06-17 03:13:38

+0

Thx for ur help,Rob。我已经知道了。 – user367856 2010-06-17 03:20:53

+0

我通过数据集存储和检索数据从gridView到注册表。 – user367856 2010-06-17 03:34:32

相关问题