📄 settingfrm.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 + -