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

  1. Type EroExplorer From Form
  2.   Type imgPicture From Image
  3.     Dim bitmap1 As New Bitmap
  4.   End Type
  5.   Dim lbFileContents As New ListBox
  6.   Dim txtFileName As New TextBox
  7.   Dim btnReadFile As New Button
  8.   Dim binfile As New BinaryFile
  9.   Type lblImageStats From Label
  10.     Dim font1 As New Font
  11.   End Type
  12.   Dim cbFit As New CheckBox
  13.   Dim Label1 As New Label
  14.   Dim Label2 As New Label
  15.   Dim Label3 As New Label
  16.   Type menubar1 From MenuBar
  17.     Dim Popup1 As New PopupMenu
  18.     Dim Popup2 As New PopupMenu
  19.   End Type
  20.   Dim helpfile As New HelpFile
  21.   Dim SampleName As String
  22.   Dim SampleDir As String
  23.  
  24.   ' METHODS for object: EroExplorer
  25.   Sub btnReadFile_Click()
  26.     If txtFileName.Text = "" Then 
  27.       InfoBox.Message("Warning", "No ERO filename has been specified.")
  28.     Else 
  29.       Dim nextId As Long
  30.       ' Clear the ResID list
  31.       lbFileContents.Clear
  32.       ' Read the filename into the BinaryFile object
  33.       ResIdReader.Reset(txtFileName.Text)
  34.       ' Populate the list with ResID numbers
  35.       Do
  36.         nextId = ResIdReader.NextResId()
  37.         If (nextId <> -1) Then lbFileContents.AddItem(nextId)
  38.       Loop While nextId <> -1
  39.       ' Select the first ResID on the list
  40.       lbFileContents.ListIndex = 0
  41.     End If
  42.   End Sub
  43.  
  44.   Sub cbFit_Click()
  45.     If cbFit.Value Then 
  46.       imgPicture.ResizeMode = "Fit"
  47.       imgPicture.InitCropRect
  48.     Else 
  49.       imgPicture.ResizeMode = "Clip"
  50.       imgPicture.ScaleX = 1.0
  51.       imgPicture.ScaleY = 1.0
  52.     End If
  53.   End Sub
  54.  
  55.   Sub Destruct()
  56.     helpfile.Quit
  57.   End Sub
  58.  
  59.   Sub ExitApplication_Click
  60.     helpfile.Quit
  61.     UnloadForm
  62.   End Sub
  63.  
  64.   Sub HelpContents_Click()
  65.     helpfile.Contents
  66.   End Sub
  67.  
  68.   Function HelpContents_Enable() As Integer
  69.     HelpContents_Enable = helpfile.Exists
  70.   End Function
  71.  
  72.   Sub InitHelpFile
  73.     helpfile.FileName = SampleDir & SampleName & ".hlp"
  74.   End Sub
  75.  
  76.   Sub lbFileContents_Click()
  77.     imgPicture.Picture.LoadType = "MemoryBased"
  78.     imgPicture.Picture.FileName = txtFileName.Text
  79.     imgPicture.Picture.ResId = lbFileContents.List(lbFileContents.ListIndex)
  80.   
  81.     ' Configure the image control to show "fitted" image or 1:1 scale image.
  82.     cbFit_Click()
  83.     imgPicture.Refresh
  84.   
  85.     lblImageStats.Text = imgPicture.Picture.Width & " x " & imgPicture.Picture.Height & " x " & imgPicture.Picture.NumColors
  86.   End Sub
  87.  
  88.   Sub OpenEROFile_Click()
  89.     Dim openDlg as new OpenDialog
  90.     openDlg.DefaultExtension = "ero"
  91.     openDlg.FileMustExist = False
  92.     openDlg.Filter = "Envelop Text Resource files (*.ero)|*.ero|All files (*.*)|*.*|"
  93.     openDlg.NoChangeDir = True
  94.     openDlg.Title = "Choose Envelop Text Resource File"
  95.     If openDlg.Execute = IDOK Then 
  96.       txtFileName.Text = openDlg.FileName
  97.       btnReadFile_Click
  98.     End If
  99.   End Sub
  100.  
  101.   Sub Preload
  102.     SetSampleDir
  103.     InitHelpFile
  104.     ResetApplication_Click
  105.     Show
  106.   End Sub
  107.  
  108.   Sub ResetApplication_Click()
  109.     ' Clear and reset the contents of the ERO Explorer
  110.     txtFileName.Text = ""
  111.     lbFileContents.Clear
  112.     lblImageStats.Text = ""
  113.     cbFit.Value = False
  114.     imgPicture.Picture.LoadType = "FileBased"
  115.     imgPicture.Picture.FileName = ""
  116.     imgPicture.Refresh
  117.   End Sub
  118.  
  119.   Sub Resize()
  120.     Dim Border As Integer
  121.     Border = 150
  122.   
  123.     btnReadFile.Left = ScaleWidth - btnReadFile.Width - Border
  124.     txtFileName.Width = btnReadFile.Left - txtFileName.Left - Border
  125.     lbFileContents.Height = ScaleHeight - lbFileContents.Top - Border
  126.     imgPicture.Width = ScaleWidth - imgPicture.Left - Border
  127.     imgPicture.Height = ScaleHeight - imgPicture.Top - Border
  128.     cbFit.Left = imgPicture.Left + imgPicture.Width - cbFit.Width
  129.     lblImageStats.Width = cbFit.Left - lblImageStats.Left
  130.   
  131.     lblImageStats.Refresh
  132.     txtFileName.Refresh
  133.   End Sub
  134.  
  135.   Sub SaveAsBinary
  136.     ModuleManager.ModuleContaining(Me).SaveAs(SampleDir & SampleName & ".ebo", False)
  137.   End Sub
  138.  
  139.   Sub SaveAsBitmapFile_Click()
  140.     Dim saveasDlg As New SaveAsDialog
  141.     saveasDlg.DefaultExtension = "bmp"
  142.     saveasDlg.Filter = "Bitmap files (*.bmp)|*.bmp|All files (*.*)|*.*|"
  143.     saveasDlg.NoChangeDir = True
  144.     saveasDlg.Title = "Select Bitmap File"
  145.     If saveasDlg.Execute = IDOK Then 
  146.       imgPicture.Picture.SaveAs(saveasDlg.FileName)
  147.     End If
  148.   End Sub
  149.  
  150.   Sub SaveAsText
  151.     ModuleManager.ModuleContaining(Me).SaveAs(SampleDir & SampleName & ".eto", True)
  152.   End Sub
  153.  
  154.   Sub SetSampleDir()
  155.     ' The purpose of this routine is to set "SampleDir", a string containing
  156.     ' the directory from which the application was loaded.  This may be useful
  157.     ' in the event any data must be saved from the application and File objects
  158.     ' were used and possibly changed our current directory.
  159.     Dim m As ObjectModule
  160.     Dim f As New File
  161.     m = ModuleManager.ModuleContaining(Me)
  162.     f.FileName = m.FileName
  163.     SampleDir = f.Path
  164.     SampleName = f.Name
  165.   End Sub
  166.  
  167. End Type
  168.  
  169. Type ResIdReader
  170.   Dim BinFile As New BinaryFile
  171.  
  172.   ' METHODS for object: ResIdReader
  173.   Function NextResId() As Long
  174.     dim tempInteger As Integer
  175.     dim tempLong As Long
  176.   
  177.     If (Not BinFile.IsOpen()) Then NextResId = -1 : Exit Function
  178.   
  179.     NextResId = BinFile.Position
  180.   
  181.     If (BinFile.ReadLong(tempLong) && tempLong = &H1020304) Then 
  182.       If (BinFile.ReadLong(tempLong) && tempLong = 99) Then 
  183.         ' Read Length
  184.         If (BinFile.ReadLong(tempLong)) Then 
  185.           ' We have successfully advanced to another position
  186.           BinFile.Position = BinFile.Position + tempLong
  187.           Exit Function
  188.         End If
  189.       End If
  190.     End If
  191.     ' Did not advance
  192.     NextResId = -1
  193.     BinFile.Close()
  194.   End Function
  195.  
  196.   Sub Reset(fname as String)
  197.     BinFile.FileName = fname
  198.     BinFile.OpenReadOnly()
  199.   End Sub
  200.  
  201. End Type
  202.  
  203. Type EROReader From Application
  204.   Dim AccessControl As New ACL
  205. End Type
  206.  
  207. Begin Code
  208. ' Reconstruction commands for object: EroExplorer
  209. '
  210.   With EroExplorer
  211.     .Caption := "ERO Explorer"
  212.     .Move(1770, 1530, 8220, 6570)
  213.     .DefaultButton := EroExplorer.btnReadFile
  214.     .MenuBar := EroExplorer.menubar1
  215.     .SampleName := "readero"
  216.     .SampleDir := "C:\envelop\arsenal\apps\readero\"
  217.     With .imgPicture
  218.       .Caption := "imgPicture"
  219.       .ZOrder := 9
  220.       .Move(2850, 1125, 5100, 4605)
  221.       .AutoInitCropRect := False
  222.       .Picture := EroExplorer.imgPicture.bitmap1
  223.       .ResizeMode := "Clip"
  224.       .ScaleX := 1
  225.       .ScaleY := 1
  226.       With .bitmap1
  227.         .Persistent := False
  228.       End With  'EroExplorer.imgPicture.bitmap1
  229.     End With  'EroExplorer.imgPicture
  230.     With .lbFileContents
  231.       .Caption := "lbFileContents"
  232.       .ZOrder := 8
  233.       .Move(150, 1125, 2565, 4590)
  234.       .Sorted := False
  235.     End With  'EroExplorer.lbFileContents
  236.     With .txtFileName
  237.       .ZOrder := 7
  238.       .Move(1200, 150, 5700, 375)
  239.     End With  'EroExplorer.txtFileName
  240.     With .btnReadFile
  241.       .Caption := "Read"
  242.       .ZOrder := 6
  243.       .Move(7050, 150, 900, 375)
  244.     End With  'EroExplorer.btnReadFile
  245.     With .binfile
  246.       .FileName := "w:\source\envelop\envelop1.ero"
  247.     End With  'EroExplorer.binfile
  248.     With .lblImageStats
  249.       .ForeColor := 0
  250.       .Font := EroExplorer.lblImageStats.font1
  251.       .ZOrder := 5
  252.       .Move(4200, 750, -3450, 300)
  253.       With .font1
  254.         .FaceName := "Arial"
  255.         .Size := 9.000000
  256.         .Bold := False
  257.         .Italic := False
  258.         .Strikethru := False
  259.       End With  'EroExplorer.lblImageStats.font1
  260.     End With  'EroExplorer.lblImageStats
  261.     With .cbFit
  262.       .Caption := "Fit"
  263.       .ZOrder := 4
  264.       .Move(7350, 750, 600, 300)
  265.     End With  'EroExplorer.cbFit
  266.     With .Label1
  267.       .Caption := "Bitmap Size:"
  268.       .ForeColor := 16711680
  269.       .ZOrder := 3
  270.       .Move(2850, 750, 1275, 300)
  271.     End With  'EroExplorer.Label1
  272.     With .Label2
  273.       .Caption := "ERO File:"
  274.       .ForeColor := 16711680
  275.       .ZOrder := 2
  276.       .Move(150, 225, 975, 300)
  277.     End With  'EroExplorer.Label2
  278.     With .Label3
  279.       .Caption := "ResID List:"
  280.       .ForeColor := 16711680
  281.       .ZOrder := 1
  282.       .Move(150, 750, 1125, 300)
  283.     End With  'EroExplorer.Label3
  284.     With .menubar1
  285.  
  286.       .InsertPopup(EroExplorer.menubar1.Popup1, "&File", -1)
  287.       .InsertPopup(EroExplorer.menubar1.Popup2, "&Help", -1)
  288.       With .Popup1
  289.  
  290.         .InsertItem("OpenEROFile", "&Open", -1)
  291.         .InsertItem("SaveAsBitmapFile", "&Save As", -1)
  292.         .InsertSeparator(-1)
  293.         .InsertItem("ResetApplication", "&Reset", -1)
  294.         .InsertSeparator(-1)
  295.         .InsertItem("ExitApplication", "&Exit", -1)
  296.       End With  'EroExplorer.menubar1.Popup1
  297.       With .Popup2
  298.  
  299.         .InsertItem("HelpContents", "&Contents", -1)
  300.       End With  'EroExplorer.menubar1.Popup2
  301.     End With  'EroExplorer.menubar1
  302.     With .helpfile
  303.       .FileName := "C:\envelop\arsenal\apps\readero\readero.hlp"
  304.     End With  'EroExplorer.helpfile
  305.   End With  'EroExplorer
  306. ' Reconstruction commands for object: ResIdReader
  307. '
  308.   With ResIdReader
  309.     With .BinFile
  310.     End With  'ResIdReader.BinFile
  311.   End With  'ResIdReader
  312. ' Reconstruction commands for object: EROReader
  313. '
  314.   With EROReader
  315.     .ModulePath := "base.ebo;win32.ebo;dialogs.ebo;tools.ebo;readero.eto"
  316.     .ProjectFileName := "C:\envelop\arsenal\apps\readero\readero.epj"
  317.     .MainForm := EroExplorer
  318.     .Path := "C:\envelop\arsenal\apps\readero\"
  319.     .EXEName := "readero"
  320.     With .AccessControl
  321.       .ObjectAccess := "R,W,C,M,P"
  322.     End With  'EROReader.AccessControl
  323.   End With  'EROReader
  324. End Code
  325.