⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uregmgr.pas

📁 很好的俄罗斯方块
💻 PAS
字号:
{   注册表操作单元  }
unit URegMgr;

interface
uses Windows, SysUtils, Classes,
     Registry, UGetName, URecord;

type
   TScoreRecord=record
      Name: string;
      Score: Integer;
      end;
var
   RecInfo: array [1..5] of TScoreRecord;

procedure LoadScore;
procedure CheckRegistry;
procedure InitRegistry(var Reg:TRegistry);
procedure CheckScore(Score: Integer);
procedure WriteRegistry;

implementation
uses UMain;

procedure InitRegistry(var Reg:TRegistry);
begin
   Reg.WriteString('BlueGame','true');
   Reg.WriteString('Name1','匿名');Reg.WriteInteger('Score1',0);
   Reg.WriteString('Name2','匿名');Reg.WriteInteger('Score2',0);
   Reg.WriteString('Name3','匿名');Reg.WriteInteger('Score3',0);
   Reg.WriteString('Name4','匿名');Reg.WriteInteger('Score4',0);
   Reg.WriteString('Name5','匿名');Reg.WriteInteger('Score5',0);
end;
procedure CheckRegistry;
var
   Reg: TRegistry;
   Exist: String;
begin
   Reg := TRegistry.Create;
   Reg.RootKey:=HKEY_LOCAL_MACHINE;
   Reg.OpenKey('Software\BlueGame',true);
   Exist := Reg.ReadString('BlueGame');
   if(Exist='')then
   begin
      InitRegistry(Reg);
      exit;
   end;
   Reg.Free;
end;

procedure LoadScore;
var
   Reg: TRegistry;
begin
   Reg := TRegistry.Create;
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   Reg.OpenKey('Software\BlueGame',true);
   RecInfo[1].Name := Reg.ReadString('Name1');
   RecInfo[2].Name := Reg.ReadString('Name2');
   RecInfo[3].Name := Reg.ReadString('Name3');
   RecInfo[4].Name := Reg.ReadString('Name4');
   RecInfo[5].Name := Reg.ReadString('Name5');
   RecInfo[1].Score := Reg.ReadInteger('Score1');
   RecInfo[2].Score := Reg.ReadInteger('Score2');
   RecInfo[3].Score := Reg.ReadInteger('Score3');
   RecInfo[4].Score := Reg.ReadInteger('Score4');
   RecInfo[5].Score := Reg.ReadInteger('Score5');
   Reg.Free;
end;

procedure CheckScore(Score: Integer);
var
   i,j: Integer;
   Name: String;
   HighScoreFrm: THighScoreForm;
begin
   HighScoreFrm := THighScoreForm.Create(frmGame.Owner);
   for i := 1 to 5 do
   begin
      if Score>RecInfo[i].Score then
      begin
         if(not frmGame.GetName(Name))then Exit;
         for j := 5 downto i+1 do
            RecInfo[j] := RecInfo[j-1];
         RecInfo[i].Score := Score;
         RecInfo[i].Name := Name;
         WriteRegistry;
         HighScoreFrm.ShowModal;
         Exit;
      end;
   end;
   HighScoreFrm.Free;
end;

procedure WriteRegistry;
var
   Reg: TRegistry;
begin
   Reg := TRegistry.Create;
   Reg.RootKey := HKEY_LOCAL_MACHINE;
   Reg.OpenKey('Software\BlueGame',true);
   Reg.WriteString('Name1',RecInfo[1].Name);
   Reg.WriteString('Name2',RecInfo[2].Name);
   Reg.WriteString('Name3',RecInfo[3].Name);
   Reg.WriteString('Name4',RecInfo[4].Name);
   Reg.WriteString('Name5',RecInfo[5].Name);
   Reg.WriteInteger('Score1',RecInfo[1].Score);
   Reg.WriteInteger('Score2',RecInfo[2].Score);
   Reg.WriteInteger('Score3',RecInfo[3].Score);
   Reg.WriteInteger('Score4',RecInfo[4].Score);
   Reg.WriteInteger('Score5',RecInfo[5].Score);
   Reg.Free;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -