您现在的位置: 范文先生网 >> 理工论文 >> 计算机信息技术 >> 正文

利用Delphi编写Windows控制面板组件及实例

时间:2007-1-18栏目:计算机信息技术

Form2……,根据需要设计窗体界面。为简略起见,本文仅以Form1为例。
  
  ③Form1主要代码:(为编写基于Win32的CPL,本文以读写Windows注册表为例)
  
  在uses子句添加:Registry.//引用注册表单元
  
  在type部分声明变量:
  
  var
  
  Form1: TForm1;
  
  KeyHandle : HKEY;
  
  ValSize : longint;
  
  Option1 : Integer;
  
  Option2 : Integer;
  
  TForm1.FormActivate代码://打开Windows注册表,读取某特定键值
  
  procedure TForm1.FormActivate(Sender: TObject);
  
  begin
  
  RegOpenKeyEx(HKEY_CURRENT_CONFIG,
  
  'Software\Microsoft\windows\CurrentVersion\',
  
  0, KEY_ALL_ACCESS, KeyHandle);
  
  ValSize := SizeOf(Option1);
  
  RegQueryValueEx(KeyHandle,'WinA', nil, nil, @Option1,
  
  @ValSize);
  
  ValSize := SizeOf(Option2);
  
  RegQueryValueEx(KeyHandle,'WinB', nil, nil, @Option2,
  
  @ValSize);
  
  with Form1 do begin
  
  case Option1 of
  
  0: RadioGroup1.ItemIndex:=0;
  
  1: Radiogroup1.ItemIndex:=1;
  
  2: Radiogroup1.ItemIndex:=2;
  
  3: Radiogroup1.ItemIndex:=3;
  
  end;
  
  case Option2 of
  
  0: Radiogroup2.ItemIndex:=0;
  
  1: Radiogroup2.ItemIndex:=1;
  
  2: Radiogroup2.ItemIndex:=2;
  
  3: Radiogroup2.ItemIndex:=3;
  
  end;
  
  end;
  
  end;
  
  TForm1.CancelClick代码://关闭Form1,返回控制面板
  
  procedure TForm1.CancelClick(Sender: TObject);
  
  begin
  
  close;
  
  end;
  
  TForm1.ApplyClick代码://设置注册表键值
  
  procedure TForm1.ApplyClick(Sender: TObject);
  
  begin
  
  with Form1 do begin
  
  Option1:=Radiogroup1.ItemIndex;
  
  Option2:=Radiogroup2.ItemIndex;
  
  end;
  
  RegSetValueEx(KeyHandle,'WinA', 0, REG_BINARY, @Option1, SizeOf(Option1));
  
  RegSetValueEx(KeyHandle,'WinB', 0, REG_BINARY, @Option2, SizeOf(Option2));
  
  end;
  
  TForm1.FormClose代码://关闭注册表
  
  procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  
  begin
  
  RegCloseKey(KeyHandle);
  
  end;
  
  ④修改Project1代码如下:
  
  library Project1;
  
  uses
  
  Cpl,
  
  Windows,
  
  Forms,
  
  Unit1 in 'Un

上一页  [1] [2] [3] [4] 下一页

下页更精彩:1 2 3 4 下一页