home *** CD-ROM | disk | FTP | other *** search
/ PC World Plus! (NZ) 2001 June / HDC50.iso / Runimage / Delphi50 / Objrepos / Logoapp / LOGOMAIN.PAS < prev   
Pascal/Delphi Source File  |  1999-08-11  |  4KB  |  160 lines

  1. unit LogoMain;
  2.  
  3. interface
  4.  
  5. uses Windows, Classes, Graphics, Forms, Controls, Menus,
  6.   Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls, ImgList, StdActns,
  7.   ActnList, ToolWin;
  8.  
  9. type
  10.   TLogoAppForm = class(TForm)
  11.     OpenDialog: TOpenDialog;
  12.     SaveDialog: TSaveDialog;
  13.     ToolBar1: TToolBar;
  14.     ToolButton9: TToolButton;
  15.     ToolButton1: TToolButton;
  16.     ToolButton2: TToolButton;
  17.     ToolButton3: TToolButton;
  18.     ToolButton4: TToolButton;
  19.     ToolButton5: TToolButton;
  20.     ToolButton6: TToolButton;
  21.     ToolButton7: TToolButton;
  22.     ToolButton8: TToolButton;
  23.     ActionList1: TActionList;
  24.     FileNew1: TAction;
  25.     FileOpen1: TAction;
  26.     FileSave1: TAction;
  27.     FileSaveAs1: TAction;
  28.     FileSend1: TAction;
  29.     FileExit1: TAction;
  30.     EditCut1: TEditCut;
  31.     EditCopy1: TEditCopy;
  32.     EditPaste1: TEditPaste;
  33.     HelpAbout1: TAction;
  34.     StatusBar: TStatusBar;
  35.     ImageList1: TImageList;
  36.     RichEdit1: TRichEdit;
  37.     MainMenu1: TMainMenu;
  38.     File1: TMenuItem;
  39.     FileNewItem: TMenuItem;
  40.     FileOpenItem: TMenuItem;
  41.     FileSaveItem: TMenuItem;
  42.     FileSaveAsItem: TMenuItem;
  43.     N1: TMenuItem;
  44.     FileSendItem: TMenuItem;
  45.     N2: TMenuItem;
  46.     FileExitItem: TMenuItem;
  47.     Edit1: TMenuItem;
  48.     CutItem: TMenuItem;
  49.     CopyItem: TMenuItem;
  50.     PasteItem: TMenuItem;
  51.     Help1: TMenuItem;
  52.     HelpAboutItem: TMenuItem;
  53.     procedure FileNew1Execute(Sender: TObject);
  54.     procedure FileOpen1Execute(Sender: TObject);
  55.     procedure FileSave1Execute(Sender: TObject);
  56.     procedure FileSaveAs1Execute(Sender: TObject);
  57.     procedure FileSend1Execute(Sender: TObject);
  58.     procedure FileExit1Execute(Sender: TObject);
  59.     procedure HelpAbout1Execute(Sender: TObject);
  60.   private
  61.     FFileName: String;
  62.   public
  63.     { Public declarations }
  64.   end;
  65.  
  66. var
  67.   LogoAppForm: TLogoAppForm;
  68.  
  69. implementation
  70.  
  71. uses SysUtils, Mapi, About;
  72.  
  73. {$R *.DFM}
  74.  
  75. resourcestring
  76.   SUntitled  = 'Untitled';
  77.   SOverwrite = 'OK to overwrite %s';
  78.   SSendError = 'Error sending mail';
  79.  
  80. procedure TLogoAppForm.FileNew1Execute(Sender: TObject);
  81. begin
  82.   FFileName := SUntitled;
  83.   RichEdit1.Lines.Clear;
  84.   RichEdit1.Modified := False;
  85. end;
  86.  
  87. procedure TLogoAppForm.FileOpen1Execute(Sender: TObject);
  88. begin
  89.   if OpenDialog.Execute then
  90.   begin
  91.     RichEdit1.Lines.LoadFromFile(OpenDialog.FileName);
  92.     FFileName := OpenDialog.FileName;
  93.     RichEdit1.SetFocus;
  94.     RichEdit1.Modified := False;
  95.     RichEdit1.ReadOnly := ofReadOnly in OpenDialog.Options;
  96.   end;
  97. end;
  98.  
  99. procedure TLogoAppForm.FileSave1Execute(Sender: TObject);
  100. begin
  101.   if FFileName = SUntitled then
  102.     FileSaveAs1Execute(Sender)
  103.   else
  104.   begin
  105.     RichEdit1.Lines.SaveToFile(FFileName);
  106.     RichEdit1.Modified := False;
  107.   end;
  108. end;
  109.  
  110. procedure TLogoAppForm.FileSaveAs1Execute(Sender: TObject);
  111. begin
  112.   if SaveDialog.Execute then
  113.   begin
  114.     if FileExists(SaveDialog.FileName) then
  115.       if MessageDlg(Format(SOverwrite, [SaveDialog.FileName]),
  116.         mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit;
  117.     RichEdit1.Lines.SaveToFile(SaveDialog.FileName);
  118.     FFileName := SaveDialog.FileName;
  119.     RichEdit1.Modified := False;
  120.   end;
  121. end;
  122.  
  123. procedure TLogoAppForm.FileSend1Execute(Sender: TObject);
  124. var
  125.   MapiMessage: TMapiMessage;
  126.   MError: Cardinal;
  127. begin
  128.   with MapiMessage do
  129.   begin
  130.     ulReserved := 0;
  131.     lpszSubject := nil;
  132.     lpszNoteText := PChar(RichEdit1.Lines.Text);
  133.     lpszMessageType := nil; 
  134.     lpszDateReceived := nil; 
  135.     lpszConversationID := nil; 
  136.     flFlags := 0;
  137.     lpOriginator := nil; 
  138.     nRecipCount := 0;
  139.     lpRecips := nil; 
  140.     nFileCount := 0;
  141.     lpFiles := nil; 
  142.   end;
  143.   
  144.   MError := MapiSendMail(0, 0, MapiMessage, 
  145.     MAPI_DIALOG or MAPI_LOGON_UI or MAPI_NEW_SESSION, 0);
  146.   if MError <> 0 then MessageDlg(SSendError, mtError, [mbOK], 0);
  147. end;
  148.  
  149. procedure TLogoAppForm.FileExit1Execute(Sender: TObject);
  150. begin
  151.   Close;
  152. end;
  153.  
  154. procedure TLogoAppForm.HelpAbout1Execute(Sender: TObject);
  155. begin
  156.   AboutBox.ShowModal;
  157. end;
  158.  
  159. end.
  160.