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

📄 settingfrm.pas

📁 《Delphi实例开发教程》源代码包说明
💻 PAS
字号:
unit SettingFrm;

interface

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

type
  TfrmSetting = class(TForm)
    cbAutoLoad: TCheckBox;
    sbOK: TSpeedButton;
    sbCancel: TSpeedButton;
    tbRollPace: TTrackBar;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    cbbNewsNum: TComboBox;
    Label1: TLabel;
    GroupBox3: TGroupBox;
    Label2: TLabel;
    cbbRefresh: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    GroupBox4: TGroupBox;
    Label5: TLabel;
    cbbNewsRefresh: TComboBox;
    cbRollNews: TCheckBox;
    RadioGroup1: TRadioGroup;
    procedure FormShow(Sender: TObject);
    procedure sbOKClick(Sender: TObject);
    procedure sbCancelClick(Sender: TObject);
    procedure autoload(flag: boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmSetting: TfrmSetting;setNews:boolean;setNewsNum:integer;

implementation
uses mainfrm, CustomSearchFrm, RollingNewsFrm;

{$R *.dfm}

procedure TfrmSetting.FormShow(Sender: TObject);
begin
    with frmMain.AdoqSetting do
    begin
      Close;
      Sql.Clear;
      Sql.Add('select * from setting');
      open;
      cbAutoLoad.Checked:=fieldbyname('AutoLoad').AsBoolean;
      tbRollPace.Position:=fieldbyname('Rollpace').AsInteger;
      cbbNewsNum.ItemIndex:=fieldbyname('Newsnum').AsInteger-3;
      cbbRefresh.ItemIndex:=fieldbyname('Refresh').AsInteger-2;
      cbbNewsRefresh.ItemIndex:=fieldbyname('NewsRefresh').AsInteger-2;
      cbRollNews.Checked:=fieldbyname('RollNews').AsBoolean;
    end;
  setNews:=cbrollnews.Checked;
  setNewsNum:=cbbNewsNum.ItemIndex;
end;

procedure TfrmSetting.autoload(flag: boolean);
var
  edtAutoload: Tedit;
  Reg: TRegistry;
  AppFileName: PChar;
begin
  edtAutoload:=Tedit.Create(nil);
   GetMem(AppFileName,256);
  edtAutoload.Text:=application.ExeName;
  edtAutoload.GetTextBuf(AppFileName,256);
  Reg:=TRegistry.Create;
  try
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    if (Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False))=True then
    begin
      // 在注册表中添加数值
      if flag=true then Reg.WriteString('ChannelPlayer',AppFileName)
      else Reg.DeleteValue('ChannelPlayer');
    end
    else
      MessageBox(Handle,'打开注册表失败。','错误',MB_OK+MB_ICONERROR);
  finally
    Reg.CloseKey;
    Reg.Free;
    FreeMem(AppFileName);
    edtAutoload.Free;
  end;
end;

procedure TfrmSetting.sbOKClick(Sender: TObject);
begin
 // with frmMain.qrySetting do
   with frmMain.AdoqSetting do
    begin
      close;
      sql.Clear;
      sql.Add('select * from setting');
      open;
      edit;
      fieldbyname('AutoLoad').AsBoolean:=cbAutoLoad.Checked;
      fieldbyname('Rollpace').AsInteger:=tbRollPace.Position;
      fieldbyname('Newsnum').AsInteger:=cbbNewsNum.ItemIndex+3;
      fieldbyname('Refresh').AsInteger:=cbbRefresh.ItemIndex+2;
      fieldbyname('NewsRefresh').AsInteger:=cbbNewsRefresh.ItemIndex+2;
      fieldbyname('RollNews').AsBoolean:=cbRollNews.Checked;
      post;
      try
        frmCustomSearch.tmRefresh.Interval:=(cbbRefresh.ItemIndex+2)*1000;
        frmRollingNews.tmNewsSearch.Interval:=(cbbNewsRefresh.ItemIndex+2)*60000;
        frmRollingNews.tmNewsSearch.Enabled:=cbRollNews.Checked;
        frmRollingNews.tmRollNews.Interval:=fieldbyname('Rollpace').AsInteger*25;
        frmRollingNews.cbbNewsNum.ItemIndex:=cbbNewsNum.ItemIndex;
      except
      end;
      // 调用系统加载函数
      autoload(cbAutoLoad.Checked);
    end;
      frmMain.lblRoll1.Visible:=false;
      frmMain.lblRoll2.Visible:=false;
      frmMain.lblRoll3.Visible:=false;
  if  cbRollNews.Checked=false then
    begin
      frmMain.pnlRollNews.Caption:='滚动新闻,最新报道,精彩无限。。。';
      frmRollingNews.tmRollNews.Enabled:=false;
    end
  else
    begin
    if (setNews=cbrollnews.Checked)and(setNewsNum=cbbNewsNum.ItemIndex) then
      begin
        frmMain.lblRoll1.Visible:=true;
        frmMain.lblRoll2.Visible:=true;
        frmMain.lblRoll3.Visible:=true;
      end
    else
      begin
        frmMain.pnlRollNews.Caption:='请稍候,正在更新新闻...';
        frmMain.Refresh;
        frmSetting.Hide;
        frmRollingNews.tmNewsSearchTimer(nil);
      end;
   end;
close;
end;

procedure TfrmSetting.sbCancelClick(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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