📄 config.pas
字号:
unit Config;
{版权所有 枫叶在线 HTTP://WWW.SKYGZ.COM SKYGZ@QQ.COM 风铃夜思雨}
interface
uses
Windows, Forms, SysUtils, Controls, Classes,
StdCtrls, ComCtrls, IniFiles;
type
TFrmConfig = class(TForm)
CmdOk: TButton;
CmdCancel: TButton;
ListView1: TListView;
LbMailAddr: TLabel;
LbMailUser: TLabel;
LbMailPop3: TLabel;
LbMailPass: TLabel;
TxtTime: TEdit;
TxtMailPass: TEdit;
TxtMailPop3: TEdit;
TxtMailUser: TEdit;
TxtMailAddr: TEdit;
IsChk: TCheckBox;
CmdAdd: TButton;
LbTime: TLabel;
procedure CmdCancelClick(Sender: TObject);
procedure CmdOkClick(Sender: TObject);
procedure ListView1DblClick(Sender: TObject);
procedure IsChkClick(Sender: TObject);
procedure CmdAddClick(Sender: TObject);
procedure TxtTimeKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
MaxTime: Integer;
procedure RWINI(B: Boolean);
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
var
FrmConfig: TFrmConfig;
implementation
uses In_Mail_Dll;
{$R *.dfm}
procedure TFrmConfig.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
// Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST or WS_EX_TOOLWINDOW;
Params.WndParent := ExeHandle;
end;
procedure TFrmConfig.RWINI(B: Boolean);
var Ini: TIniFile;
TmpStr: string;
i, Count, iTime: Integer;
List: TListItem;
begin
TmpStr := StrPas(GetDllPath);
TmpStr := ExtractFilePath(TmpStr) + Copy(ExtractFileName(TmpStr), 1, Pos('.', ExtractFileName(TmpStr)) - 1) + '.ini';
if B then
begin
Ini := TIniFile.Create(TmpStr);
Count := Ini.ReadInteger('Config', 'Count', 1);
ListView1.Items.Clear;
for i := 1 to Count do
begin
List := ListView1.Items.Add;
List.Caption := Ini.ReadString('Config', 'ID-' + IntToStr(i), '');
List.SubItems.Add(Ini.ReadString('Config', 'POP3-' + IntToStr(i), ''));
List.SubItems.Add(Ini.ReadString('Config', 'USER-' + IntToStr(i), ''));
List.SubItems.Add(Ini.ReadString('Config', 'PASS-' + IntToStr(i), ''));
iTime := Ini.ReadInteger('Config', 'TIME-' + IntToStr(i), 30);
List.SubItems.Add(IntToStr(iTime));
if MaxTime < iTime then MaxTime := iTime;
end;
Ini.Free;
end else
begin
DeleteFile(TmpStr);
Ini := TIniFile.Create(TmpStr);
Ini.WriteInteger('Config', 'Count', ListView1.Items.Count);
for i := 0 to ListView1.Items.Count - 1 do
begin
Ini.WriteString('Config', 'ID-' + IntToStr(i + 1), ListView1.Items[i].Caption);
Ini.WriteString('Config', 'POP3-' + IntToStr(i + 1), ListView1.Items[i].SubItems.Strings[0]);
Ini.WriteString('Config', 'USER-' + IntToStr(i + 1), ListView1.Items[i].SubItems.Strings[1]);
Ini.WriteString('Config', 'PASS-' + IntToStr(i + 1), ListView1.Items[i].SubItems.Strings[2]);
iTime := StrToInt(ListView1.Items[i].SubItems.Strings[3]);
Ini.WriteInteger('Config', 'TIME-' + IntToStr(i + 1), iTime);
if MaxTime < iTime then MaxTime := iTime;
end;
Ini.Free;
end;
end;
procedure TFrmConfig.CmdCancelClick(Sender: TObject);
begin
close;
end;
procedure TFrmConfig.CmdOkClick(Sender: TObject);
begin
RWINI(false);
close;
end;
procedure TFrmConfig.ListView1DblClick(Sender: TObject);
begin
ListView1.DeleteSelected;
end;
procedure TFrmConfig.IsChkClick(Sender: TObject);
begin
if IsChk.Checked then TxtTime.Enabled := true else TxtTime.Enabled := false;
end;
procedure TFrmConfig.CmdAddClick(Sender: TObject);
function ChkList(List: TListView; Str: string): Boolean;
var i: Integer;
begin
result := false;
for i := 0 to List.Items.Count - 1 do
begin
if UpperCase(Str) = UpperCase(List.Items[i].Caption) then
begin
result := true;
Exit;
end;
end;
end;
function IsEMail(const EMail: string): Boolean;
var
S: string;
iPos: Integer;
begin
iPos := Pos('@', EMail);
if iPos > 1 then
begin
S := Copy(EMail, iPos + 1, Length(EMail) - iPos);
iPos := Pos('.', S);
if (iPos > 1) and (Copy(S, iPos + 1, Length(S)) <> '') then
result := true
else result := false;
end
else
result := false;
end;
function IsNum(const Str: string): Boolean;
var i: Integer;
C: Char;
begin
result := false;
for i := 1 to Length(Str) do
begin
C := Str[i];
if not (C in ['0'..'9']) then
begin
result := true;
Exit;
end;
end;
end;
var List: TListItem;
begin
if TxtMailAddr.Text = '' then
begin
MessageBox(Handle, '请输入您的邮件地址!', '提示', MB_ICONHAND);
TxtMailAddr.SetFocus;
Exit;
end;
if IsEMail(TxtMailAddr.Text) = false then
begin
MessageBox(Handle, '您的邮件地址不正确!', '提示', MB_ICONHAND);
TxtMailAddr.SetFocus;
Exit;
end;
if ChkList(ListView1, TxtMailAddr.Text) then
begin
MessageBox(Handle, '此邮件地址已存在!', '提示', MB_ICONHAND);
TxtMailAddr.SetFocus;
Exit;
end;
if TxtMailPop3.Text = '' then
begin
MessageBox(Handle, '请输入您的POP3地址!', '提示', MB_ICONHAND);
TxtMailPop3.SetFocus;
Exit;
end;
if TxtMailUser.Text = '' then
begin
MessageBox(Handle, '请输入您的邮件账号!', '提示', MB_ICONHAND);
TxtMailUser.SetFocus;
Exit;
end;
if TxtMailPass.Text = '' then
begin
MessageBox(Handle, '请输入您的邮件密码!', '提示', MB_ICONHAND);
TxtMailPass.SetFocus;
Exit;
end;
if IsNum(TxtTime.Text) then
begin
MessageBox(Handle, '只能输入数字!', '提示', MB_ICONHAND);
TxtTime.SetFocus;
Exit;
end;
List := ListView1.Items.Add;
List.Caption := TxtMailAddr.Text;
List.SubItems.Add(TxtMailPop3.Text);
List.SubItems.Add(TxtMailUser.Text);
List.SubItems.Add(base64encode(TxtMailPass.Text));
if IsChk.Checked then List.SubItems.Add(TxtTime.Text) else List.SubItems.Add('-1');
TxtMailAddr.Clear;
TxtMailPop3.Clear;
TxtMailUser.Clear;
TxtMailPass.Clear;
TxtTime.Text := '15';
IsChk.Checked := true;
end;
procedure TFrmConfig.TxtTimeKeyPress(Sender: TObject; var Key: Char);
begin
if (Key > Chr(57)) or (Key < Chr(48)) and (Key <> Chr(8)) then Key := #0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -