?? config.~pas
字號:
unit Config;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons, mmSystem, CoreData, iniFiles, Account,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdPOP3;
type
TfrmConfig = class(TForm)
btnOK: TBitBtn;
btnCancel: TBitBtn;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label1: TLabel;
Label2: TLabel;
GroupBox1: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
cmbBaudRate: TComboBox;
cmbParity: TComboBox;
cmbDatabits: TComboBox;
cmbStopbits: TComboBox;
cmbCom: TComboBox;
GroupBox2: TGroupBox;
Label9: TLabel;
edtWaveFile: TEdit;
btnOpenDlg: TButton;
btnPlay: TButton;
Label10: TLabel;
edtInterval: TEdit;
Label11: TLabel;
edtTimeOut: TEdit;
chkHide: TCheckBox;
dlgOpenFile: TOpenDialog;
TabSheet3: TTabSheet;
GroupBox3: TGroupBox;
Label3: TLabel;
edtSMSCenter: TEdit;
Label12: TLabel;
RadText: TRadioButton;
RadPdu: TRadioButton;
procedure btnOpenDlgClick(Sender: TObject);
procedure btnPlayClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnOKClick(Sender: TObject);
procedure ReadConfig();
procedure SaveConfig();
procedure FormCreate(Sender: TObject); // 釋放所有的內存
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmConfig: TfrmConfig;
m_Config : TConfigInfo; // 存儲檢測參數和短信參數設置
m_Com : TComInfo; // 串口參數
m_MainhWnd : HWND; // 主窗口句柄
implementation
{$R *.dfm}
//
// 彈出打開對話框,選擇聲音文件
//
procedure TfrmConfig.btnOpenDlgClick(Sender: TObject);
begin
if dlgOpenFile.Execute then
edtWaveFile.Text := dlgOpenFile.FileName;
end;
//
// 播放按鈕單擊事件處理函數
//
procedure TfrmConfig.btnPlayClick(Sender: TObject);
begin
if edtWaveFile.Text <> '' then
sndPlaySound(PChar(edtWaveFile.Text), SND_ASYNC);
end;
//
// 窗體顯示時觸發此事件
//
procedure TfrmConfig.FormShow(Sender: TObject);
var
strInterval, strTimeOut : string;
begin
//
// 初始化 檢測參數 屬性頁
//
with m_Config do
begin
edtWaveFile.Text := m_WaveFile;
if m_Interval > 99 then m_Interval := 99;
if m_Interval < 1 then m_Interval := 1;
if m_TimeOut > 10 then m_TimeOut := 10;
if m_TimeOut < 1 then m_TimeOut := 1;
str(m_Interval, strInterval);
str(m_Timeout, strTimeOut);
edtInterval.Text := strInterval;
edtTimeOut.text := strTimeOut;
chkHide.Checked := m_Hide;
end;
//
// 初始化 串口參數 屬性頁
//
with m_Com do
begin
cmbParity.SelText := m_Parity;
cmbBaudRate.SelText := m_BaudRate;
cmbDataBits.SelText := m_DataBits;
cmbStopBits.SelText := m_StopBits;
//cmbCom.SelText := m_ComPort;
if m_ComPort < 1 then
m_ComPort := 1
else if m_ComPort > 4 then
m_ComPort := 4;
cmbCom.ItemIndex := m_ComPort - 1;
end;
//
// 初始化 短信參數 屬性頁
//
with m_Config do
begin
edtSMSCenter.Text := m_SMSCenter;
if m_SMSMode = 'Text' then
radText.Checked := True
else
radPdu.Checked := True;
end;
end;
//
// "確定"按鈕單擊事件處理函數
//
procedure TfrmConfig.btnOKClick(Sender: TObject);
begin
//
// 短信中心完整心檢查
//
if (length(edtSMSCenter.Text) <> 11) and (length(edtSMSCenter.Text) <> 13) then
begin
if MessageBox(self.Handle, '您輸入的短信中心可能不正確,仍然繼續嗎?', '警告', MB_YESNO) = IDNO then
begin
frmConfig.ModalResult := mrNone;
exit;
end;
end;
//
// 保存 檢測參數 屬性頁內容
//
with m_Config do
begin
m_WaveFile := edtWaveFile.Text;
m_Interval := StrToInt(edtInterval.Text);
m_TimeOut := StrToInt(edtTimeOut.Text);
m_Hide := chkHide.Checked;
if m_Interval > 99 then m_Interval := 99;
if m_Interval < 1 then m_Interval := 1;
if m_TimeOut > 10 then m_TimeOut := 10;
if m_TimeOut < 1 then m_TimeOut := 1;
end;
//
// 保存 串口參數 屬性頁內容
//
with m_Com do
begin
m_BaudRate := cmbBaudRate.Text;
m_Parity := cmbParity.Text;
m_DataBits := cmbDataBits.Text;
m_StopBits := cmbStopBits.Text;
m_ComPort := cmbCom.ItemIndex + 1;
end;
//
// 保存 短信參數 屬性頁內容
//
if length(edtSMSCenter.Text ) = 11 then
edtSMSCenter.Text := '86' + edtSMSCenter.Text;
with m_Config do
begin
m_SMSCenter := edtSMSCenter.Text;
if radText.Checked then
m_SMSMode := 'Text'
else
m_SMSMode := 'Pdu';
end;
//
// 保存到文件
//
SaveConfig();
end;
//
// 讀取設置信息
//
procedure TfrmConfig.ReadConfig;
var
Configini: TIniFile;
FileName : string;
begin
FileName := ExtractFilePath(ParamStr(0)) + 'MailConfig.ini';
if not FileExists(FileName) then
exit;
ConfigIni := TIniFile.Create(FileName);
with Configini do
begin
//
// 連接參數設置
//
m_Config.m_WaveFile := ReadString('POPConfig', 'WaveFile', '');
m_Config.m_Interval := ReadInteger('POPConfig', 'Interval', 5);
m_Config.m_TimeOut := ReadInteger('POPConfig', 'Timeout', 2);
m_Config.m_Hide := ReadBool('POPConfig', 'Hide', True);
//
// 串口參數設置
//
m_Com.m_BaudRate := ReadString('ComConfig', 'BaudRate', '19200');
m_Com.m_Parity := ReadString('ComConfig', 'Parity', 'None');
m_Com.m_DataBits := ReadString('ComConfig', 'DataBits', '8');
m_Com.m_StopBits := ReadString('ComConfig', 'StopBits', '1');
m_Com.m_ComPort := ReadInteger('ComConfig', 'ComPort', 1);
//
// 短信設置參數
//
m_Config.m_SMSCenter := ReadString('SMSConfig', 'SMSC', '13800138000');
m_Config.m_SMSMode := ReadString('SMSConfig', 'SMSMode', 'Pdu');
end;
ConfigIni.Free;
end;
//
// 保存設置信息
//
procedure TfrmConfig.SaveConfig;
var
Configini: TIniFile;
begin
ConfigIni := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'MailConfig.ini');
with Configini do
begin
//
// 連接參數設置
//
WriteString('POPConfig', 'WaveFile', m_Config.m_WaveFile);
WriteInteger('POPConfig', 'Interval', m_Config.m_Interval);
WriteInteger('POPConfig', 'Timeout', m_Config.m_TimeOut);
WriteBool('POPConfig', 'Hide', m_Config.m_Hide);
//
// 串口參數設置
//
WriteString('ComConfig', 'BaudRate', m_Com.m_BaudRate);
WriteString('ComConfig', 'Parity', m_Com.m_Parity);
WriteString('ComConfig', 'DataBits', m_Com.m_DataBits);
WriteString('ComConfig', 'StopBits', m_Com.m_StopBits);
WriteInteger('ComConfig', 'ComPort', m_Com.m_ComPort);
//
// 短信參數設置
//
WriteString('SMSConfig', 'SMSC', m_Config.m_SMSCenter);
WriteString('SMSConfig', 'SMSMode', m_Config.m_SMSMode);
end;
ConfigIni.Free;
end;
//
// 窗體創建時觸發此事件
//
procedure TfrmConfig.FormCreate(Sender: TObject);
begin
//
// 讀取配置信息
//
ReadConfig();
//
// 向主窗口發送消息,通知主窗口配置信息已經讀取完畢
//
PostMessage(m_MainhWnd, WM_INIFINISHED, 0, 0);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -