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

📄 unit_system.pas

📁 网上天气预报,可以实时查看不地的天气情况,界面美观大方,欢迎下载
💻 PAS
字号:
unit Unit_System;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,Unit_Const,
  Dialogs, ExtCtrls, Buttons, StdCtrls, GIFImage,ComCtrls,IniFiles,Registry;

type
  TFrm_System = class(TForm)
    Shape1: TShape;
    Exit_Btn: TSpeedButton;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    Label1: TLabel;
    Quit_Btn: TSpeedButton;
    Write_Btn: TSpeedButton;
    OK_Btn: TSpeedButton;
    Image1: TImage;
    TimePicker1: TDateTimePicker;
    Chk1: TCheckBox;
    Label2: TLabel;
    TimePicker2: TDateTimePicker;
    Chk2: TCheckBox;
    Label3: TLabel;
    TimePicker5: TDateTimePicker;
    Chk5: TCheckBox;
    Label6: TLabel;
    TimePicker6: TDateTimePicker;
    Chk6: TCheckBox;
    Label7: TLabel;
    TimePicker11: TDateTimePicker;
    Chk11: TCheckBox;
    Label12: TLabel;
    Chk3: TCheckBox;
    TimePicker3: TDateTimePicker;
    Label4: TLabel;
    Chk4: TCheckBox;
    TimePicker4: TDateTimePicker;
    Label5: TLabel;
    Chk7: TCheckBox;
    TimePicker7: TDateTimePicker;
    Label8: TLabel;
    Label9: TLabel;
    TimePicker8: TDateTimePicker;
    Chk8: TCheckBox;
    Chk9: TCheckBox;
    TimePicker9: TDateTimePicker;
    Label10: TLabel;
    Label11: TLabel;
    TimePicker10: TDateTimePicker;
    Chk10: TCheckBox;
    Label13: TLabel;
    TimePicker12: TDateTimePicker;
    Chk12: TCheckBox;
    Rain_Edit: TEdit;
    Label15: TLabel;
    Mobile_Edit: TEdit;
    Label16: TLabel;
    Label17: TLabel;
    City_Edit: TEdit;
    Label18: TLabel;
    IP_Edit: TEdit;
    Start_Chk: TCheckBox;
    IconVis_Chk: TCheckBox;
    Hide_Chk: TCheckBox;
    Label19: TLabel;
    Edit6: TEdit;
    Label20: TLabel;
    HotKey_Edit: TEdit;
    procedure Shape1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Quit_BtnClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Write_BtnClick(Sender: TObject);
    procedure OK_BtnClick(Sender: TObject);
    procedure HotKey_EditKeyPress(Sender: TObject; var Key: Char);
    procedure Exit_BtnClick(Sender: TObject);
  private
    { Private declarations }
     ParamIni : TIniFile;
     procedure ReadParam;
     Procedure WriteParam;
  public
    { Public declarations }
  end;

var
  Frm_System: TFrm_System;

implementation

uses Unit_Weather;

{$R *.dfm}


procedure TFrm_System.Shape1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const
     SC_DRAGMOVE:Longint=$F012; //无标题栏拖动窗口
begin
     ReleaseCapture;
     SendMessage(Handle,WM_SYSCOMMAND,SC_DRAGMOVE,0);
end;

procedure TFrm_System.Quit_BtnClick(Sender: TObject);
begin
     Close;
end;

procedure TFrm_System.ReadParam;//读参数
var
     I : Byte;
     Reg:TRegistry;
begin
     try
        ParamIni:=TIniFile.Create(AppPath+'Weather.ini');
        for I:=1 to 12 do
        begin
             TDateTimePicker(Self.FindComponent('timepicker'+IntToStr(I))).Time:=
                      StrToTime(ParamIni.ReadString('time','time'+IntToStr(I),'00:00'));
             TCheckBox(Self.FindComponent('chk'+IntToStr(I))).Checked:=
                      ParamIni.ReadBool('time','on'+IntToStr(I),False);
        end;
        Rain_Edit.Text:=ParamIni.ReadString('URL','rainURL','');
        Mobile_Edit.Text:=ParamIni.ReadString('URL','MobileURL','');
        City_Edit.Text:=ParamIni.ReadString('city','cityname','');
        IP_Edit.Text:=ParamIni.ReadString('ip','ip','');
        
        IconVis_Chk.Checked:=ParamIni.ReadBool('system','iconvisable',False);
        HotKey_Edit.Text:=ParamIni.ReadString('Hotkey','key','G');
        ParamIni.Free;

        Reg:=TRegistry.Create;//创建
        Reg.RootKey:=HKEY_LOCAL_MACHINE;//根键
        if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False) then
        begin
            if Reg.ReadString('Weather')='' then
               Start_Chk.Checked:=False
            else
               Start_Chk.Checked:=True;
            Reg.CloseKey;
        end;
        Reg.Free;
        
     except
        ParamIni.Free;
        Application.MessageBox('读取参数异常失败!','提示',MB_OK+MB_ICONSTOP);
     end;
end;

procedure TFrm_System.WriteParam;//写参数
var
     I : Byte;
     Reg:TRegistry;
begin
     try
        ParamIni:=TIniFile.Create(AppPath+'Weather.ini');
        for I:=1 to 12 do
        begin
             ParamIni.WriteString('time','time'+IntToStr(I),
                  TimeToStr(TDateTimePicker(Self.FindComponent('timepicker'+IntToStr(I))).Time));
             ParamIni.WriteBool('time','on'+IntToStr(I),TCheckBox(Self.FindComponent('chk'+IntToStr(I))).Checked);
        end;
        ParamIni.WriteString('URL','rainURL',Rain_Edit.Text);
        ParamIni.WriteString('URL','MobileURL',Mobile_Edit.Text);
        ParamIni.WriteString('city','cityname',City_Edit.Text);
        ParamIni.WriteBool('system','iconvisable',IconVis_Chk.Checked);
        ParamIni.WriteString('Hotkey','key',HotKey_Edit.Text);
        ParamIni.Free;

        Reg:=TRegistry.Create;
        Reg.RootKey:=HKEY_LOCAL_MACHINE;
        if Reg.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',False) then  //第二个参数代表没有
        begin                                                                       // 是否要自动创键
            if Start_Chk.Checked then
               Reg.WriteString('Weather',Application.ExeName)
            else
               Reg.DeleteValue('Weather');
            Reg.CloseKey;
        end;
        Reg.Free;

        Frm_Weather.ReadSysParam; //重新读取参数
        
     except
        ParamIni.Free;
        Application.MessageBox('写入参数异常失败!','提示',MB_OK+MB_ICONSTOP);
     end;
end;

procedure TFrm_System.FormCreate(Sender: TObject);
begin
     ReadParam;
end;

procedure TFrm_System.Write_BtnClick(Sender: TObject);
begin
     WriteParam;
end;

procedure TFrm_System.OK_BtnClick(Sender: TObject);
begin
     WriteParam;
     Close;
end;

procedure TFrm_System.HotKey_EditKeyPress(Sender: TObject; var Key: Char);
begin
     if not (key in ['a'..'z','A'..'Z']) then
        key:=#0
     else
     begin
        HotKey_Edit.Text:='';
        key:=UpCase(key);
     end;
end;

procedure TFrm_System.Exit_BtnClick(Sender: TObject);
begin
     Close;
end;

end.

⌨️ 快捷键说明

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