home *** CD-ROM | disk | FTP | other *** search
/ Freelog 11 / Freelog011.iso / BestOf / PhoenixMail / Source / phoenix / FMAccount.pas < prev    next >
Pascal/Delphi Source File  |  1999-02-05  |  7KB  |  251 lines

  1. {*****************************************************************************
  2.  *
  3.  *  FMAccount.pas - Account form  (28-July-1998)
  4.  *
  5.  *  Copyright (c) 1998-99 Michael Haller
  6.  *
  7.  *  Author:     Michael Haller
  8.  *  E-mail:     michael@discountdrive.com
  9.  *  Homepage:   http://www.discountdrive.com/sunrise
  10.  *
  11.  *  This program is free software; you can redistribute it and/or
  12.  *  modify it under the terms of the GNU General Public License
  13.  *  as published by the Free Software Foundation;
  14.  *
  15.  *  This program is distributed in the hope that it will be useful,
  16.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  17.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18.  *  GNU General Public License for more details.
  19.  *
  20.  *  You should have received a copy of the GNU General Public License
  21.  *  along with this program; if not, write to the Free Software
  22.  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
  23.  *
  24.  *----------------------------------------------------------------------------
  25.  *
  26.  *  Revision history:
  27.  *
  28.  *     DATE     REV                 DESCRIPTION
  29.  *  ----------- --- ----------------------------------------------------------
  30.  *
  31.  *****************************************************************************}
  32.  
  33. unit FMAccount;
  34.  
  35. interface
  36.  
  37. uses
  38.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  39.   StdCtrls, ExtCtrls, ComCtrls, PXStuff, LangSup, ComboBoxEx, ImgList;
  40.  
  41. type
  42.   TAccountForm = class(TForm)
  43.     Panel1: TPanel;
  44.     PageControl1: TPageControl;
  45.     TabSheet1: TTabSheet;
  46.     TabSheet2: TTabSheet;
  47.     TabSheet3: TTabSheet;
  48.     Label1: TLabel;
  49.     Edit1: TEdit;
  50.     Label2: TLabel;
  51.     Bevel1: TBevel;
  52.     Label3: TLabel;
  53.     Edit2: TEdit;
  54.     Edit3: TEdit;
  55.     Edit4: TEdit;
  56.     Edit5: TEdit;
  57.     Label4: TLabel;
  58.     Label5: TLabel;
  59.     Label6: TLabel;
  60.     Label7: TLabel;
  61.     Bevel2: TBevel;
  62.     Label8: TLabel;
  63.     Bevel3: TBevel;
  64.     Label9: TLabel;
  65.     Edit6: TEdit;
  66.     Label10: TLabel;
  67.     Edit7: TEdit;
  68.     Label11: TLabel;
  69.     Edit8: TEdit;
  70.     Label12: TLabel;
  71.     Edit9: TEdit;
  72.     Label13: TLabel;
  73.     Bevel4: TBevel;
  74.     Label14: TLabel;
  75.     Edit10: TEdit;
  76.     Label15: TLabel;
  77.     Edit11: TEdit;
  78.     Label16: TLabel;
  79.     Bevel5: TBevel;
  80.     Button1: TButton;
  81.     Button2: TButton;
  82.     TabSheet4: TTabSheet;
  83.     Label17: TLabel;
  84.     Bevel6: TBevel;
  85.     Label18: TLabel;
  86.     Edit12: TEdit;
  87.     Label19: TLabel;
  88.     Edit13: TEdit;
  89.     Label20: TLabel;
  90.     Label23: TLabel;
  91.     Panel2: TPanel;
  92.     Image1: TImage;
  93.     Image2: TImage;
  94.     Label24: TLabel;
  95.     Button3: TButton;
  96.     Label21: TLabel;
  97.     Edit14: TEdit;
  98.     CheckBox1: TCheckBox;
  99.     CheckBox2: TCheckBox;
  100.     Label22: TLabel;
  101.     ComboBoxEx1: TComboBoxEx;
  102.     ImageList1: TImageList;
  103.     CheckBox3: TCheckBox;
  104.     TabSheet5: TTabSheet;
  105.     Label25: TLabel;
  106.     Bevel7: TBevel;
  107.     Label26: TLabel;
  108.     Memo1: TMemo;
  109.     Label27: TLabel;
  110.     Label28: TLabel;
  111.     Label29: TLabel;
  112.     Label30: TLabel;
  113.     procedure FormShow(Sender: TObject);
  114.     procedure Button1Click(Sender: TObject);
  115.     procedure FormCreate(Sender: TObject);
  116.     procedure CheckBox1Click(Sender: TObject);
  117.     procedure Button3Click(Sender: TObject);
  118.   private
  119.     { Private declarations }
  120.   public
  121.     { Public declarations }
  122.     CreateNewAccount: Boolean;
  123.     procedure LoadAccountData(Data: PAccountData);
  124.     procedure SaveAccountData(var Data: PAccountData);
  125.   end;
  126.  
  127. var
  128.   AccountForm: TAccountForm;
  129.  
  130. implementation
  131.  
  132. {$R *.DFM}
  133.  
  134. uses
  135.   Main;
  136.  
  137. procedure TAccountForm.LoadAccountData(Data: PAccountData);
  138. begin
  139.   Edit1.Text := Data^.Name;
  140.   Edit2.Text := Data^.FromMail;
  141.   Edit3.Text := Data^.FromDesc;
  142.   Edit4.Text := Data^.ReplyMail;
  143.   Edit5.Text := Data^.ReplyDesc;
  144.   Edit6.Text := Data^.POPServer;
  145.   Edit7.Text := Data^.POPPort;
  146.   Edit8.Text := Data^.POPUser;
  147.   Edit9.Text := Data^.POPPass;
  148.   Edit10.Text := Data^.SMTPServer;
  149.   Edit11.Text := Data^.SMTPPort;
  150.   Edit12.Text := Data^.KeepFilter;
  151.   Edit13.Text := Data^.DeleteFilter;
  152.   Edit14.Text := Data^.Organization;
  153.   Checkbox1.Checked := (Data^.DoPOP = 1);
  154.   Checkbox2.Checked := (Data^.DoSMTP = 1);
  155.   Checkbox3.Checked := (Data^.PromptPassword = 1);
  156.   ComboBoxEx1.Value := IntToStr(Data^.StandardDownload);
  157.   Memo1.Lines.Clear;
  158.   if FileExists(Data^.Path+'signat.txt') then
  159.     Memo1.Lines.LoadFromfile(Data^.Path+'signat.txt');
  160.   CheckBox1Click(Self);
  161. end;
  162.  
  163. procedure TAccountForm.SaveAccountData(var Data: PAccountData);
  164. begin
  165.   Data^.Name := Edit1.Text;
  166.   if CreateNewAccount then begin
  167.     Data^.Path := sAccountRootFolder+MainForm.GetUniqueAccountFolder(Data^.Name)+'\';
  168.     CreateFolder(Data^.Path);
  169.   end;
  170.   Data^.FromMail := Edit2.Text;
  171.   Data^.FromDesc := Edit3.Text;
  172.   Data^.ReplyMail := Edit4.Text;
  173.   Data^.ReplyDesc := Edit5.Text;
  174.   Data^.POPServer := Edit6.Text;
  175.   Data^.POPPort := Edit7.Text;
  176.   Data^.POPUser := Edit8.Text;
  177.   Data^.POPPass := Edit9.Text;
  178.   Data^.SMTPServer := Edit10.Text;
  179.   Data^.SMTPPort := Edit11.Text;
  180.   Data^.KeepFilter := Edit12.Text;
  181.   Data^.DeleteFilter := Edit13.Text;
  182.   Data^.Organization := Edit14.Text;
  183.   Data^.DoPOP := BolToInt(Checkbox1.Checked);
  184.   Data^.DoSMTP := BolToInt(Checkbox2.Checked);
  185.   Data^.StandardDownload := StrToInt(ComboBoxEx1.Value);
  186.   Data^.PromptPassword := BolToInt(Checkbox3.Checked);
  187.   Memo1.Lines.SaveToFile(Data^.Path+'signat.txt');
  188. end;
  189.  
  190. procedure TAccountForm.FormShow(Sender: TObject);
  191. begin
  192.   Edit9.PasswordChar := '*'; //for Hackers :-)
  193. end;
  194.  
  195. procedure TAccountForm.Button1Click(Sender: TObject);
  196. begin
  197.   if Edit2.Text = '' then MessageDlg(MainForm.ListBox1.Items[37], mtwarning, [mbOK], 0)
  198.   else
  199.   ModalResult := mrOK;
  200. end;
  201.  
  202. procedure TAccountForm.FormCreate(Sender: TObject);
  203. begin
  204.   AttachLanguageToForm(Self);
  205.   if bOfficeFonts then Font.Name := sOfficeFontName;
  206.   Image1.Picture.Bitmap := MainForm.Image5.Picture.Bitmap;
  207.   Memo1.Font := MainForm.DefaultFont;
  208.   Label16.Caption := Label16.Caption+' ';
  209.   Label2.Caption := Label2.Caption+' ';
  210.   Label7.Caption := Label7.Caption+' ';
  211.   Label8.Caption := Label8.Caption+' ';
  212.   Label13.Caption := Label13.Caption+' ';
  213.   Label17.Caption := Label17.Caption+' ';
  214.   Label25.Caption := Label25.Caption+' ';
  215.   ComboBoxex1.Items[0] := Label30.Caption;
  216.   ComboBoxex1.Items[1] := Label29.Caption;
  217.   ComboBoxex1.Items[2] := Label28.Caption;
  218.   ComboBoxex1.Items[3] := Label27.Caption;
  219.   ImageList1.ResourceLoad(rtBitmap, 'PX501', clFuchsia);
  220. end;
  221.  
  222. procedure TAccountForm.CheckBox1Click(Sender: TObject);
  223. var
  224.   B: Boolean;
  225. begin
  226.   B := not CheckBox3.Checked;
  227.   if CheckBox1.Checked = False then B := False;
  228.   Edit9.Enabled := B;
  229.   B := CheckBox1.Checked;
  230.   Label9.Enabled := B;
  231.   Label10.Enabled := B;
  232.   Label11.Enabled := B;
  233.   Label12.Enabled := B;
  234.   Edit6.Enabled := B;
  235.   Edit7.Enabled := B;
  236.   Edit8.Enabled := B;
  237.   CheckBox3.Enabled := B;
  238.   B := CheckBox2.Checked;
  239.   Label14.Enabled := B;
  240.   Label15.Enabled := B;
  241.   Edit10.Enabled := B;
  242.   Edit11.Enabled := B;
  243. end;
  244.  
  245. procedure TAccountForm.Button3Click(Sender: TObject);
  246. begin
  247.   Application.HelpContext(19);
  248. end;
  249.  
  250. end.
  251.