窗体打开时,检测Software\Microsoft\Windows\CurrentVersion\下有没有myregid键,没有就创建一个,赋值为字符串'0',有的话就检测myregid的键值是否为字符串'123456',是的话就是注册用户,form1的caption就会改,但是这段程序改不过来caption,不知道错在哪里,请指教!procedure TForm1.FormCreate(Sender: TObject);
var
reg: TRegistry;
readid: string;
begin
  reg := TRegistry.Create;//检测注册表是否注册用户
  with reg do
  begin
    ROOTKEY:= HKEY_LOCAL_MACHINE;
    if reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\',True) then
      begin
        if valueexists('myregid') then
        begin
           readid := reg.ReadString('myregid');
           if (readid='123456') then
              form1.Caption :='18岁以上小电影'+'(已注册)';
        end
        else
          reg.WriteString('myregid','0');
          form1.Caption :='18岁以上小电影'+'(未注册)';
        end;
  end;
    reg.CloseKey;
    reg.Free;
end;

解决方案 »

  1.   

    1.跟踪一下form1.Caption 是否被赋值
    2.form1上有没有使用保存窗口状态之类的组件
    3.检查form1.Caption别的地方有没有赋值的地方
      

  2.   

    代码没有问题。你可以在reg.free后面加一行ShowMessage(Caption);看看在这段代码执行完毕以后Form的Caption被改变了没有。如果标题已改变而窗体显示出来以后标题不正确,再检查其他地方是否有代码对Caption重新赋过值。
      

  3.   

    逻辑结构有问题:
               if valueexists('myregid') then
            begin
                readid := reg.ReadString('myregid');
                 if (readid='123456') then
                   form1.Caption :='18岁以上小电影'+'(已注册)';
    //该为
                 ...
         if (readid='123456') then form1.caption:='**' 
             else
              form1.caption:='**';
    //
      

  4.   

    form1.Caption :='18岁以上小电影'+'(未注册)';
    这一句没有在if then else 结构里面。
    执行了 form1.Caption :='18岁以上小电影'+'(已注册)';
    还会执行 form1.Caption :='18岁以上小电影'+'(未注册)';
    所有Caption没有改过来
      

  5.   

    晕。。
    逻辑结构有问题:
               if valueexists('myregid') then
            begin
                readid := reg.ReadString('myregid');
                 if (readid='123456') then
                   form1.Caption :='18岁以上小电影'+'(已注册)';
    //改为
                 ...
           if valueexists('myregid') then
            begin
                readid := reg.ReadString('myregid');
           if (readid='123456') then form1.caption:=''18岁以上小电影'+'(已注册)' 
             else
              form1.caption:=''18岁以上小电影'+'(未注册)';
    //