home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 April / Chip_1997-04_cd.bin / prezent / cb / data.z / MDIEDIT.CPP < prev    next >
C/C++ Source or Header  |  1997-01-16  |  7KB  |  210 lines

  1. //----------------------------------------------------------------------------
  2. //Borland C++ Builder
  3. //Copyright (c) 1987 Borland International Inc. All Rights Reserved.
  4. //----------------------------------------------------------------------------
  5. //---------------------------------------------------------------------------
  6. #include <vcl\vcl.h>
  7. #pragma hdrstop
  8.  
  9. #include "MDIEdit.h"
  10. #include "MDIFrame.h"
  11. //---------------------------------------------------------------------------
  12. #pragma resource "*.dfm"
  13. TEditForm *EditForm;
  14.  
  15. //---------------------------------------------------------------------------
  16.  
  17. const AnsiString DefaultFileName = AnsiString("Untitled");
  18.  
  19. __fastcall TEditForm::TEditForm(TComponent* Owner)
  20.     : TForm(Owner)
  21. {
  22. }
  23. //---------------------------------------------------------------------------
  24. void __fastcall TEditForm::Open(const AnsiString AFileName)
  25. {
  26.    PathName = AFileName;
  27.    Caption = ExtractFileName(AFileName);
  28.    Editor->Lines->LoadFromFile(PathName);
  29.    Editor->SelStart = 0;
  30.    Editor->Modified = false;
  31. }
  32. void __fastcall TEditForm::New1Click(TObject *Sender)
  33. {
  34.   FrameForm->New1Click(Sender);
  35. }
  36. //---------------------------------------------------------------------
  37. void __fastcall TEditForm::Open1Click(TObject *Sender)
  38. {
  39.   FrameForm->Open1Click(Sender);
  40. }
  41. //---------------------------------------------------------------------
  42. void __fastcall TEditForm::Close1Click(TObject *Sender)
  43. {
  44.   Close();
  45. }
  46. //---------------------------------------------------------------------
  47. void __fastcall TEditForm::Exit1Click(TObject *Sender)
  48. {
  49.   FrameForm->Exit1Click(Sender);
  50. }
  51. //---------------------------------------------------------------------
  52. void __fastcall TEditForm::Save1Click(TObject *Sender)
  53. {
  54.   if(Caption == DefaultFileName){
  55.     Saveas1Click(Sender);
  56.   }
  57.  
  58. /*
  59.   if (PathName == DefaultFileName || PathName==NULL){
  60.     PathName=DefaultFileName;
  61.     Saveas1Click(Sender);*/
  62.  
  63.   else{
  64.     Editor->Lines->SaveToFile(PathName);
  65.     Editor->Modified = false;
  66.   }
  67. }
  68. //---------------------------------------------------------------------
  69. void __fastcall TEditForm::Saveas1Click(TObject *Sender)
  70. {
  71.   SaveFileDialog->FileName = PathName;
  72.   if (SaveFileDialog->Execute() ){
  73.     PathName= SaveFileDialog->FileName;
  74.     Caption = ExtractFileName(PathName);
  75.     Save1Click(Sender);
  76.   }
  77. }
  78. //---------------------------------------------------------------------
  79. void __fastcall TEditForm::Print1Click(TObject *Sender)
  80. {
  81.   if (PrintDialog1->Execute()){
  82.     try {
  83.         Editor->Print(PathName);
  84.     }
  85.     catch(...){
  86.         Printer()->EndDoc();
  87.         throw;
  88.     }
  89.   }
  90. }
  91. //---------------------------------------------------------------------
  92. void __fastcall TEditForm::Printersetup1Click(TObject *Sender)
  93. {
  94.   PrinterSetupDialog1->Execute();
  95. }
  96. //---------------------------------------------------------------------
  97. void __fastcall TEditForm::Cut1Click(TObject *Sender)
  98. {
  99.   Editor->CutToClipboard();
  100. }
  101. //---------------------------------------------------------------------
  102. void __fastcall TEditForm::Copy1Click(TObject *Sender)
  103. {
  104.   Editor->CopyToClipboard();
  105. }
  106. //---------------------------------------------------------------------
  107. void __fastcall TEditForm::Paste1Click(TObject *Sender)
  108. {
  109.   Editor->PasteFromClipboard();
  110. }
  111. //---------------------------------------------------------------------
  112. void __fastcall TEditForm::Delete1Click(TObject *Sender)
  113. {
  114.   Editor->ClearSelection();
  115. }
  116. //---------------------------------------------------------------------
  117. void __fastcall TEditForm::Selectall1Click(TObject *Sender)
  118. {
  119.   Editor->SelectAll();
  120. }
  121. //---------------------------------------------------------------------
  122. void __fastcall TEditForm::Left1Click(TObject *Sender)
  123. {
  124.   Left1->Checked   = false;
  125.   Right1->Checked  = false;
  126.   Center1->Checked = false;
  127.  
  128.   if( dynamic_cast<TMenuItem *>(Sender) !=0)
  129.     dynamic_cast <TMenuItem *>(Sender) ->Checked = true;
  130.     {
  131.      if (Left1->Checked )
  132.        Editor->Paragraph->Alignment = taLeftJustify;
  133.      else if (Right1->Checked)
  134.        Editor->Paragraph->Alignment= taRightJustify;
  135.      else if (Center1->Checked)
  136.        Editor->Paragraph->Alignment = taCenter;
  137.     }
  138. }
  139. //---------------------------------------------------------------------
  140. void __fastcall TEditForm::Wordwrap1Click(TObject *Sender)
  141. {
  142.   Editor->WordWrap = !Editor->WordWrap; //toggle word wrapping
  143.     if (Editor->WordWrap)
  144.       Editor->ScrollBars = ssVertical;
  145.     else
  146.       Editor->ScrollBars = ssBoth;
  147.       Wordwrap1->Checked = Editor->WordWrap; // set menu item check
  148.  
  149. }
  150. //---------------------------------------------------------------------
  151. void __fastcall TEditForm::Font1Click(TObject *Sender)
  152. {
  153.   FontDialog1->Font= Editor->Font;
  154.  
  155.   if (FontDialog1->Execute())
  156.     Editor->SelAttributes->Assign(FontDialog1->Font);
  157. }
  158. //---------------------------------------------------------------------
  159. void __fastcall TEditForm::Edit1Click(TObject *Sender)
  160. {
  161.   bool HasSelection;
  162.   Paste1->Enabled = Clipboard()->HasFormat(CF_TEXT);
  163.   Paste2->Enabled = Paste1->Enabled;
  164.   HasSelection = Editor->SelLength > 0;
  165.   Cut1->Enabled = HasSelection;
  166.   Cut2->Enabled = HasSelection;
  167.   Copy1->Enabled = HasSelection;
  168.   Copy2->Enabled = HasSelection;
  169.   Delete1->Enabled = HasSelection;
  170. }
  171. //---------------------------------------------------------------------
  172. void __fastcall TEditForm::FormClose(TObject *Sender, TCloseAction &Action)
  173. {
  174. Action=caFree;
  175. }
  176. //---------------------------------------------------------------------
  177. void __fastcall TEditForm::FormCloseQuery(TObject *Sender,
  178.     bool &CanClose)
  179. {
  180.   bool ans;
  181.   char buffer[255];
  182.   if (Editor->Modified)
  183.     {
  184.       Set<TMsgDlgBtn,0,8> temp_set;
  185.       temp_set<< mbYes<<mbNo <<mbCancel;
  186.       sprintf(buffer,"Save changes to %s?",PathName.c_str());
  187.  
  188.       switch(MessageDlg(buffer, mtConfirmation,temp_set,0))
  189.       {
  190.         case mrYes:
  191.           Save1Click(this);
  192.         case mrCancel:
  193.           CanClose=false;
  194.       }
  195.  
  196.    }
  197. }
  198. //---------------------------------------------------------------------
  199. //---------------------------------------------------------------------
  200. void __fastcall TEditForm::FormActivate(TObject *Sender)
  201. {
  202.   //PathName = DefaultFileName;
  203. }
  204. //---------------------------------------------------------------------
  205. void __fastcall TEditForm::FormCreate(TObject *Sender)
  206. {
  207.    PathName = DefaultFileName;
  208. }
  209. //---------------------------------------------------------------------
  210.