home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / envelop / envelop.5 / Tools / Arsenal / apps / textedit / textedit.eto < prev    next >
Text File  |  1996-07-08  |  17KB  |  565 lines

  1. Type TextEditBox From TextBox
  2.   Dim FontPanel As New FontDialog
  3.   Dim TextFont As New Font
  4.   Dim SaveAsPanel As New SaveAsDialog
  5.   Dim SearchPanel As New FindDialog
  6.   Dim FilePanel As New OpenDialog
  7.   Dim ChangedFlag As Integer
  8.   Dim txtfile As New TextFile
  9.  
  10.   ' METHODS for object: TextEditBox
  11.   Sub Change()
  12.     ChangedFlag = True
  13.   End Sub
  14.  
  15.   Sub Clear()
  16.     ' Reset the Filename property of the OpenDialog object
  17.     FilePanel.FileName = ""
  18.     Text = ""
  19.   End Sub
  20.  
  21.   Sub Delete()
  22.     SelText = ""
  23.   End Sub
  24.  
  25.   Sub OpenFile()
  26.     ' Set the Title caption of the OpenDialog dialog box
  27.     FilePanel.Title = "Select File"
  28.   
  29.     ' Set the list of file types that can be loaded
  30.     FilePanel.Filter = "Text files (*.txt)|*.txt|Script files (*.bat)|*.bat|Config files (*.ini)|*.ini|All files (*.*)|*.*|"
  31.   
  32.     ' Post the File Open dialog box - should default to current directory
  33.     If FilePanel.Execute = IDCANCEL Then Exit Sub
  34.   
  35.     ' If a filename was picked, then load the text file into the textedit box
  36.     If FilePanel.FileName <> "" Then 
  37.       txtfile.FileName = FilePanel.FileName
  38.       Text = txtfile.ContentsAsString
  39.     End If
  40.   
  41.     SetFocus
  42.   
  43.   End Sub
  44.  
  45.   Sub PrintText()
  46.     Dim print_cmd As String
  47.     Dim result As Long
  48.     Declare Function DeleteFile Lib "Kernel32" Alias "DeleteFileA" (ByVal fileName as string) as long
  49.   
  50.     ' This function will basically use the DOS "print" command to print the
  51.     ' current contents of the text edit box - better check to make sure text exits
  52.     If Text = "" Then 
  53.       InfoBox.title = "Warning!"
  54.       InfoBox.Message("", "You have not entered any text to be printed. Type some text, and then try again.")
  55.       Exit Sub
  56.     End If
  57.   
  58.     ' Use the FileInfo object to actually save the file to disk
  59.     txtfile.FileName = "C:\temp\prt_file.tmp"
  60.   
  61.     ' Save the text to disk using the SetContentsTo Method
  62.     txtfile.SetContentsTo(Text)
  63.   
  64.     ' File exists now let's print it and remove it in one command
  65.     print_cmd = "print " & txtfile.FileName
  66.     RunProgram(print_cmd, False, False)
  67.     DeleteFile txtfile.FileName
  68.   
  69.   End Sub
  70.  
  71.   Sub Save()
  72.     ' If there is no opened file, then do a SaveAs and update
  73.     ' the Open/Save txtfile object's FileName property
  74.     If txtfile.FileName = "" Then 
  75.       ' Call the SaveAs function
  76.       SaveAs
  77.   
  78.       ' Update the FileName property of the txtfile object
  79.       txtfile.FileName = txtfile.FileName
  80.     Else 
  81.       ' Save the text to disk using the SetContentsTo Method
  82.       txtfile.SetContentsTo(Text)
  83.       ChangedFlag = False
  84.     End If
  85.   End Sub
  86.  
  87.   Sub SaveAs()
  88.     ' Check to make sure there is something to save
  89.     If Text = "" Then 
  90.       InfoBox.title = "Warning!"
  91.       InfoBox.Message("", "You have not entered any text to be saved. Type some text, and then try again.")
  92.       Exit Sub
  93.     End If
  94.   
  95.     ' Configure the SaveAsDialog object - SaveAsDialog will make sure FileName is entered
  96.     SaveAsPanel.FileName = "*.txt"
  97.     SaveAsPanel.Filter = "Text Files (*.txt)|*.txt|All Files (*.*)|*.*"
  98.   
  99.     ' If Cancel Was clicked, do nothing
  100.     If SaveAsPanel.Execute = IDCANCEL Then Exit Sub
  101.     ' Use the FileInfo object to actually save the file to disk
  102.     txtfile.FileName = SaveAsPanel.FileName
  103.   
  104.     ' Save the text to disk using the SetContentsTo Method
  105.     txtfile.SetContentsTo(Text)
  106.     ChangedFlag = False
  107.   
  108.   End Sub
  109.  
  110.   Sub SearchForward()
  111.     ' Hide some items on the FindDialog panel
  112.     SearchPanel.HideMatchCase = "True"
  113.     SearchPanel.HideUpDown = "True"
  114.     SearchPanel.HideWholeWord = "True"
  115.   
  116.     ' #There is a bug with displaying a string in FindDialog.Title
  117.     ' SearchPanel.Title = "Find"
  118.   
  119.     ' If something is selected, make it become your search string
  120.     ' otherwise use the last search string
  121.     If SelLength > 0 Then 
  122.       SearchPanel.FindString = SelText
  123.     End If
  124.     SearchPanel.Show
  125.   
  126.   End Sub
  127.  
  128.   Sub SearchNext()
  129.     SearchPanel_Find
  130.   End Sub
  131.  
  132.   Sub SearchPanel_Find()
  133.     Dim loc As Integer
  134.   
  135.     ' This guy is called from the FindDialog Panel
  136.     loc = Instr(SelStart + 1 + SelLength, Text, SearchPanel.FindString)
  137.     If loc Then 
  138.       SelStart = loc - 1
  139.       SelLength = Len(SearchPanel.FindString)
  140.       SetFocus
  141.     Else 
  142.       InfoBox.Message("", "Cannot find '" & SearchPanel.FindString & "'")
  143.     End If
  144.   End Sub
  145.  
  146.   Sub SelectAll()
  147.     SelStart = 0
  148.     SelLength = Len(Text)
  149.   End Sub
  150.  
  151.   Sub SetFont()
  152.     ' Configure the font panel
  153.     FontPanel.Bold = TextFont.Bold
  154.     FontPanel.FaceName = TextFont.FaceName
  155.     FontPanel.Italic = TextFont.Italic
  156.     FontPanel.Strikethru = TextFont.Strikethru
  157.     FontPanel.Underline = TextFont.Underline
  158.     FontPanel.Color = ForeColor
  159.     FontPanel.Size = TextFont.Size
  160.   
  161.     FontPanel.Execute
  162.   
  163.     ' Set the chosen font attributes
  164.     TextFont.Bold = FontPanel.Bold
  165.     TextFont.FaceName = FontPanel.FaceName
  166.     TextFont.Italic = FontPanel.Italic
  167.     TextFont.Strikethru = FontPanel.Strikethru
  168.     TextFont.Underline = FontPanel.Underline
  169.     ForeColor = FontPanel.Color
  170.     TextFont.Size = FontPanel.Size
  171.   End Sub
  172.  
  173.   Sub SetScrollBars(scroll_type As string)
  174.     ' Set the scrollbars accordingly and the wordwrap property
  175.     Select Case scroll_type
  176.       Case "None", "0"
  177.         ScrollBars = 0
  178.         WordWrap = True
  179.       Case "Horizontal", "1"
  180.         ScrollBars = 1
  181.         WordWrap = False
  182.       Case "Vertical", "2"
  183.         ScrollBars = 2
  184.         WordWrap = True
  185.       Case "Both", "3"
  186.         ScrollBars = 3
  187.         WordWrap = False
  188.     End Select
  189.   
  190.     ' Set focus in the textbox
  191.     SetFocus
  192.   
  193.   End Sub
  194.  
  195. End Type
  196.  
  197. Type TextEditMasterForm From SampleMasterForm
  198.   Type TextEditMenuBar From MenuBar
  199.     Dim TextEditFileMenu As New PopupMenu
  200.     Dim TextEditEditMenu As New PopupMenu
  201.     Dim TextEditSearchMenu As New PopupMenu
  202.     Dim TextEditOptionsMenu As New PopupMenu
  203.     Dim OptionsScrollBarMenu As New PopupMenu
  204.   End Type
  205.   Dim txtEditBox As New TextEditBox
  206.  
  207.   ' METHODS for object: TextEditMasterForm
  208.   Sub Activate()
  209.     ' This routine gets called automatically when the form is loaded
  210.     txtEditBox.SetFocus
  211.   End Sub
  212.  
  213.   Sub ClearScrollBarCheckMarks()
  214.     ' Clear any existing checkboxes
  215.     TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarNone", 0)
  216.     TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarHorizontal", 0)
  217.     TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarVertical", 0)
  218.     TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarBoth", 0)
  219.   End Sub
  220.  
  221.   Sub EditCopy_Click()
  222.     ' Copy and save the selected text to the CutBuffer
  223.     txtEditBox.Copy
  224.   End Sub
  225.  
  226.   Sub EditCut_Click()
  227.     ' Cut and save the selected text to the clip board
  228.     txtEditBox.Cut
  229.   End Sub
  230.  
  231.   Sub EditDelete_Click()
  232.     ' Remove the currently selected text
  233.     txtEditBox.Delete
  234.   End Sub
  235.  
  236.   Sub EditPaste_Click()
  237.     ' Insert the contents of the clipboard at the current type-in or selection
  238.     txtEditBox.Paste
  239.   End Sub
  240.  
  241.   Sub EditSelectAll_Click()
  242.     ' Select everything in the textbox
  243.     txtEditBox.SelectAll
  244.   End Sub
  245.  
  246.   Function EditSelectAll_Enable ()
  247.     EditSelectAll_Enable = txtEditBox.Text <> ""
  248.   End Function
  249.  
  250.   Sub EditUndo_Click()
  251.     ' Undo the last command
  252.     txtEditBox.Undo
  253.   End Sub
  254.  
  255.   Sub ExitApplication_Click()
  256.     ' Set the contents of the titlebar of the YesNoBox object
  257.     YesNoBox.title = "Quit?"
  258.   
  259.     ' Set the message of the YesNoPrompt object
  260.     YesNoBox.Msg("Ok to quit application?")
  261.   
  262.     ' If the Yes entry was clicked, hide the textedit form
  263.     If YesNoBox.result = 6 Then 
  264.       ' Forward to parent
  265.       Dim F Strictly As SampleMasterForm
  266.       F = Me
  267.       F.ExitApplication_Click
  268.     End If
  269.   End Sub
  270.  
  271.   Sub NewEditBox_Click()
  272.     If txtEditBox.ChangedFlag = True Then 
  273.       ' Set the contents of the titlebar of the YesNoBox object
  274.       YesNoBox.title = "Save Changes?"
  275.   
  276.       ' Set the message of the YesNoPrompt object
  277.       YesNoBox.Msg("Save your changes before starting a new file?")
  278.   
  279.       ' If the Yes entry was clicked, hide the textedit form
  280.       If YesNoBox.result = 6 Then 
  281.         txtEditBox.Save
  282.       End If
  283.     End If
  284.     ' Clear the contents of the text edit box
  285.     txtEditBox.Clear
  286.     ' Clear the contents of the txtfile object
  287.     txtEditBox.txtfile.FileName = ""
  288.   
  289.     txtEditBox.ChangedFlag = False
  290.     txtEditBox.SetFocus
  291.   End Sub
  292.  
  293.   Sub OpenFile_Click()
  294.     ' Call the openfile method of the editbox
  295.     txtEditBox.OpenFile
  296.     txtEditBox.Change
  297.   End Sub
  298.  
  299.   Sub OptionsFont_Click()
  300.     ' Call the textedit box setfont method
  301.     txtEditBox.SetFont
  302.   End Sub
  303.  
  304.   Sub PrintFile_Click()
  305.     ' Call the print text routine of the textedit box
  306.     txtEditBox.PrintText
  307.   End Sub
  308.  
  309.   Function PrintFile_Enable ()
  310.     PrintFile_Enable = txtEditBox.Text <> ""
  311.   End Function
  312.  
  313.   Sub ResetApplication_Click()
  314.     ' Initialize the Scrollbar entries
  315.     TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarNone", 1)
  316.     txtEditBox.SetScrollBars(0)
  317.   
  318.     ' Make the textedit box resize to the window size
  319.     TextEditMasterForm.Resize
  320.   
  321.     ' Clear out the textedit box
  322.     txtEditBox.Clear
  323.     txtEditBox.SetFocus
  324.   End Sub
  325.  
  326.   Sub Resize()
  327.     ' Set the size of the text edit box to the size of the form
  328.     txtEditBox.Move 0, 0, ScaleWidth, ScaleHeight
  329.     txtEditBox.Refresh
  330.   End Sub
  331.  
  332.   Sub SaveAsFile_Click()
  333.     ' Call the textedit boxes SaveAs method
  334.     txtEditBox.SaveAs
  335.   End Sub
  336.  
  337.   Sub SaveFile_Click()
  338.     ' Call the textedit box Save method
  339.     txtEditBox.Save
  340.   End Sub
  341.  
  342.   Sub ScrollBarBoth_Click()
  343.     ' If the scrollbar is alreay checked, ignore the command
  344.     If TextEditMenuBar.OptionsScrollBarMenu.ItemIsChecked("ScrollBarBoth") Then 
  345.       Exit Sub
  346.     Else 
  347.       ' Clear all checkmark entries in the menu
  348.       ClearScrollBarCheckMarks
  349.   
  350.       ' Add a checkmark to the Both entry
  351.       TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarBoth", 1)
  352.   
  353.       ' Set the scrollbar property to both
  354.       txtEditBox.SetScrollBars(3)
  355.   
  356.       ' Force the textedit box to resize to the form
  357.       TextEditMasterForm.Resize
  358.   
  359.     End If
  360.   End Sub
  361.  
  362.   Sub ScrollBarHorizontal_Click()
  363.     ' If the scrollbar is alreay checked, ignore the command
  364.     If TextEditMenuBar.OptionsScrollBarMenu.ItemIsChecked("ScrollBarHorizontal") Then 
  365.       Exit Sub
  366.     Else 
  367.       ' Clear all checkmark entries in the menu
  368.       ClearScrollBarCheckMarks
  369.   
  370.       ' Add a checkmark to the Horizontal entry
  371.       TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarHorizontal", 1)
  372.   
  373.       ' Set the scrollbar property to both
  374.       txtEditBox.SetScrollBars(1)
  375.   
  376.       ' Force the textedit box to resize to the form
  377.       TextEditMasterForm.Resize
  378.   
  379.     End If
  380.   
  381.   End Sub
  382.  
  383.   Sub ScrollBarNone_Click()
  384.     ' If the scrollbar is alreay checked, ignore the command
  385.     If TextEditMenuBar.OptionsScrollBarMenu.ItemIsChecked("ScrollBarNone") Then 
  386.       Exit Sub
  387.     Else 
  388.       ' Clear all checkmark entries in the menu
  389.       ClearScrollBarCheckMarks
  390.   
  391.       ' Add a checkmark to the None entry
  392.       TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarNone", 1)
  393.   
  394.       ' Set the scrollbar property to both
  395.       txtEditBox.SetScrollBars(0)
  396.   
  397.       ' Force the textedit box to resize to the form
  398.       TextEditMasterForm.Resize
  399.   
  400.     End If
  401.   
  402.   End Sub
  403.  
  404.   Sub ScrollBarVertical_Click()
  405.     ' If the scrollbar is alreay checked, ignore the command
  406.     If TextEditMenuBar.OptionsScrollBarMenu.ItemIsChecked("ScrollBarVertical") Then 
  407.       Exit Sub
  408.     Else 
  409.       ' Clear all checkmark entries in the menu
  410.       ClearScrollBarCheckMarks
  411.   
  412.       ' Add a checkmark to the Vertical entry
  413.       TextEditMenuBar.OptionsScrollBarMenu.CheckItem("ScrollBarVertical", 1)
  414.   
  415.       ' Set the scrollbar property to both
  416.       txtEditBox.SetScrollBars(2)
  417.   
  418.       ' Force the textedit box to resize to the form
  419.       TextEditMasterForm.Resize
  420.   
  421.     End If
  422.   
  423.   End Sub
  424.  
  425.   Sub SearchForward_Click()
  426.     ' Call the textedit boxes search function
  427.     txtEditBox.SearchForward
  428.   End Sub
  429.  
  430.   Sub SearchNext_Click()
  431.     ' Call the txtEditBox search next method
  432.     txtEditBox.SearchNext
  433.   End Sub
  434.  
  435. End Type
  436.  
  437. Begin Code
  438. ' Reconstruction commands for object: TextEditBox
  439. '
  440.   With TextEditBox
  441.     .ForeColor := 128
  442.     .Font := TextEditBox.TextFont
  443.     .Move(0, 0, 0, 0)
  444.     .WordWrap := True
  445.     .MultiLine := True
  446.     .ChangedFlag := 0
  447.     With .FontPanel
  448.       .FaceName := "Times New Roman"
  449.       .Size := 18
  450.       .Bold := True
  451.       .Italic := True
  452.       .Color := 128
  453.     End With  'TextEditBox.FontPanel
  454.     With .TextFont
  455.       .FaceName := "13"
  456.       .Size := 18.000000
  457.       .Bold := True
  458.       .Italic := True
  459.       .Strikethru := False
  460.     End With  'TextEditBox.TextFont
  461.     With .SaveAsPanel
  462.     End With  'TextEditBox.SaveAsPanel
  463.     With .SearchPanel
  464.     End With  'TextEditBox.SearchPanel
  465.     With .FilePanel
  466.     End With  'TextEditBox.FilePanel
  467.     With .txtfile
  468.     End With  'TextEditBox.txtfile
  469.   End With  'TextEditBox
  470. ' Reconstruction commands for object: TextEditMasterForm
  471. '
  472.   With TextEditMasterForm
  473.     .Caption := "BOOTCAMP Text Editor Application"
  474.     .Move(3720, 1740, 6930, 5535)
  475.     .MenuBar := TextEditMasterForm.TextEditMenuBar
  476.     .SampleDir := "W:\arsenal\apps\textedit\"
  477.     .SampleName := "textedit"
  478.     With .TextEditMenuBar
  479.  
  480.       .InsertPopup(TextEditMasterForm.TextEditMenuBar.TextEditFileMenu, "&File", -1)
  481.       .InsertPopup(TextEditMasterForm.TextEditMenuBar.TextEditEditMenu, "&Edit", -1)
  482.       .InsertPopup(TextEditMasterForm.TextEditMenuBar.TextEditSearchMenu, "&Search", -1)
  483.       .InsertPopup(TextEditMasterForm.TextEditMenuBar.TextEditOptionsMenu, "&Options", -1)
  484.       With .TextEditFileMenu
  485.  
  486.         .InsertItem("NewEditBox", "&New", -1)
  487.         .InsertItem("OpenFile", "&Open...", -1)
  488.         .InsertItem("SaveFile", "&Save", -1)
  489.         .InsertItem("SaveAsFile", "Save &As...", -1)
  490.         .InsertItem("PrintFile", "&Print", -1)
  491.         .InsertSeparator(-1)
  492.         .InsertItem("ExitApplication", "E&xit", -1)
  493.       End With  'TextEditMasterForm.TextEditMenuBar.TextEditFileMenu
  494.       With .TextEditEditMenu
  495.  
  496.         .InsertItem("EditUndo", "&Undo", -1)
  497.         .InsertSeparator(-1)
  498.         .InsertItem("EditCut", "Cu&t", -1)
  499.         .InsertItem("EditCopy", "&Copy", -1)
  500.         .InsertItem("EditPaste", "&Paste", -1)
  501.         .InsertItem("EditDelete", "&Delete", -1)
  502.         .InsertSeparator(-1)
  503.         .InsertItem("EditSelectAll", "Select &All", -1)
  504.       End With  'TextEditMasterForm.TextEditMenuBar.TextEditEditMenu
  505.       With .TextEditSearchMenu
  506.  
  507.         .InsertItem("SearchForward", "&Find...", -1)
  508.         .InsertItem("SearchNext", "Find &Next", -1)
  509.       End With  'TextEditMasterForm.TextEditMenuBar.TextEditSearchMenu
  510.       With .TextEditOptionsMenu
  511.  
  512.         .InsertItem("OptionsFont", "&Fonts...", -1)
  513.         .InsertPopup(TextEditMasterForm.TextEditMenuBar.OptionsScrollBarMenu, "ScrollBar", -1)
  514.       End With  'TextEditMasterForm.TextEditMenuBar.TextEditOptionsMenu
  515.       With .OptionsScrollBarMenu
  516.  
  517.         .InsertItem("ScrollBarNone", "None", -1)
  518.         .InsertItem("ScrollBarHorizontal", "Horizontal", -1)
  519.         .InsertItem("ScrollBarVertical", "Vertical", -1)
  520.         .InsertItem("ScrollBarBoth", "Both", -1)
  521.       End With  'TextEditMasterForm.TextEditMenuBar.OptionsScrollBarMenu
  522.     End With  'TextEditMasterForm.TextEditMenuBar
  523.     With .txtEditBox
  524.       .ForeColor := 0
  525.       .Font := TextEditMasterForm.txtEditBox.TextFont
  526.       .ZOrder := 1
  527.       .Move(0, 0, 6810, 4845)
  528.       .BorderStyle := "None"
  529.       .ChangedFlag := -1
  530.       With .FontPanel
  531.         .Size := 14
  532.         .Color := 0
  533.       End With  'TextEditMasterForm.txtEditBox.FontPanel
  534.       With .TextFont
  535.         .FaceName := "Courier"
  536.         .Size := 12.000000
  537.         .Bold := True
  538.         .Italic := False
  539.         .Strikethru := False
  540.       End With  'TextEditMasterForm.txtEditBox.TextFont
  541.       With .SaveAsPanel
  542.         .FileName := "W:\arsenal\apps\textedit\spam.txt"
  543.         .Filter := "Text Files (*.txt)"
  544.         .FilterIndex := 1
  545.       End With  'TextEditMasterForm.txtEditBox.SaveAsPanel
  546.       With .SearchPanel
  547.         .FindString := "spam"
  548.         .HideUpDown := True
  549.         .HideMatchCase := True
  550.         .HideWholeWord := True
  551.       End With  'TextEditMasterForm.txtEditBox.SearchPanel
  552.       With .FilePanel
  553.         .Title := "Select File"
  554.         .Filter := "Text files (*.txt)|*.txt|Script files (*.bat)|*.bat|Config files (*.ini)|*.ini|All files (*.*)|*.*|"
  555.         .FilterIndex := 4
  556.       End With  'TextEditMasterForm.txtEditBox.FilePanel
  557.       With .txtfile
  558.       End With  'TextEditMasterForm.txtEditBox.txtfile
  559.     End With  'TextEditMasterForm.txtEditBox
  560.     With .helpfile
  561.       .FileName := "W:\arsenal\apps\textedit\textedit.hlp"
  562.     End With  'TextEditMasterForm.helpfile
  563.   End With  'TextEditMasterForm
  564. End Code
  565.