unitregister.pas

来自「关于手持机的LCD显示模块的设计LCD的显示固定为每行16个字符」· PAS 代码 · 共 96 行

PAS
96
字号
unit UnitRegister;

interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
 Dialogs, ComCtrls, ExtCtrls, StdCtrls,registry;

 Var


   Reg:Tregistry;
   KeyName:string;
   RegCreatTrueOrFalse:boolean;
   ComPortNumberStr:string;
   ComBaudrateSet:integer;
   procedure EditValueInput(Sender: TObject; var Key: Char);
   function RegisterReadForComSetUp(RegisterCardDirectory:string; RegisterKeyName:string):string;
   procedure RegisterFirstWriteForComSetUp(RegisterCardDirectory:string; RegisterKeyName:string;RegisterKeyValue:string);
   procedure RegisterWriteForComSetUp(RegisterCardDirectory:string; RegisterKeyName:string;RegisterKeyValue:string);
implementation

procedure EditValueInput(Sender: TObject; var Key: Char);
var e:TEdit;
begin
  e:= Sender as TEdit;
  if not(key in [#48..#57,'.','-',#8])
      or(key='-')and(e.SelStart>0)
      or(key='.')and(pos( '.',e.Text)>0)then key:=#0;

end;


function RegisterReadForComSetUp(RegisterCardDirectory:string; RegisterKeyName:string):string;
 begin
    try
      //创建注册表,有该键则读取,无则创建
      Reg:=Tregistry.Create ;
      Reg.RootKey :=hkey_local_machine;
      KeyName:='Software\SearialCardWriteReadData\' +RegisterCardDirectory;
      RegCreatTrueOrFalse :=Reg.OpenKey(KeyName,false);
      Reg.CloseKey ;
      if  Reg.OpenKey(KeyName,true) then
          if Reg.ReadString(RegisterKeyName)='' then
                showmessage('还没有在注册表中写入串口信息!')
              else
                result:=Reg.ReadString(RegisterKeyName);

    Reg.CloseKey ;
    finally
       Reg.Free ;
    end;
end;

procedure RegisterFirstWriteForComSetUp(RegisterCardDirectory:string; RegisterKeyName:string;RegisterKeyValue:string);
var
  Reg:Tregistry;
  KeyName:string;
   begin
    try
      //创建注册表,有该键则读取,无则创建
      Reg:=Tregistry.Create ;
      Reg.RootKey :=hkey_local_machine;
      KeyName:='Software\SearialCardWriteReadData\' +RegisterCardDirectory;
      if  Reg.OpenKey(KeyName,true) then
          if Reg.ReadString(RegisterKeyName)='' then
                Reg.WriteString(RegisterKeyName,RegisterKeyValue);

    Reg.CloseKey ;
    finally
       Reg.Free ;
    end;
end;

procedure RegisterWriteForComSetUp(RegisterCardDirectory:string; RegisterKeyName:string;RegisterKeyValue:string);
var
  Reg:Tregistry;
  KeyName:string;
   begin
    try
      //创建注册表,有该键则读取,无则创建
      Reg:=Tregistry.Create ;
      Reg.RootKey :=hkey_local_machine;
      KeyName:='Software\SearialCardWriteReadData\' +RegisterCardDirectory;
      if  Reg.OpenKey(KeyName,true) then
            Reg.WriteString(RegisterKeyName,RegisterKeyValue);

    Reg.CloseKey ;
    finally
       Reg.Free ;
    end;
end;



end.

⌨️ 快捷键说明

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