home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 4_2005-2006.ISO / data / Zips / PSCSearch_19445110302005.psc / frmMain.frm < prev    next >
Text File  |  2005-10-30  |  14KB  |  414 lines

  1. VERSION 5.00
  2. Begin VB.Form frmMain 
  3.    BorderStyle     =   1  'Fixed Single
  4.    Caption         =   "Planet Source Code Search"
  5.    ClientHeight    =   5790
  6.    ClientLeft      =   150
  7.    ClientTop       =   540
  8.    ClientWidth     =   9975
  9.    Icon            =   "frmMain.frx":0000
  10.    LinkTopic       =   "Form1"
  11.    MaxButton       =   0   'False
  12.    MinButton       =   0   'False
  13.    ScaleHeight     =   5790
  14.    ScaleWidth      =   9975
  15.    StartUpPosition =   2  'CenterScreen
  16.    Begin VB.CheckBox chkZip 
  17.       Caption         =   "Zip Files"
  18.       Height          =   255
  19.       Left            =   6840
  20.       TabIndex        =   8
  21.       Top             =   140
  22.       Value           =   1  'Checked
  23.       Width           =   975
  24.    End
  25.    Begin VB.CheckBox chkText 
  26.       Caption         =   "Text Files"
  27.       Height          =   255
  28.       Left            =   7800
  29.       TabIndex        =   7
  30.       Top             =   140
  31.       Value           =   1  'Checked
  32.       Width           =   975
  33.    End
  34.    Begin PSCSearch.ctlDownImgForm myWebImg 
  35.       Height          =   3015
  36.       Left            =   6000
  37.       TabIndex        =   6
  38.       Top             =   480
  39.       Width           =   3855
  40.       _ExtentX        =   6800
  41.       _ExtentY        =   5318
  42.    End
  43.    Begin VB.ComboBox cboSort 
  44.       Height          =   315
  45.       ItemData        =   "frmMain.frx":57E2
  46.       Left            =   5280
  47.       List            =   "frmMain.frx":57F2
  48.       Style           =   2  'Dropdown List
  49.       TabIndex        =   5
  50.       ToolTipText     =   "Sort Key"
  51.       Top             =   120
  52.       Width           =   1455
  53.    End
  54.    Begin VB.ComboBox cboLanguage 
  55.       Height          =   315
  56.       ItemData        =   "frmMain.frx":582C
  57.       Left            =   3480
  58.       List            =   "frmMain.frx":5853
  59.       Style           =   2  'Dropdown List
  60.       TabIndex        =   1
  61.       ToolTipText     =   "Programming Language"
  62.       Top             =   120
  63.       Width           =   1695
  64.    End
  65.    Begin VB.CommandButton cmdSearch 
  66.       Caption         =   "Search"
  67.       Default         =   -1  'True
  68.       Height          =   285
  69.       Left            =   8880
  70.       TabIndex        =   2
  71.       ToolTipText     =   "Search for hippies in green jump suits"
  72.       Top             =   120
  73.       Width           =   975
  74.    End
  75.    Begin VB.TextBox txtCriteria 
  76.       Height          =   285
  77.       Left            =   120
  78.       TabIndex        =   0
  79.       ToolTipText     =   "Search Criteria"
  80.       Top             =   120
  81.       Width           =   3255
  82.    End
  83.    Begin VB.ListBox lstLinks 
  84.       BeginProperty Font 
  85.          Name            =   "Fixedsys"
  86.          Size            =   9
  87.          Charset         =   0
  88.          Weight          =   400
  89.          Underline       =   0   'False
  90.          Italic          =   0   'False
  91.          Strikethrough   =   0   'False
  92.       EndProperty
  93.       Height          =   2985
  94.       Left            =   120
  95.       TabIndex        =   4
  96.       ToolTipText     =   "Results"
  97.       Top             =   480
  98.       Width           =   5775
  99.    End
  100.    Begin VB.TextBox txtSummary 
  101.       BeginProperty Font 
  102.          Name            =   "Fixedsys"
  103.          Size            =   9
  104.          Charset         =   0
  105.          Weight          =   400
  106.          Underline       =   0   'False
  107.          Italic          =   0   'False
  108.          Strikethrough   =   0   'False
  109.       EndProperty
  110.       Height          =   2055
  111.       Left            =   120
  112.       MultiLine       =   -1  'True
  113.       ScrollBars      =   2  'Vertical
  114.       TabIndex        =   3
  115.       ToolTipText     =   "Program Description"
  116.       Top             =   3600
  117.       Width           =   9735
  118.    End
  119.    Begin VB.Menu mnuFile 
  120.       Caption         =   "File"
  121.       Begin VB.Menu mnuFileOpts 
  122.          Caption         =   "Options"
  123.       End
  124.       Begin VB.Menu mnuFileSep 
  125.          Caption         =   "-"
  126.       End
  127.       Begin VB.Menu mnuFileExit 
  128.          Caption         =   "Exit"
  129.       End
  130.    End
  131.    Begin VB.Menu mnuSpec 
  132.       Caption         =   "Special"
  133.       Begin VB.Menu mnuSpecNew 
  134.          Caption         =   "Newest Entries"
  135.       End
  136.       Begin VB.Menu mnuSpecMonth 
  137.          Caption         =   "Code Of The Month"
  138.       End
  139.       Begin VB.Menu mnuSpecFame 
  140.          Caption         =   "Hall Of Fame"
  141.       End
  142.    End
  143.    Begin VB.Menu mnuPop 
  144.       Caption         =   "Pop"
  145.       Begin VB.Menu mnuPopVisit 
  146.          Caption         =   "Open Project Page In Default Browser"
  147.       End
  148.       Begin VB.Menu mnuPopPreview 
  149.          Caption         =   "View Preview Screenshot"
  150.       End
  151.       Begin VB.Menu mnuPopGet 
  152.          Caption         =   "Download Project"
  153.       End
  154.    End
  155.    Begin VB.Menu mnuAbout 
  156.       Caption         =   "About"
  157.    End
  158. End
  159. Attribute VB_Name = "frmMain"
  160. Attribute VB_GlobalNameSpace = False
  161. Attribute VB_Creatable = False
  162. Attribute VB_PredeclaredId = True
  163. Attribute VB_Exposed = False
  164. Option Explicit
  165.  
  166. Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
  167.  
  168. Dim sURL As String
  169. Dim sData As String
  170.  
  171. Private Type PSCEntry
  172.     Type As String
  173.     Name As String
  174.     Link As String
  175.     Image As String
  176.     Rating As Single
  177.     Description As String
  178. End Type
  179. Dim Entry(1 To 100) As PSCEntry
  180.  
  181. Dim iCntIndex As Integer
  182.  
  183. Private Sub cmdSearch_Click()
  184.     Dim sSort As String, sCriteria As String
  185.     Dim i As Integer, iBOF As Long, iEOF As Long
  186.     Dim aEntries() As String
  187.     Dim iPreview As Long
  188.     
  189.     lstLinks.Clear
  190.     txtSummary = ""
  191.     myWebImg.HideImage
  192.     
  193.     If sURL = "" Then
  194.         Select Case cboSort.ListIndex
  195.             Case 0
  196.                 sSort = "Alphabetical"
  197.             Case 1
  198.                 sSort = "DateDescending"
  199.             Case 2
  200.                 sSort = "DateAscending"
  201.             Case 3
  202.                 sSort = "CountDescending"
  203.         End Select
  204.         
  205.         sCriteria = txtCriteria
  206.         
  207.         sURL = "http://pscode.com/vb/scripts/BrowseCategoryOrSearchResults.asp" & _
  208.         "?optSort=" & sSort & _
  209.         "&cmSearch=Search" & _
  210.         "&txtCriteria=" & txtCriteria & _
  211.         "&chkCodeTypeZip=" & IIf(chkZip.Value, "on", "off") & _
  212.         "&chkCodeTypeText=on" & IIf(chkText.Value, "on", "off") & _
  213.         "&blnResetAllVariables=TRUE" & _
  214.         "&txtMaxNumberOfEntriesPerPage=" & IIf(iMaxEntries > 0 And iMaxEntries < 31, iMaxEntries, 10) & _
  215.         "&chkCodeDifficulty=1%2C+2%2C+3%2C+4&lngWId=" & cboLanguage.ItemData(cboLanguage.ListIndex)
  216.         
  217.         Me.Caption = "Results for """ & sCriteria & """ in " & cboLanguage.Text
  218.     End If
  219.     
  220. Me.Caption = "Getting HTML"
  221.     sData = WebGetHTML(sURL)
  222. Me.Caption = "Parsing Out Garbage HTML"
  223.     iBOF = InStrRev(sData, "<!--Main td")
  224.     iEOF = InStrRev(sData, "<!page info>")
  225.     If iBOF < 1 Or iEOF <= iBOF Then
  226.         Me.Caption = "No Results"
  227.     Else
  228.         sData = Mid(sData, iBOF, iEOF - iBOF)
  229. Me.Caption = "Parsing for Entries"
  230.         sData = Replace(sData, "<FONT Size=2 >     ", "")
  231.         aEntries = Split(sData, "<!--descrip-->")
  232.         
  233.         For i = 1 To UBound(aEntries)
  234.             sData = aEntries(i)
  235.             iPreview = 0
  236.         ' set link
  237.             iBOF = InStr(1, sData, "/vb/scripts/")
  238.             iEOF = InStr(iBOF, sData, """>")
  239.             Entry(i).Link = "http://www.pscode.com/" & Mid(sData, iBOF, iEOF - iBOF)
  240.         ' set type
  241.             If InStr(iBOF, sData, "_") > 0 Then
  242.                 Entry(i).Type = "CodeZip"
  243.             Else
  244.                 Entry(i).Type = "ShowCode"
  245.             End If
  246.         ' set name
  247.             iBOF = InStr(iEOF, sData, "alt=""") + 5
  248.             iEOF = InStr(iBOF, sData, """")
  249.             Entry(i).Name = Mid(sData, iBOF, iEOF - iBOF)
  250.             lstLinks.AddItem Entry(i).Name
  251.         ' set description
  252.             iBOF = InStr(iEOF, sData, "<!description>") + 14
  253.             iEOF = InStr(iBOF, sData, "<a href=""/upload")
  254.             If iEOF <= iBOF Then iEOF = InStr(iBOF, sData, "</font>") Else: iPreview = iEOF
  255.             If iEOF <= iBOF Then iEOF = InStr(iBOF, sData, "<HR>")
  256.             Entry(i).Description = Mid(sData, iBOF, iEOF - iBOF)
  257.         ' set screenshot image
  258.             If iPreview > iBOF Then
  259.                 iBOF = InStr(iEOF, sData, "/upload_PSC/")
  260.                 iEOF = InStr(iBOF, sData, """") - 1
  261.                 Entry(i).Image = "http://www.pscode.com/" & Trim(Mid(sData, iBOF, iEOF - iBOF))
  262.             End If
  263.             
  264.         Next i
  265.     End If
  266.     
  267.     sURL = ""
  268. End Sub
  269.  
  270. Private Sub Form_Load()
  271.     cboLanguage.ListIndex = GetSetting("PSCSearch", "Settings", "Language", 0)
  272.     cboSort.ListIndex = GetSetting("PSCSearch", "Settings", "SortBy", 3)
  273.     sAccessCode = GetSetting("PSCSearch", "Settings", "AccessCode", "")
  274.     iMaxEntries = GetSetting("PSCSearch", "Settings", "MaxEntries", 10)
  275.     
  276.     myWebImg.Status = "Preview Area"
  277.     myWebImg.StatusVisible = True
  278.     myWebImg.HideImage
  279. End Sub
  280.  
  281. Private Sub Form_Unload(Cancel As Integer)
  282.     On Error Resume Next
  283.     
  284.     SaveSetting "PSCSearch", "Settings", "Language", cboLanguage.ListIndex
  285.     SaveSetting "PSCSearch", "Settings", "SortBy", cboSort.ListIndex
  286.     SaveSetting "PSCSearch", "Settings", "AccessCode", sAccessCode
  287.     SaveSetting "PSCSearch", "Settings", "MaxEntries", iMaxEntries
  288.     
  289.     Kill "tmp.jpg"
  290. End Sub
  291.  
  292. Private Sub lstLinks_Click()
  293.     If lstLinks.ListCount > 0 Then
  294.         If lstLinks.ListIndex > -1 Then
  295.             txtSummary = "Type: " & Entry(lstLinks.ListIndex + 1).Type & vbNewLine & vbNewLine & _
  296.                          "Description: " & Entry(lstLinks.ListIndex + 1).Description
  297.             
  298.             If Entry(lstLinks.ListIndex + 1).Image <> "" Then
  299.                 myWebImg.Status = "Right Click for Preview"
  300.             Else
  301.                 myWebImg.Status = "No Preview Available"
  302.             End If
  303.             myWebImg.StatusVisible = True
  304.             myWebImg.HideImage
  305.         End If
  306.     End If
  307. End Sub
  308.  
  309. Private Sub lstLinks_DblClick()
  310.     mnuPopVisit_Click
  311. End Sub
  312.  
  313. Private Sub lstLinks_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  314.     If Button = vbRightButton Then
  315.         If lstLinks.ListCount > 0 Then
  316.             If lstLinks.ListIndex > -1 Then
  317.                 PopupMenu mnuPop
  318.             End If
  319.         End If
  320.     End If
  321. End Sub
  322.  
  323. Private Sub mnuAbout_Click()
  324.     MsgBox "The Planet Source Code Search Frontend" & vbNewLine & vbNewLine & _
  325.     "Coded by Locohozt", vbCritical, "About"
  326. End Sub
  327.  
  328. Private Sub mnuFileExit_Click()
  329.     End
  330. End Sub
  331.  
  332. Private Sub mnuFileOpts_Click()
  333.     frmOptions.Show vbModal, Me
  334. End Sub
  335.  
  336. Private Sub mnuPopGet_Click()
  337.     If lstLinks.ListCount > 0 Then
  338.         If lstLinks.ListIndex > -1 Then
  339.             If sAccessCode <> "" Then
  340.                 Dim sLink As String, sType As String, sName As String
  341.                 Dim iBOF As Long, iEOF As Long
  342.                 
  343.                 sLink = Entry(lstLinks.ListIndex + 1).Link
  344.                 sType = Entry(lstLinks.ListIndex + 1).Type
  345.                 sName = Entry(lstLinks.ListIndex + 1).Name
  346.                 
  347.                 iBOF = InStr(1, sLink, "txtCodeId=") + 10
  348.                 iEOF = InStr(iBOF, sLink, "&")
  349.                 
  350.                 If sType = "CodeZip" Then
  351.                     sName = sName & ".zip"
  352.                     sType = "ShowZip"
  353.                 ElseIf sType = "ShowCode" Then
  354.                     sName = sName & ".bas"
  355.                     sType = "ShowCodeAsText"
  356.                 End If
  357.                 
  358.                 sLink = "http://pscode.com/vb/scripts/" & sType & ".asp" & _
  359.                         "?lngWId=1&lngCodeId=" & Mid(sLink, iBOF, iEOF - iBOF) & _
  360.                         "&strZipAccessCode=" & sAccessCode
  361.                 InputBox 1, 1, sLink
  362.                 'WebGetBinary sLink, sName
  363.             Else
  364.                 MsgBox "Access Code required. Set it in the options form." & vbNewLine & _
  365.                         "If you don't understand it: Just visit the project page"
  366.             End If
  367.         End If
  368.     End If
  369. End Sub
  370.  
  371. Private Sub mnuPopPreview_Click()
  372.     If lstLinks.ListCount > 0 Then
  373.         If lstLinks.ListIndex > -1 Then
  374.             Dim sFile As String
  375.             sFile = Entry(lstLinks.ListIndex + 1).Image
  376.             
  377.             If sFile <> "" Then
  378.                 myWebImg.Status = "Retrieving Preview"
  379.                 myWebImg.StatusVisible = True
  380.                 myWebImg.HideImage
  381.                 
  382.                 myWebImg.DisplayImage sFile
  383.             Else
  384.                 myWebImg.Status = "No Preview Available"
  385.                 myWebImg.StatusVisible = True
  386.                 myWebImg.HideImage
  387.             End If
  388.         End If
  389.     End If
  390. End Sub
  391.  
  392. Private Sub mnuPopVisit_Click()
  393.     If lstLinks.ListCount > 0 Then
  394.         If lstLinks.ListIndex > -1 Then
  395.             ShellExecute 0, vbNullString, Entry(lstLinks.ListIndex + 1).Link, vbNullString, vbNullString, vbNormalFocus
  396.         End If
  397.     End If
  398. End Sub
  399.  
  400. Private Sub mnuSpecFame_Click()
  401.     sURL = "http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?grpCategories=-1&txtMaxNumberOfEntriesPerPage=10&blnTopCode=True&blnResetAllVariables=TRUE&lngWid=1"
  402.     cmdSearch_Click
  403. End Sub
  404.  
  405. Private Sub mnuSpecMonth_Click()
  406.     sURL = "http://www.planet-source-code.com/vb/contest/ContestAndLeaderBoard.asp?lngWid=1"
  407.     cmdSearch_Click
  408. End Sub
  409.  
  410. Private Sub mnuSpecNew_Click()
  411.     sURL = "http://www.planet-source-code.com/vb/scripts/BrowseCategoryOrSearchResults.asp?grpCategories=-1&optSort=DateDescending&txtMaxNumberOfEntriesPerPage=10&blnNewestCode=TRUE&blnResetAllVariables=TRUE&lngWid=1"
  412.     cmdSearch_Click
  413. End Sub
  414.