home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / vbasic / Data / Utils / glm2demo.exe / %MAINDIR% / HexEdit / HexSample.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  2002-06-10  |  9.4 KB  |  318 lines

  1. VERSION 5.00
  2. Object = "{684E631B-2953-11D1-B8F0-00001C500B3F}#1.0#0"; "dwHxEdtD.ocx"
  3. Begin VB.Form frmHexSample 
  4.    Caption         =   "HexEditor - [Empty]"
  5.    ClientHeight    =   3195
  6.    ClientLeft      =   165
  7.    ClientTop       =   735
  8.    ClientWidth     =   4680
  9.    Icon            =   "HexSample.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   3195
  12.    ScaleWidth      =   4680
  13.    StartUpPosition =   3  'Windows Default
  14.    Begin dwHexEditDemo.HexEdit HexEdit1 
  15.       Height          =   3255
  16.       Left            =   0
  17.       TabIndex        =   0
  18.       Top             =   0
  19.       Width           =   4695
  20.       _ExtentX        =   8281
  21.       _ExtentY        =   5741
  22.       BytesPerLine    =   6
  23.    End
  24.    Begin VB.Menu mnuFile 
  25.       Caption         =   "&File"
  26.       Begin VB.Menu mnuFileNew 
  27.          Caption         =   "&New"
  28.       End
  29.       Begin VB.Menu mnuFileOpen 
  30.          Caption         =   "&Open"
  31.       End
  32.       Begin VB.Menu mnuFileSave 
  33.          Caption         =   "&Save"
  34.       End
  35.       Begin VB.Menu mnuFileSaveAs 
  36.          Caption         =   "Save &As"
  37.       End
  38.       Begin VB.Menu mnuSep1 
  39.          Caption         =   "-"
  40.       End
  41.       Begin VB.Menu mnuFileExit 
  42.          Caption         =   "E&xit"
  43.       End
  44.    End
  45.    Begin VB.Menu mnuEdit 
  46.       Caption         =   "&Edit"
  47.       Begin VB.Menu mnuEditCopy 
  48.          Caption         =   "&Copy"
  49.       End
  50.       Begin VB.Menu mnuEditCopyAscii 
  51.          Caption         =   "Copy &Ascii"
  52.       End
  53.    End
  54.    Begin VB.Menu mnuOpt 
  55.       Caption         =   "&Options"
  56.       Begin VB.Menu mnuOptAsc 
  57.          Caption         =   "&AsciiDisplay"
  58.          Checked         =   -1  'True
  59.       End
  60.       Begin VB.Menu mnuOptAddr 
  61.          Caption         =   "A&ddressDisplay"
  62.          Checked         =   -1  'True
  63.       End
  64.       Begin VB.Menu mnuOptReadOnly 
  65.          Caption         =   "&ReadOnly"
  66.          Checked         =   -1  'True
  67.       End
  68.       Begin VB.Menu mnuOptExt 
  69.          Caption         =   "&ExtendedSelection"
  70.       End
  71.       Begin VB.Menu mnuOptEnabled 
  72.          Caption         =   "E&nabled"
  73.          Checked         =   -1  'True
  74.       End
  75.       Begin VB.Menu mnuSep2 
  76.          Caption         =   "-"
  77.       End
  78.       Begin VB.Menu mnuOptColor 
  79.          Caption         =   "&Change Color"
  80.       End
  81.       Begin VB.Menu mnuOptSelColor 
  82.          Caption         =   "Change &Selected Color"
  83.       End
  84.    End
  85.    Begin VB.Menu mnuHelp 
  86.       Caption         =   "&Help"
  87.       Begin VB.Menu mnuHelpAbout 
  88.          Caption         =   "&About This Program..."
  89.       End
  90.       Begin VB.Menu mnuHelpOther 
  91.          Caption         =   "&Other Desaware Products..."
  92.       End
  93.    End
  94. Attribute VB_Name = "frmHexSample"
  95. Attribute VB_GlobalNameSpace = False
  96. Attribute VB_Creatable = False
  97. Attribute VB_PredeclaredId = True
  98. Attribute VB_Exposed = False
  99. Option Explicit
  100. Private FileChanged As Boolean
  101. Private FileOpened As Boolean
  102. Private tFileName As String
  103. Private tFullFileName As String
  104. Private FileUntitled As Boolean
  105. Private cmdDlg2 As dwFileOpenSave
  106. Private Sub HexEdit1_Change()
  107.     FileChanged = True
  108. End Sub
  109. Private Sub Form_Load()
  110.     Me.Show
  111.     Set cmdDlg2 = New dwFileOpenSave
  112.     HexEdit1.Enabled = False
  113.      
  114.     Call DoOpenFile
  115.         
  116. End Sub
  117. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  118.     If Not CheckForSave() Then Cancel = True
  119. End Sub
  120. Private Sub Form_Resize()
  121.     HexEdit1.Move 0, 0, ScaleWidth, ScaleHeight
  122. End Sub
  123. Private Sub Form_Unload(Cancel As Integer)
  124.     Set cmdDlg2 = Nothing
  125. End Sub
  126. Private Sub mnuEditCopy_Click()
  127.     HexEdit1.CopyHex
  128. End Sub
  129. Private Sub mnuEditCopyAscii_Click()
  130.     HexEdit1.CopyAscii
  131. End Sub
  132. Private Sub mnuFileExit_Click()
  133.     Unload Me
  134. End Sub
  135. Private Function DoOpenFile() As Boolean
  136.     cmdDlg2.DlgWindowOwner = Me.hWnd
  137.     cmdDlg2.DialogTitle = "Open File"
  138.     cmdDlg2.Filter = "All Files|*.*"
  139.     cmdDlg2.Flags = glmcdOFNExplorer Or glmcdOFNFileMustexist
  140.     cmdDlg2.ShowOpen
  141.     If cmdDlg2.filename = "" Then Exit Function
  142.     If Dir$(cmdDlg2.filename) = "" Then Exit Function
  143.     If Not DoLoadFile(cmdDlg2.filename) Then Exit Function
  144.     FileChanged = False
  145.     FileOpened = True
  146.     tFileName = cmdDlg2.FileTitle
  147.     If (cmdDlg2.Flags And glmcdOFNReadOnly) Then
  148.         mnuOptReadOnly.Checked = True
  149.         HexEdit1.ReadOnly = True
  150.     Else
  151.         mnuOptReadOnly.Checked = False
  152.         HexEdit1.ReadOnly = False
  153.     End If
  154.     tFullFileName = cmdDlg2.filename
  155.     HexEdit1.Enabled = True
  156.     FileUntitled = False
  157.     Me.Caption = "HexEditor - " & tFileName
  158.     DoOpenFile = True
  159. End Function
  160. Private Function DoLoadFile(fName As String) As Boolean
  161.     Dim fSize As Long
  162.     Dim fBuffer() As Byte
  163.     Dim fNum As Long
  164.     fSize = FileLen(fName)
  165.     If fSize <= 1 Or fSize > 50000 Then
  166.         MsgBox "File '" & fName & "' is either empty or over 50k", vbExclamation, "HexEditSample - Error"
  167.         DoLoadFile = False
  168.         Exit Function
  169.     End If
  170.     ReDim fBuffer(fSize) As Byte
  171.     fNum = FreeFile
  172.     Open fName For Binary Access Read As fNum
  173.     fBuffer = InputB(fSize, #fNum)
  174.     Close #fNum
  175.     HexEdit1.SetMemoryBlockByByte fBuffer(0), fSize
  176.     DoLoadFile = True
  177. End Function
  178. Private Function CheckForSave() As Boolean
  179.     Dim msgAns As VbMsgBoxResult
  180.     If FileChanged Then
  181.         msgAns = MsgBox("The file '" & tFileName & "' has been modified. Would you like to save changes?", vbYesNoCancel + vbInformation, "File Modified")
  182.         If msgAns = vbCancel Then
  183.             Exit Function
  184.         ElseIf msgAns = vbYes Then
  185.             Call DoSaveFile
  186.         End If
  187.     End If
  188.     CheckForSave = True
  189. End Function
  190. Private Sub DoSaveFile()
  191.     If FileUntitled = True Then
  192.         Call DoSaveAs
  193.         Exit Sub
  194.     End If
  195.     Call WriteFile
  196. End Sub
  197. Private Sub WriteFile()
  198.     Dim fSize As Long
  199.     Dim fBuffer() As Byte
  200.     Dim fNum As Long
  201.     fSize = HexEdit1.BufferSize
  202.     ReDim fBuffer(1 To fSize) As Byte
  203.     HexEdit1.CopyBufferByByte fBuffer(1)
  204.     fNum = FreeFile
  205.     Open tFullFileName For Binary Access Write As fNum
  206.     Put #fNum, , fBuffer
  207.         
  208.     Close #fNum
  209.     FileChanged = False
  210.     FileUntitled = False
  211. End Sub
  212. Private Sub mnuFileNew_Click()
  213.     If CheckForSave() Then Call CreateNewFile
  214. End Sub
  215. Private Function DoSaveAs() As Boolean
  216.     cmdDlg2.DlgWindowOwner = Me.hWnd
  217.     cmdDlg2.DialogTitle = "Save As"
  218.     cmdDlg2.Filter = "All Files|*.*"
  219.     cmdDlg2.Flags = glmcdOFNExplorer Or glmcdOFNHideReadOnly
  220.      
  221.     cmdDlg2.ShowSave
  222.     If cmdDlg2.filename = "" Then Exit Function
  223.         
  224.     tFileName = cmdDlg2.FileTitle
  225.     tFullFileName = cmdDlg2.filename
  226.     Me.Caption = "HexEditor - " & tFileName
  227.     Set cmdDlg2 = Nothing
  228.     DoSaveAs = True
  229.     Call WriteFile
  230. End Function
  231. Private Function CreateNewFile() As Boolean
  232.     Dim nfSize&
  233.     Dim fBuffer() As Byte
  234.     On Error GoTo HandleInputError
  235.     nfSize = CInt(InputBox("Enter the size, in bytes, of the file you want created.", "New File", "1024"))
  236.     On Error GoTo 0
  237.     If nfSize < 1 Or nfSize > 50000 Then
  238.         MsgBox "That file size is invalid or above 50k.", vbCritical, "Error: New File"
  239.         Exit Function
  240.     End If
  241.     ReDim fBuffer(1 To nfSize)
  242.     HexEdit1.SetMemoryBlockByByte fBuffer(1), nfSize
  243.     FileChanged = True
  244.     FileUntitled = True
  245.     CreateNewFile = True
  246.     tFileName = ""
  247.     tFullFileName = ""
  248.     Me.Caption = "HexEditor - [Untitled]"
  249.     Exit Function
  250. HandleInputError:
  251.     Exit Function
  252. End Function
  253. Private Sub mnuFileOpen_Click()
  254.     If CheckForSave() Then Call DoOpenFile
  255. End Sub
  256. Private Sub mnuFileSave_Click()
  257.     Call DoSaveFile
  258. End Sub
  259. Private Sub mnuFileSaveAs_Click()
  260.     Call DoSaveAs
  261. End Sub
  262. Private Sub mnuHelpAbout_Click()
  263.     frmAbout.Show 1
  264. End Sub
  265. Private Sub mnuHelpOther_Click()
  266.     sdother.Show 1
  267. End Sub
  268. Private Sub mnuOptAddr_Click()
  269.     mnuOptAddr.Checked = Not mnuOptAddr.Checked
  270.     HexEdit1.AddressDisplay = mnuOptAddr.Checked
  271. End Sub
  272. Private Sub mnuOptAsc_Click()
  273.     mnuOptAsc.Checked = Not mnuOptAsc.Checked
  274.     HexEdit1.AsciiDisplay = mnuOptAsc.Checked
  275. End Sub
  276. Private Sub mnuOptColor_Click()
  277.     With HexEdit1
  278.         If .BackColor = vbWhite Then
  279.             .BackColor = vbBlack
  280.         Else
  281.             .BackColor = vbWhite
  282.         End If
  283.         
  284.         If .ForeColor = vbBlack Then
  285.             .ForeColor = vbWhite
  286.         Else
  287.             .ForeColor = vbBlack
  288.         End If
  289.     End With
  290. End Sub
  291. Private Sub mnuOptEnabled_Click()
  292.     mnuOptEnabled.Checked = Not mnuOptEnabled.Checked
  293.     HexEdit1.Enabled = mnuOptEnabled.Checked
  294. End Sub
  295. Private Sub mnuOptExt_Click()
  296.     mnuOptExt.Checked = Not mnuOptExt.Checked
  297.     HexEdit1.ExtendedSelection = mnuOptExt.Checked
  298. End Sub
  299. Private Sub mnuOptReadOnly_Click()
  300.     mnuOptReadOnly.Checked = Not mnuOptReadOnly.Checked
  301.     HexEdit1.ReadOnly = mnuOptReadOnly.Checked
  302. End Sub
  303. Private Sub mnuOptSelColor_Click()
  304.     With HexEdit1
  305.         If .SelectedBackColor = vbBlue Then
  306.             .SelectedBackColor = vbRed
  307.         Else
  308.             .SelectedBackColor = vbBlue
  309.         End If
  310.         
  311.         If .SelectedForeColor = vbWhite Then
  312.             .SelectedForeColor = vbBlue
  313.         Else
  314.             .SelectedForeColor = vbWhite
  315.         End If
  316.     End With
  317. End Sub
  318.