请你编程!我是个苯鸟,测试通过送100分!先来先得!(100分)

  • 主题发起人 bluehouse
  • 开始时间
B

bluehouse

Unregistered / Unconfirmed
GUEST, unregistred user!
一打开程序便自动检查注册表1.HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/右边
是否有ProductId健,若有checkbox1.checked:=true ;
2.一打开程序便自动检查注册表1.HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/右边
ProductId是否有55660-005这个值,若有checkbox1.checked:=true ;
3.一打开程序便自动检查注册表1.HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/右边
ProductId是否是空值,若有checkbox1.checked:=true ;
我编了好几个流程都没实现,初学Delphi很笨,谢谢,100分只多不少!
 
你的逻辑有问题,大概实现了一个你看看吧,就是在刚才的上面改的

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Registry;

type
TForm1 = class(TForm)
Label1: TLabel;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
TempReg:TRegistry;
TempValue:string;
begin
CheckBox1.Checked := False;
TempReg:=TRegistry.Create;
try
TempReg.RootKey:=HKEY_LOCAL_MACHINE;
if TempReg.OpenKey('/Software/Microsoft/Windows/CurrentVersion/',false) then
begin
if tempreg.ValueExists('ProductId') then
begin
TempValue:=TempReg.ReadString('ProductId');
Label1.Caption:=TempValue;
if Pos('55660-005', TempValue) > 0 then
CheckBox1.Checked := True;
end
else
ShowMessage('ProductID is not exist!');
end;
finally
TempReg.CloseKey;
TempReg.Free;
end;
end;
end.
 
procedure TForm1.FormActivate(Sender: TObject);
var
Reg : TRegistry;
Flag : boolean;
begin
Flag:=false;
Reg := TRegistry.Create;
try
Reg.RootKey := 'HKEY_LOCAL_MACHINE';
if Reg.OpenKey('/Software/Microsoft/Windows/CurrentVersion/ProductId',false) then Flag:=true;
//Registry.ReadString('ProductId')
//所有,你想判断的,等等.....
finally
Reg.Free;
end;
if Flag then Checkbox1.checked:=true;

end;
 
啊,,受不了了,,,这种问题,,,,,,!!!
 
bluehouse:

你的这个问题我不是已经给你会答了吗????难道不对??

你用ReadString的方法后,用比较符“<>”来比较你的期望值和读出来的值,不就可以知道
结果了吗?
 
tseug,兄台,你的程序语法通过,但没实现我的要求,没任何显示,Labe1没反应,checkbox也没反应!
 
gong666,兄台,你的程序在编译时procedure TForm1.FormActivate(Sender: TObject);
出错!
 
HeyTommy兄台,我初学Delphi,这个问题困绕了我好几天,程序对了却没实现功能,你照我的要求编个代码
,我编译通过,连剩下的55分也送上!
 
bluehouse,你将HeyTommy的那段代码放在FormShow事件中试试吧。
------------------------------------------------------------------
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Registry;

type
TForm1 = class(TForm)
Label1: TLabel;
CheckBox1: TCheckBox;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
var
TempReg:TRegistry;
TempValue:string;
begin
CheckBox1.Checked := False;
TempReg:=TRegistry.Create;
try
TempReg.RootKey:=HKEY_LOCAL_MACHINE;
if TempReg.OpenKey('/Software/Microsoft/Windows/CurrentVersion/',false) then
begin
if tempreg.ValueExists('ProductId') then
begin
TempValue:=TempReg.ReadString('ProductId');
Label1.Caption:=TempValue;
if Pos('55660-005', TempValue) > 0 then
CheckBox1.Checked := True;
end
else
ShowMessage('ProductID is not exist!');
end;
finally
TempReg.CloseKey;
TempReg.Free;
end;
end;
end.
有效果吗???
 
不会吧。这种问题。唉。。。。多练练算法吧。
 
[red]这个问题还没搞定?给个e-mail,我给你完整的工程??

几分钟就可以搞定的问题,,在论坛上立了这么久!!!!![/red]
 
晶晶,兄台没效果! my Email:thebluehouse@163.com QQ:108438328
 
给你发出去了!!!
 
公布源码
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
507
import
I
顶部