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

📄 faccount.pas

📁 Delphi编写的一个支持语法高亮显示和很多语言的文本编辑器
💻 PAS
字号:
unit fAccount;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ExtCtrls, ImgList, inifiles, strUtils,
  CorelButton;

type
  TfrmAccount = class(TForm)
    lstAccounts: TListView;
    lblConnection: TLabel;
    edtConnect: TEdit;
    bvlSplit: TBevel;
    lblURL: TLabel;
    edtURL: TEdit;
    lblUser: TLabel;
    edtUser: TEdit;
    lblPassword: TLabel;
    edtPassword: TEdit;
    lblPort: TLabel;
    edtPort: TEdit;
    chkAnonymous: TCheckBox;
    gpTransfer: TGroupBox;
    rdASCII: TRadioButton;
    rdBinary: TRadioButton;
    lblType: TLabel;
    cmbServer: TComboBox;
    gbFirewall: TGroupBox;
    chkProxy: TCheckBox;
    edtProxy: TEdit;
    lblProxy: TLabel;
    bvlMid: TBevel;
    bvlBottom: TBevel;
    btnSave: TCorelButton;
    btnDelete: TCorelButton;
    btnOK: TCorelButton;
    btnCancel: TCorelButton;
    imgMain: TImageList;
    procedure FormCreate(Sender: TObject);
    procedure LoadItems;
    procedure btnSaveClick(Sender: TObject);
    procedure chkProxyClick(Sender: TObject);
    procedure chkAnonymousClick(Sender: TObject);
    procedure lstAccountsClick(Sender: TObject);
    procedure btnDeleteClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure edtConnectEnter(Sender: TObject);
    procedure edtConnectExit(Sender: TObject);
  private
    procedure SelAll(edt: TEdit);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmAccount: TfrmAccount;

implementation

uses fFTP;

{$R *.dfm}
procedure TfrmAccount.LoadItems;
var
  SRec : TSearchRec;
  b: Boolean;
  lItem: TListItem;
begin
  lstAccounts.Clear;
  b:=(FindFirst(ExtractFilePath(Application.ExeName) + 'accounts\*.ftp',faAnyFile, SRec)=0);
  while b do begin
    lItem := TListView(lstAccounts).Items.Add;
    lItem.caption := SRec.Name;
    lItem.ImageIndex := 0;
    b:=(FindNext(SRec)=0);
  end;
end;

procedure TfrmAccount.FormCreate(Sender: TObject);
begin
  LoadItems;
end;

procedure TfrmAccount.btnSaveClick(Sender: TObject);
var
  ini: TIniFile;
  tType: Integer;
begin
  ini := TInifile.Create(ExtractFilePath(Application.ExeName) + 'accounts\' + edtConnect.Text + '.ftp');
  ini.WriteString('FTP', 'URL', edtURL.Text);
  ini.WriteString('FTP', 'Username', edtUser.Text);
  ini.WriteString('FTP', 'Password', edtPassword.Text);
  ini.WriteInteger('FTP', 'Port', StrToInt(edtPort.Text));
  ini.WriteInteger('FTP', 'ServerType', cmbServer.ItemIndex);
  if rdascii.Checked = true then
    tType := 0
  else
    tType := 1;
  ini.WriteInteger('FTP', 'TransferType', tType);
  ini.WriteBool('FTP', 'UseProxy', chkProxy.Checked);
  ini.WriteString('FTP', 'ProxyServer', edtProxy.Text);
  LoadItems;
  ini.Destroy
end;

procedure TfrmAccount.chkProxyClick(Sender: TObject);
begin
  edtProxy.Enabled := chkProxy.Checked;
end;

procedure TfrmAccount.chkAnonymousClick(Sender: TObject);
begin
  if chkAnonymous.Checked = True then begin
    edtUser.Text := 'Anonymous';
    edtPassword.Text := 'cedituser@cedit.net';
  end;
end;

procedure TfrmAccount.lstAccountsClick(Sender: TObject);
var
  ini: TIniFile;
  tType: Integer;
begin
  if lstAccounts.Selected = nil then exit;
  ini := TInifile.Create(ExtractFilePath(Application.ExeName) + 'accounts\' + lstAccounts.Selected.Caption);
  edtConnect.Text := LeftStr(lstAccounts.Selected.Caption, Length(lstAccounts.Selected.Caption)-4);
  edtUrl.Text := ini.Readstring('FTP', 'URL', '');
  edtUser.Text := ini.Readstring('FTP', 'Username', '');
  edtPassword.Text := ini.Readstring('FTP', 'Password', '');
  edtPort.Text := IntToStr(ini.ReadInteger('FTP', 'Port', 0));
  tType := ini.ReadInteger('FTP', 'TransferType', 0);
  if tType = 0 then
    rdAScii.Checked := true
  else
    rdBinary.Checked := true;
  chkProxy.Checked := ini.ReadBool('FTP', 'UseProxy', false);
  edtProxy.Text := ini.ReadString('FTP', 'ProxyServer', '');
  if (edtPassword.text='cedituser@cedit.net') and (edtUser.Text = 'Anonymous') then
    chkAnonymous.Checked := True
  else
    chkAnonymous.Checked := false;
  ini.Destroy

end;

procedure TfrmAccount.btnDeleteClick(Sender: TObject);
begin
  if lstAccounts.Selected = nil then exit;
  DeleteFile(ExtractFilePath(Application.ExeName) + 'accounts\' + lstAccounts.Selected.Caption);
  LoadItems;
  edtConnect.Text := '';
  edtURl.Text := '';
  edtUser.Text := '';
  edtPassword.Text := '';
  edtPort.Text := '';
  cmbServer.ItemIndex := 0;
  rdascii.Checked := True;
  chkProxy.Checked := false;
  edtProxy.Text := '';
  chkAnonymous.Checked := false;
end;

procedure TfrmAccount.btnOKClick(Sender: TObject);
begin
{  close;
  frmFTP.LoadItems;}
end;

procedure TfrmAccount.btnCancelClick(Sender: TObject);
begin
{  close;
  frmFTP.LoadItems;}
end;

procedure TfrmAccount.edtConnectEnter(Sender: TObject);
begin
  (Sender as TEdit).Color := 14073525;
  SelAll((Sender as TEdit));
end;

procedure TfrmAccount.edtConnectExit(Sender: TObject);
begin
  (Sender as TEDit).Color := clWindow
end;

procedure TfrmAccount.SelAll(edt: TEdit);
begin
  edt.SelStart := 0;
  edt.SelLength := Length(edt.Text);
end;
end.

⌨️ 快捷键说明

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