home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Delphi.5 / Samples / sourceD5 / browutil.exe / BROWSER / MAILING.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-01-02  |  4.5 KB  |  169 lines

  1. unit Mailing;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, ComCtrls, Menus;
  8.  
  9. type
  10.   TFrmMailing = class(TForm)
  11.     RichEdit1: TRichEdit;
  12.     PopupMenu1: TPopupMenu;
  13.     Print1: TMenuItem;
  14.     FindText1: TMenuItem;
  15.     FindDialog1: TFindDialog;
  16.     SaveDialog1: TSaveDialog;
  17.     Upper1: TMenuItem;
  18.     Lower1: TMenuItem;
  19.     UpperLower1: TMenuItem;
  20.     N1: TMenuItem;
  21.     FontDialog1: TFontDialog;
  22.     N2: TMenuItem;
  23.     Font1: TMenuItem;
  24.     procedure FormActivate(Sender: TObject);
  25.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  26.     procedure FormDestroy(Sender: TObject);
  27.     procedure Print1Click(Sender: TObject);
  28.     procedure FindText1Click(Sender: TObject);
  29.     procedure FindDialog1Find(Sender: TObject);
  30.     procedure Upper1Click(Sender: TObject);
  31.     procedure Font1Click(Sender: TObject);
  32.     procedure FontDialog1Apply(Sender: TObject; Wnd: HWND);
  33.   private
  34.     { Private declarations }
  35.     procedure ApplyFont;
  36.   public
  37.     { Public declarations }
  38.     sFileName : String;
  39.     procedure OpenTextFile(sTextFileName : String);
  40.     procedure SaveToFile(sTextFileName : String);
  41.   end;
  42.  
  43. var
  44.   FrmMailing: TFrmMailing;
  45.  
  46. implementation
  47.  
  48. uses Menu;
  49.  
  50. {$R *.DFM}
  51.  
  52. procedure TFrmMailing.OpenTextFile(sTextFileName : String);
  53. begin
  54.   RichEdit1.Lines.Clear;
  55.   Self.Caption := sTextFileName;
  56.   if (sTextFileName <> '') then begin
  57.       sFileName := sTextFileName;
  58.       RichEdit1.Lines.LoadFromFile(sTextFileName);
  59.     end
  60.   else
  61.     begin
  62.       sFileName := '';
  63.       Self.Caption := 'Document';
  64.     end;
  65. //  FrmMenu.AddWindowItem(Self.Name,Self.Caption);
  66. end;
  67.  
  68. procedure TFrmMailing.SaveToFile(sTextFileName : String);
  69. begin
  70.   if (sTextFileName = '') then begin
  71.     SaveDialog1.FileName := 'Document';
  72.     if (SaveDialog1.Execute) then begin
  73.       sTextFileName := SaveDialog1.FileName;
  74.       sFileName := ExtractFileName(SaveDialog1.FileName);
  75.     end;
  76.   end;
  77.   RichEdit1.Lines.SaveToFile(sTextFileName);
  78. end;
  79.  
  80. procedure TFrmMailing.FormActivate(Sender: TObject);
  81. begin
  82.   FrmMenu.ShowClose(True);
  83.   FrmMenu.ShowQueryMenuItem(False);
  84.   FrmMenu.ShowTableMenuItem(False);
  85.   FrmMenu.ShowTextFileMenuItem(True);
  86. end;
  87.  
  88. procedure TFrmMailing.FormClose(Sender: TObject;
  89.   var Action: TCloseAction);
  90. begin
  91.   Action := caFree;
  92. end;
  93.  
  94. procedure TFrmMailing.FormDestroy(Sender: TObject);
  95. begin
  96.   FrmMenu.ShowClose(False);
  97.   if (FindDialog1.Handle <> 0) then
  98.     SendMessage(FindDialog1.Handle,WM_Close,0,0);
  99. //  FrmMenu.RemoveWindowItem(Self.Name)
  100. end;
  101.  
  102. procedure TFrmMailing.Print1Click(Sender: TObject);
  103. begin
  104.   RichEdit1.Print(sFileName);
  105. end;
  106.  
  107. procedure TFrmMailing.FindText1Click(Sender: TObject);
  108. begin
  109.   if FindDialog1.Execute then
  110. end;
  111.  
  112. procedure TFrmMailing.FindDialog1Find(Sender: TObject);
  113. begin
  114.   if Self.FindComponent('RichEdit1') = nil then
  115.     Exit;
  116.   if (Pos(UpperCase(FindDialog1.FindText),UpperCase(RichEdit1.Text)) > 1) then begin
  117.     RichEdit1.SelStart := Pos(UpperCase(FindDialog1.FindText),UpperCase(RichEdit1.Text))-1;
  118.     RichEdit1.SelLength := Length(FindDialog1.FindText);
  119.   end;
  120. end;
  121.  
  122. procedure TFrmMailing.Upper1Click(Sender: TObject);
  123. var
  124.   sText : String;
  125.   nLowOffSet : Integer;
  126.   SelAttributes : TTextAttributes;
  127. begin
  128.   if (RichEdit1.SelLength > 0) then begin
  129.     SelAttributes := RichEdit1.SelAttributes;
  130.     sText := RichEdit1.SelText;
  131.     RichEdit1.SetTextBuf(PChar(sText));
  132.   end;
  133. end;
  134.  
  135. procedure TFrmMailing.Font1Click(Sender: TObject);
  136. begin
  137.   FontDialog1.Font.Name := RichEdit1.SelAttributes.Name;
  138.   FontDialog1.Font.Color := RichEdit1.SelAttributes.Color;
  139.   FontDialog1.Font.Size := RichEdit1.SelAttributes.Size;
  140.   FontDialog1.Font.Style := RichEdit1.SelAttributes.Style;
  141.   if FontDialog1.Execute then
  142.     ApplyFont;
  143. end;
  144.  
  145. procedure TFrmMailing.ApplyFont;
  146. begin
  147.   if RichEdit1.PlainText then begin
  148.       RichEdit1.Tag := RichEdit1.SelStart;
  149.       RichEdit1.SelStart := 0;
  150.       RichEdit1.SelLength := Length(RichEdit1.Text);
  151.       RichEdit1.Font := FontDialog1.Font;
  152.       RichEdit1.SelStart := RichEdit1.Tag;
  153.     end
  154.   else
  155.     begin
  156.       RichEdit1.SelAttributes.Name := FontDialog1.Font.Name;
  157.       RichEdit1.SelAttributes.Color := FontDialog1.Font.Color;
  158.       RichEdit1.SelAttributes.Size := FontDialog1.Font.Size;
  159.       RichEdit1.SelAttributes.Style := FontDialog1.Font.Style;
  160.     end;
  161. end;
  162.  
  163. procedure TFrmMailing.FontDialog1Apply(Sender: TObject; Wnd: HWND);
  164. begin
  165.   ApplyFont;
  166. end;
  167.  
  168. end.
  169.