窗体打开时,检测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;
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;
2.form1上有没有使用保存窗口状态之类的组件
3.检查form1.Caption别的地方有没有赋值的地方
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:='**';
//
这一句没有在if then else 结构里面。
执行了 form1.Caption :='18岁以上小电影'+'(已注册)';
还会执行 form1.Caption :='18岁以上小电影'+'(未注册)';
所有Caption没有改过来
逻辑结构有问题:
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岁以上小电影'+'(未注册)';
//