home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 March / pcp161b.iso / handson / archive / Issue149 / delphi / MemoPrj / memounit.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-11-25  |  2.7 KB  |  121 lines

  1. unit Memounit;
  2.  
  3. { PC Plus Sample project illustrating some String-handling features.
  4.   - Saves/encrypts and Loads/decrypts a file
  5.   - changes the case of selected text using a popup mouse menu
  6. }
  7.  
  8. interface
  9.  
  10. uses
  11.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  12.   Forms, Dialogs, StdCtrls, ExtCtrls,
  13.   StrUtils, Menus; { StrUtils must be in the USES section }
  14.  
  15. type
  16.   TForm1 = class(TForm)
  17.     Panel1: TPanel;
  18.     Memo1: TMemo;
  19.     EncryptSaveBtn: TButton;
  20.     DecryptLoadBtn: TButton;
  21.     ClearBtn: TButton;
  22.     LoadBtn: TButton;
  23.     PopupMenu1: TPopupMenu;
  24.     ChangeCase1: TMenuItem;
  25.     UpperCase1: TMenuItem;
  26.     UpperCase2: TMenuItem;
  27.     ExitBtn: TButton;
  28.     procedure EncryptSaveBtnClick(Sender: TObject);
  29.     procedure DecryptLoadBtnClick(Sender: TObject);
  30.     procedure ClearBtnClick(Sender: TObject);
  31.     procedure LoadBtnClick(Sender: TObject);
  32.     procedure ChangeCase1Click(Sender: TObject);
  33.     procedure UpperCase1Click(Sender: TObject);
  34.     procedure UpperCase2Click(Sender: TObject);
  35.     procedure ExitBtnClick(Sender: TObject);
  36.   private
  37.     { Private declarations }
  38.   public
  39.     { Public declarations }
  40.   end;
  41.  
  42. var
  43.   Form1: TForm1;
  44.  
  45. const
  46.   { Declaration of file name and 'encryption factor' }
  47.   SAVEFILE = 'SaveFile.xyz';
  48.   ENCRYPTNUM = 3;
  49.  
  50. implementation
  51.  
  52. {$R *.DFM}
  53.  
  54. procedure TForm1.EncryptSaveBtnClick(Sender: TObject);
  55. var
  56.    ts : TStringList;
  57.    i  : integer;
  58. begin
  59.    ts := TStringList.Create;
  60.    for i := 0 to Memo1.Lines.Count - 1 do
  61.        ts.Add(encrypt(Memo1.Lines[i], ENCRYPTNUM));
  62.    ts.SaveToFile( SAVEFILE );
  63.    ts.Free;
  64. end;
  65.  
  66. procedure TForm1.DecryptLoadBtnClick(Sender: TObject);
  67. var
  68.    ts : TStringList;
  69.    i  : integer;
  70. begin
  71.    if not FileExists(SAVEFILE) then
  72.       ShowMessage( SAVEFILE + ' not found!' )
  73.    else
  74.    begin
  75.      ts := TStringList.Create;
  76.      ts.LoadFromFile( SAVEFILE );
  77.      Memo1.Clear;
  78.         for i := 0 to ts.Count - 1 do
  79.           Memo1.Lines.Add(decrypt(ts[i], ENCRYPTNUM));
  80.      ts.Free;
  81.    end;
  82. end;
  83.  
  84. procedure TForm1.ClearBtnClick(Sender: TObject);
  85. begin
  86.   Memo1.Clear;
  87. end;
  88.  
  89. procedure TForm1.LoadBtnClick(Sender: TObject);
  90. begin
  91.    if not FileExists(SAVEFILE) then
  92.       ShowMessage( SAVEFILE + ' not found!' )
  93.    else
  94.    begin
  95.      Memo1.Clear;
  96.      Memo1.Lines.LoadFromFile(SAVEFILE);
  97.    end;
  98. end;
  99.  
  100. procedure TForm1.ChangeCase1Click(Sender: TObject);
  101. begin
  102.   Memo1.SelText := ChangeCase(Memo1.SelText);
  103. end;
  104.  
  105. procedure TForm1.UpperCase1Click(Sender: TObject);
  106. begin
  107.   Memo1.SelText := LowerCase(Memo1.SelText);
  108. end;
  109.  
  110. procedure TForm1.UpperCase2Click(Sender: TObject);
  111. begin
  112.   Memo1.SelText := UpperCase(Memo1.SelText);
  113. end;
  114.  
  115. procedure TForm1.ExitBtnClick(Sender: TObject);
  116. begin
  117.    Close;
  118. end;
  119.  
  120. end.
  121.