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

  1. {*****************************************************************************
  2.  *
  3.  *  FMSignature.pas - Signature manager mainform  (24-August-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 FMSignature;
  34.  
  35. interface
  36.  
  37. uses
  38.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  39.   ComCtrls, StdCtrls, PXStuff, ImgList, ExtCtrls, Buttons, LangSup;
  40.  
  41. type
  42.   TSignatureForm = class(TForm)
  43.     ListView1: TListView;
  44.     ImageList1: TImageList;
  45.     Memo1: TMemo;
  46.     Label1: TLabel;
  47.     Button1: TSpeedButton;
  48.     Button2: TSpeedButton;
  49.     Bevel1: TBevel;
  50.     Button4: TButton;
  51.     Button3: TButton;
  52.     SpeedButton1: TSpeedButton;
  53.     Bevel2: TBevel;
  54.     Button5: TButton;
  55.     procedure Button2Click(Sender: TObject);
  56.     procedure Button1Click(Sender: TObject);
  57.     procedure Button4Click(Sender: TObject);
  58.     procedure ListView1Edited(Sender: TObject; Item: TListItem;
  59.       var S: String);
  60.     procedure FormCreate(Sender: TObject);
  61.     procedure ListView1Click(Sender: TObject);
  62.     procedure Memo1Change(Sender: TObject);
  63.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  64.     procedure Memo1KeyDown(Sender: TObject; var Key: Word;
  65.       Shift: TShiftState);
  66.     procedure Memo1Exit(Sender: TObject);
  67.     procedure Button3Click(Sender: TObject);
  68.     procedure FormShow(Sender: TObject);
  69.     procedure SpeedButton1Click(Sender: TObject);
  70.     procedure Button5Click(Sender: TObject);
  71.   private
  72.     { Private declarations }
  73.     Save: Boolean;
  74.     Filename: String;
  75.     procedure DoSave;
  76.     procedure Actualize;
  77.   public
  78.     { Public declarations }
  79.     CanAttach: Boolean;
  80.   end;
  81.  
  82. var
  83.   SignatureForm: TSignatureForm;
  84.  
  85. implementation
  86.  
  87. {$R *.DFM}
  88.  
  89. uses
  90.   Main;
  91.  
  92. var
  93.   F: Text;
  94.  
  95. procedure TSignatureForm.DoSave;
  96. var
  97.   I: Integer;
  98. begin
  99.   if Save = False then Exit;
  100.   if Filename = '' then Exit;
  101.   if ListView1.Selected <> nil then begin
  102.     AssignFile(F, Filename);
  103.     Rewrite(F);
  104.     for I := 0 to Memo1.Lines.Count-1 do
  105.       WriteLn(F, Memo1.Lines[I]);
  106.     CloseFile(F);
  107.   end;
  108. end;
  109.  
  110. procedure TSignatureForm.Actualize;
  111. var
  112.   S: String;
  113. begin
  114.   if Save then DoSave;
  115.   Memo1.Lines.Clear;
  116.   if ListView1.Selected <> nil then begin
  117.     AssignFile(F, ListView1.Selected.SubItems[0]);
  118.     Reset(F);
  119.     while not EoF(F) do begin
  120.       ReadLn(F, S);
  121.       Memo1.Lines.Add(S);
  122.     end;
  123.     CloseFile(F);
  124.     Memo1.Enabled := True;
  125.     Button2.Enabled := True;
  126.     SpeedButton1.Enabled := True;
  127.     if CanAttach then Button4.Enabled := True;
  128.     Filename := ListView1.Selected.SubItems[0];
  129.   end else begin
  130.     Memo1.Enabled := False;
  131.     Button2.Enabled := False;
  132.     Button4.Enabled := False;
  133.     SpeedButton1.Enabled := False;
  134.     Filename := '';
  135.   end;
  136.   Save := False;
  137. end;
  138.  
  139. procedure TSignatureForm.Button2Click(Sender: TObject);
  140. begin
  141.   if ListView1.Selected = nil then Exit;
  142.   DeleteFile(ListView1.Selected.SubItems[0]);
  143.   ListView1.Selected.Delete;
  144.   Save := False;
  145.   Actualize;
  146. end;
  147.  
  148. procedure TSignatureForm.Button1Click(Sender: TObject);
  149. var
  150.   Item: TListItem;
  151.   S: String;
  152. begin
  153.   if InputQuery(MainForm.ListBox1.Items[48], MainForm.ListBox1.Items[43], S) then begin
  154.     Item := ListView1.Items.Add;
  155.     Item.Caption := S;
  156.     Item.SubItems.Add(sSignatureFolder+S+'.txt');
  157.     AssignFile(F, Item.SubItems[0]);
  158.     Rewrite(F);
  159.     CloseFile(F);
  160.     Save := False;
  161.     Actualize;
  162.   end;
  163. end;
  164.  
  165. procedure TSignatureForm.Button4Click(Sender: TObject);
  166. begin
  167.   if Button4.Enabled = False then Exit;
  168.   if ListView1.Selected = nil then Exit;
  169.   ModalResult := mrOK;
  170. end;
  171.  
  172. procedure TSignatureForm.ListView1Edited(Sender: TObject; Item: TListItem; var S: String);
  173. begin
  174.   RenameFile(Item.SubItems[0], MakeValidDirName(ExtractFilePath(Item.SubItems[0]))+S+'.txt');
  175. end;
  176.  
  177. procedure TSignatureForm.FormCreate(Sender: TObject);
  178. var
  179.   Found: Integer;
  180.   SearchRec: TSearchRec;
  181.   Item: TListItem;
  182. begin
  183.   ImageList1.ResourceLoad(rtBitmap, 'PX503', clFuchsia);
  184.   if bOfficeFonts then Font.Name := sOfficeFontName;
  185.   if bFlatButtons = False then begin
  186.     Set3DButtons(False, Self);
  187.     Bevel2.Visible := False;
  188.   end;
  189.   Memo1.Font := MainForm.DefaultFont;
  190.   Found := FindFirst(sSignatureFolder+'*.txt', faAnyFile, SearchRec);
  191.   while Found = 0 do begin
  192.     SetFileAttr(sSignatureFolder+SearchRec.Name, False, True, False, False);
  193.     Item := ListView1.Items.Add;
  194.     Item.SubItems.Add(sSignatureFolder+SearchRec.Name);
  195.     Delete(SearchRec.Name, Length(SearchRec.Name)-3, 4);
  196.     Item.Caption := SearchRec.Name;
  197.     Found := FindNext(SearchRec);
  198.   end;
  199.   FindClose(SearchRec);
  200.   AttachLanguageToForm(Self);
  201. end;
  202.  
  203. procedure TSignatureForm.ListView1Click(Sender: TObject);
  204. begin
  205.   Actualize;
  206. end;
  207.  
  208. procedure TSignatureForm.Memo1Change(Sender: TObject);
  209. begin
  210.   Save := True;
  211. end;
  212.  
  213. procedure TSignatureForm.FormClose(Sender: TObject; var Action: TCloseAction);
  214. begin
  215.   if Save then DoSave;
  216. end;
  217.  
  218. procedure TSignatureForm.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  219. begin
  220.   Save := True;
  221. end;
  222.  
  223. procedure TSignatureForm.Memo1Exit(Sender: TObject);
  224. begin
  225.   if Save then DoSave;
  226. end;
  227.  
  228. procedure TSignatureForm.Button3Click(Sender: TObject);
  229. begin
  230.   ModalResult := mrCancel;
  231. end;
  232.  
  233. procedure TSignatureForm.FormShow(Sender: TObject);
  234. begin
  235.   Actualize;
  236. end;
  237.  
  238. procedure TSignatureForm.SpeedButton1Click(Sender: TObject);
  239. begin
  240.   if ListView1.Selected = nil then Exit;
  241.   ListView1.Selected.EditCaption;
  242. end;
  243.  
  244. procedure TSignatureForm.Button5Click(Sender: TObject);
  245. begin
  246.   Application.HelpContext(7);
  247. end;
  248.  
  249. end.
  250.