还是关于动态创建控件的事件问题 |
缺席
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
我的代码如下:想得到的功能是每次开机都通过ONCREATE属性检查是否在添加到启动组,如果是的话,则CHECKBOX1.CHECKED,由于CHECKBOX1的控件是动态创建的,所以每次总是出错。请大侠们帮我看看那,谢谢了
[code delphi] private procedure CheckboxPress(Sender:TObject); procedure CreateCheckBox; public { Public declarations } end; var Form1: TForm1; implementation var reg:TRegistry; Checkbox1 :TCheckbox; {$R *.dfm} procedure TForm1.CheckboxPress(Sender:TObject); begin if TCheckBox(sender).Checked then begin reg:=TRegistry.Create; with reg do begin RootKey:=HKEY_LOCAL_MACHINE; OpenKey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN',False); WriteString('ReminDer',paramstr(0)); end; end else begin reg.RootKey:=HKEY_LOCAL_MACHINE; reg.OpenKey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN',False); reg.DeleteValue('ReminDer'); reg.Closekey; reg.Free ; end; end; procedure TForm1.CreateCheckBox; begin Checkbox1 :=TCheckbox.Create(StatusBar1); with Checkbox1 do begin Parent :=StatusBar1; Height :=StatusBar1.Height; Width :=StatusBar1.Panels.Items[2].Width 200; Left :=StatusBar1.Left 280; Visible :=True; Caption :='是否添加到启动组!'; TabStop:=false; OnClick:=CheckboxPress; end; end; procedure TForm1.FormCreate(Sender: TObject); begin CreateCheckBox; reg.OpenKey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN',False); if reg.KeyExists('ReminDer') then Checkbox1.checked:=true else Checkbox1.Checked :=false; end; [/code]
------
断断续续的学了几年,还是一个初学者,永远支持Delphi ! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
|
zhouying82
高階會員 發表:150 回覆:272 積分:189 註冊:2004-03-16 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
怎麼會找不到, 我下startrun 的第二筆就是了啊!
http://delphi.ktop.com.tw/board.php?cid=30&fid=69&tid=85432 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |