procedure TForm1.N3Click(Sender: TObject);
var
MyReg:TRegistry;
begin
MyReg:=TRegistry.Create;
MyReg.RootKey:=HKEY_LOCAL_MACHINE;
if MyReg.OpenKey('\SOFTWARE\Microsoft\windows\CurrentVersion\run\',false) then
myreg.GetValueNames(listbox1.items);
//MyReg.WriteString('yhncom','yhncom');
showmessage(listbox1.items.Strings[listbox1.itemindex]);
showmessage(inttostr(listbox1.itemindex));
//myreg.DeleteValue(listbox1.items.Strings[listbox1.itemindex]);
//myreg.DeleteValue('yhncom');
end;
为什么showmessage显示的不是所选的项目:

解决方案 »

  1.   

    procedure TForm1.N3Click(Sender: TObject);
    var
    MyReg:TRegistry;
    begin
    MyReg:=TRegistry.Create;
    MyReg.RootKey:=HKEY_LOCAL_MACHINE;
    if MyReg.OpenKey('\SOFTWARE\Microsoft\windows\CurrentVersion\run\',false) then
    myreg.GetValueNames(listbox1.items);
    //MyReg.WriteString('yhncom','yhncom');
    if listbox1.itemindex=-1 then
     showmessage('你没有选中项!')
    else
     begin
      showmessage(listbox1.items.Strings[listbox1.itemindex]);
      showmessage(inttostr(listbox1.itemindex));
    //myreg.DeleteValue(listbox1.items.Strings[listbox1.itemindex]);
    //myreg.DeleteValue('yhncom');
     end;
    end;
    为什么showmessage显示的不是所选的项目:
      

  2.   

    listbox1.items.strings[listbox1.listitem]
    给分!!!
      

  3.   

    为什么showmessage显示的不是所选的项目:而是他上面的选项:
      

  4.   

    为什么showmessage显示的不是所选的项目:而是第一个,不管你怎么选,出现的都是第一个的值:高手在哪里呀?
      

  5.   

    to:lqdmafeng(小嘿) 伙计,listitem出错!
      

  6.   

    showmessage(listbox1.items.Strings[listbox1.itemindex]);
    我觉得这句话好象有点问题,我在网吧没机子可以试,回去我去看看,呵呵
      

  7.   

    showmessage(listbox1.Items[listbox1.ItemIndex]);
      

  8.   

    直接用 showmessage(listbox1.Itemindex)企不更简短?
      

  9.   

    不行呀?如果单独的话是可以的。    但是前面如果有下面这些语句的话就只能操作第一条,也就是说如果在下面这个语句后写showmessage(listbox1.Items[listbox1.ItemIndex]);仍然操作的是最上面的,就是说不能操作选中的项目,急救!
    MyReg:=TRegistry.Create;
    MyReg.RootKey:=HKEY_LOCAL_MACHINE;
    if MyReg.OpenKey('\SOFTWARE\Microsoft\windows\CurrentVersion\run\',false) then
    myreg.GetValueNames(listbox1.items);
      

  10.   

    myreg.GetValueNames(listbox1.items);是向把注册表的值传给,执行后ListBox1.items已被重新刷新
      

  11.   

    myreg.GetValueNames(listbox1.items);是把注册表的值传给listbox1.items,ListBox1.items重新刷新,showmessage(listbox1.items.Strings[listbox1.itemindex]);当然是-1