本人以前在国内是从事ASP网站工作的,前2个月申请来新工作.用的是VB语言.因为大学只用了一点点VB,所以现在遇到了困难.恳请大家帮个忙.老板给我的工作是要我做一个餐厅桌子方面的模块
(1:大厅桌子排列,不同的状态用不一样的图片显示.(每日经理可以允许对桌子进行重新排列(桌子可以移动)).
一桌可以多人坐(一桌多单).一单多桌(合单).)VB+ACCESS/MYSQL的.已经2个月了.现在我是一点头绪也没有,在CSDN希望能有人帮我.谢谢大家!

解决方案 »

  1.   

    1.一个能自己移动的桌子(FRAME中),大厅显示的桌子(空闲是一个颜色或图片,使用是另一种颜色或图片,预定又是预定的颜色或图片).
      

  2.   

    [Quote=引用 5 楼 tongnaifu 的回复:]老板说现在先做出只要能让客户移动,并且大厅能显示(空闲,使用,预定)的桌子.(先让客户用着,因为我们公司是用收银机的,客户已经购买了机器.以前做的程序不可以移动,并且被模块化了).所以要先做一个简单的给客户用.慢慢的再把一切需要的功能添加进去.我现在一团糟了,完全模糊了.显示方面做不到,移动也只能做一个按钮能移动的.桌子图片移动也不会.太糟糕了!
      

  3.   


    临时应急关键词:form/picture/imgage/rgn/dragdrop
    给主form一个俯拍的餐厅图做背景图,用picture放桌子图片,image或picture放客户图片,实现拖拽移动以后有时间慢慢搞:
    ---MDI窗口做餐厅,子窗口做桌子(可以做异形窗口完全呈现桌子形状)
    或者用一个普通FORM做父窗口,其他的“桌子”窗口全部用setParent成为其子窗口,这样移动问题就不用考虑了
      

  4.   

    就是ListView,和资源管理器的功能差不多ListView控件 
    ImageList控件先在imagelist中添加好图片~双击listview的自定义。之后在属性页中设置图象列表由无改成imagelist1最后用ListView1.ListItems.Add , , "项目名字", 1来增加项目就或以了                       后面的1是代码imagelist1里的图标编号提问人的追问   2009-05-23 10:39 谢谢,这次程序没有报错了~~~但是为什么我还是不能显示图片呢?
    回答人的补充   2009-05-23 14:01 应 不会不显示图片的呀..会不会是你把view属性改了呢..选中listview控件.之后在右边的属性页里把view改成0
      

  5.   

    需求分析:1:顾客进餐厅可以在前台找到空闲(或预定)的位置.
            2:每天经理都可以对餐厅的桌子进行重新排列.
            3:餐厅要随时刷新餐厅桌子状态.
    设计要求:1:建数据库表site(桌子ID,桌子名称number,包厢费price,状态sitestatus(0表示空闲,1表示使用,2表示预定),菜单价格totalprice)
            2:通过判断桌子状态sitestatus的值
    If optSelect(1).Value = True Then sWhere = " Where SiteStatus like = '%0%'",来显示.
            3.界面美观.图片真实(个人觉的是用2个FRAME来实现(一个装查询条件(opt),一个装显示图片的控件(picturebox)))
    个人感觉跟QQ游戏里面有点相同,用图片控件来实现(不过我不会).郁闷中!!
    新加坡客户要求一大堆...自己水平不够呀.
      

  6.   

    需求:因为新加坡的这个餐厅经常就是排列桌子(桌子可以根据他们经理的意志进行排列),所以我们把桌子设计成可以移动的就可以了。方法:PICTUREBOX()根IMAGE()容器用FRAME装。
    数据库设计:(桌子ID,桌子名称number,包厢费price,状态sitestatus(0表示空闲,1表示使用,2表示预定),菜单价格totalprice) 
    现在先能做到这个就可以了,其他的那些以后慢慢来做。
      

  7.   

    这是控件移动的代码,问题是需要人工去干预的.你的情况似乎涉及无线通信及GPS定位等,问题并不简单.
    Option Explicit
        Dim cX As Long
        Dim cY As LongPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
        Source.Move X - cX, Y - cY
    End SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Picture1.Drag 1
        cX = X: cY = Y
    End SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Picture1.Drag 2
    End Sub
      

  8.   

    你的程序核心功能是两大部分1、记录并显示桌子的状态
    2、支持用户手工移动桌子的位置(排列桌子)第一部分是比较简单的。你就在数据库里记录桌子的状态,每次用户更改了桌子的状态后你实时更新数据和显示就可以了。第二部分初看起来有点麻烦。相当于你要实现一个类似VISIO那样的画图程序,用户可以把里面的形状拖来拖去。不过的话,也许你可以用控件数组或者控件类来实现多个桌子,这样你只要写好一个桌子的拖拽代码就好了。设计时先手工做一个和饭店内部格局的底图作为form的底图,然后在上面放上等比例缩放的桌子image.我开发经验很少,说的不一定对,供你参考。
      

  9.   

    有没有搞错,一个picturebox放到窗体上鼠标点击拖动这个功能会实现吧?一个会移了,n也就会移了吧?移过后再将所有picturebox的left,top,保存下不就ok了吗?ps:看到你这个题目我第一联想到了98印尼排华事件,以后慎用
      

  10.   

    接24楼代码,同一窗体的保存和初始化代码
    Private Sub Timer1_Timer()
        yibiao_weizhi(0) = Picture1.Top
        yibiao_weizhi(1) = Picture1.Left
        yibiao_weizhi(2) = Picture2.Top
        yibiao_weizhi(3) = Picture2.Left
        Open App.Path & "\data.txt" For Output As #1
        For main_i = 0 To 3
            Write #1, yibiao_weizhi(main_i)
        Next
        Close
        Timer1.Enabled = False
    End SubPrivate Sub Form_Load()
        frmYibiao.Show
        frmYibiao.Width = Me.ScaleWidth
        frmYibiao.Height = Me.ScaleHeight
        frmYibiao.Top = 0
        frmYibiao.Left = 0
        On Error GoTo uerror
        Open App.Path & "\data.txt" For Input As #1
        For main_i = 0 To 3
            Input #1, yibiao_weizhi(main_i)
        Next
        Close
        Picture1.Top = yibiao_weizhi(0)
        Picture1.Left = yibiao_weizhi(1)
        Picture2.Top = yibiao_weizhi(2)
        Picture2.Left = yibiao_weizhi(3)
        Exit Sub
    uerror:
    End Sub
      

  11.   

    哦,接受大家的批评..
    Option ExplicitDim cX As Long, cY As LongPrivate Type PointAPI
        X  As Long
        Y  As Long
    End TypePrivate mbActive                As Boolean
    Private mlCurThumb              As Long
    Private Const SRCCOPY           As Long = &HCC0020
    Private Const STRETCH_HALFTONE  As Long = &H4&
    Private Const SW_RESTORE        As Long = &H9&Private Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function SetBrushOrgEx Lib "gdi32" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lpPt As PointAPI) As Long
    Private Declare Function SetStretchBltMode Lib "gdi32" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
    Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
    Private Declare Function UnrealizeObject Lib "gdi32" (ByVal hObject As Long) As Long
    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
    '´òÓ¡×ÖÄ»
    Private Declare Function TextOut& Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long)Dim lCount As Long   'ͼƬ×ÜÊý
    Dim sWhere As String 'Ìõ¼þ×Ö·û´®Private Sub cmdClose_Click()
        Unload Me
    End SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
        Source.Move X - cX, Y - cY
    End SubPrivate Sub Form_Load()
        On Error Resume Next
        picFrame.Visible = False
        If optSelect(0).Value = True Then sWhere = ""
        If optSelect(1).Value = True Then sWhere = " Where SiteStatus like = '%0%'"
        If optSelect(2).Value = True Then sWhere = " Where SiteStatus like = '%1%'"
        If optSelect(3).Value = True Then sWhere = " Where SiteStatus like = '%2%'"
        Me.MousePointer = 11
        Browse   'ä¯ÀÀ²Í×À
        Me.MousePointer = 0
    End SubPublic Sub Form_Resize()
        If Me.ScaleWidth > 0 Then
            Frame1.Width = Me.ScaleWidth - 6
            cmdClose.Left = Me.Width - cmdClose.Width - 320
            If Me.Width < 346 * Screen.TwipsPerPixelX Then
                Me.Width = 346 * Screen.TwipsPerPixelX
            ElseIf Me.Height < 378 * Screen.TwipsPerPixelY Then
                Me.Height = 378 * Screen.TwipsPerPixelY
            Else
            End If
        End If
    End SubPrivate Sub optSelect_Click(Index As Integer)  On Error Resume Next
      
     'ËùÓв˵¥ÎÞЧ
      mnuBookthis.Enabled = False
      mnuCancelBook.Enabled = False
      mnuViewBOOK.Enabled = False
      mnuInfo.Enabled = False
      mnuTable.Enabled = False
      mnuCheckOut.Enabled = False
      mnuChange.Enabled = False
      
      Select Case Index
        Case 0
          sWhere = ""
        Case 1
          sWhere = " Where SiteStatus=0"
        Case 2
          sWhere = " Where SiteStatus=1"
        Case 3
          sWhere = " Where SiteStatus=2"
      End Select
      
     'Ë¢ÐÂÅÅÁÐ
      Me.MousePointer = 11
      Browse   'ä¯ÀÀ²Í×À
      Me.MousePointer = 0
      Call Form_ResizeEnd SubPrivate Sub optThumb_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single)
        Source.Move X + optThumb(Index).Left - cX, Y + optThumb(Index).Top - cY
    End Sub'Private Sub optThumb_Click(Index As Integer)
    '
    '   On Error Resume Next
    '        mnuBookthis.Enabled = False
    '        mnuTable.Enabled = False
    '        mnuInfo.Enabled = False
    '        mnuCheckOut.Enabled = False
    '        mnuChange.Enabled = False
    '        mnuViewBOOK.Enabled = False
    '        mnuCancelBook.Enabled = False
    '        mnuCopy.Enabled = False
    '        mnuMaintenans.Enabled = False
    '        mnuCancelMaintenans.Enabled = False
    '        mnuClean.Enabled = False
    '        mnuOpen.Enabled = False
    '
    '   Select Case Left(optThumb(Index).Tag, 1)
    '        'Ô¤¶©²Ù×÷........................................
    '         Case "1"
    '            mnuViewBOOK.Enabled = True
    '            mnuTable.Enabled = True
    '            mnuCancelBook.Enabled = True
    '            mnuOpen.Enabled = True
    '            mnuBookthis.Enabled = True
    '        'ʹÓÃÖÐ...........................................
    '         Case "2"
    '            mnuBookthis.Enabled = True
    '            mnuInfo.Enabled = True
    '            mnuCheckOut.Enabled = True
    '            mnuChange.Enabled = True
    '            mnuCopy.Enabled = True
    '            mnuClean.Enabled = True
    '            mnuTable.Enabled = True
    '        '¿ÕÏÐ...........................................¿ÕÏÐʱ£¬²ÅÄÜÉèÖÃΪάÐÞ״̬.
    '         Case "0"
    '            mnuBookthis.Enabled = True
    '            mnuTable.Enabled = True
    '            mnuMaintenans.Enabled = True
    '            mnuOpen.Enabled = True
    '        '»Ö¸´Î¬ÐÞµÄ×ÀºÅΪÕý³£
    '         Case "4"
    '            mnuCancelMaintenans.Enabled = True
    '        'ÒѾ­½áÕÊ£¬µ«ÊÇûÓÐÀë×Àʱ
    '         Case "3"
    '            mnuClean.Enabled = True
    '         Case Else
    '   End Select
    '  '¸ø³ö×ùλID
    '   'sPubSite = GetBookID(optThumb(Index).Tag)
    '
    '  'ÏÔʾ²Ù×÷²Ëµ¥
    '   PopupMenu mnuBook
    '
    'End Sub
      

  12.   

    Private Sub optThumb_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        optThumb(Index).Drag 1
        cX = X: cY = Y
      If Button = 2 Then
            mnuBookthis.Enabled = False
            mnuTable.Enabled = False
            mnuInfo.Enabled = False
            mnuCheckOut.Enabled = False
            mnuChange.Enabled = False
            mnuViewBOOK.Enabled = False
            mnuCancelBook.Enabled = False
            mnuCopy.Enabled = False
            mnuMaintenans.Enabled = False
            mnuCancelMaintenans.Enabled = False
            mnuClean.Enabled = False
            mnuOpen.Enabled = False   Select Case Left(optThumb(Index).Tag, 1)
            'Ô¤¶©²Ù×÷........................................
             Case "1"
                mnuViewBOOK.Enabled = True
                mnuTable.Enabled = True
                mnuCancelBook.Enabled = True
                mnuOpen.Enabled = True
                mnuBookthis.Enabled = True
            'ʹÓÃÖÐ...........................................
             Case "2"
                mnuBookthis.Enabled = True
                mnuInfo.Enabled = True
                mnuCheckOut.Enabled = True
                mnuChange.Enabled = True
                mnuCopy.Enabled = True
                mnuClean.Enabled = True
                mnuTable.Enabled = True
            '¿ÕÏÐ...........................................¿ÕÏÐʱ£¬²ÅÄÜÉèÖÃΪάÐÞ״̬.
             Case "0"
                mnuBookthis.Enabled = True
                mnuTable.Enabled = True
                mnuMaintenans.Enabled = True
                mnuOpen.Enabled = True
            '»Ö¸´Î¬ÐÞµÄ×ÀºÅΪÕý³£
             Case "4"
                mnuCancelMaintenans.Enabled = True
            'ÒѾ­½áÕÊ£¬µ«ÊÇûÓÐÀë×Àʱ
             Case "3"
                mnuClean.Enabled = True
             Case Else
       End Select
          '¸ø³ö×ùλID
           'sPubSite = GetBookID(optThumb(Index).Tag)
          'ÏÔʾ²Ù×÷²Ëµ¥
           PopupMenu mnuBook
      End If
    End SubPrivate Sub optThumb_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
        optThumb(Index).Drag 2
    End Sub
    Private Sub vsbSlide_Change()    On Error Resume Next
        'picSlide.Top = -vsbSlide.Value
        picFrame.SetFocus
        
    End SubPrivate Sub vsbSlide_Scroll()    On Error Resume Next    vsbSlide_ChangeEnd SubPublic Sub Browse()
       
       On Error GoTo GetERR
      
      '·ÅÖÃͼƬ
       lCount = 0
       Dim EF As Recordset, HH As Integer
       Set EF = CreateObject("ADODB.Recordset")
           EF.Open "Select Count(*) From SiteType" & sWhere, DB, adOpenStatic, adLockReadOnly, adCmdText
        
           If EF.EOF And EF.BOF Then  'ûÓвúƷʱ
              EF.Close
              Set EF = Nothing
             '´ò¿ªÍ¼Æ¬
              CreateThumbs
              'MsgBox "ûÓÐÕÒµ½ÓÐЧ×ùλ(²Í×À),ÇëÔÚ»ù±¾ÅäÖÃÖÐÉèÖúó¼ÌÐø£¿ ", vbInformation, "Design By jj."
              Exit Sub
            Else
              lCount = EF.Fields(0)
              If lCount = 0 Then
                  EF.Close
                  Set EF = Nothing
                  '´ò¿ªÍ¼Æ¬
                  CreateThumbs
                  Exit Sub
              Else
                  EF.Close
                  Set EF = Nothing
                 '´ò¿ªÍ¼Æ¬
                  CreateThumbs
              End If
           End If
      
      Exit Sub
    GetERR:
      MsgBox "¸ø³ö²Í×ÀÁбí´íÎó:" & Err.Description & vbCrLf & vbCrLf _
        & "Çë¹Ø±Õä¯ÀÀ´°¿Ú,ÖØдò¿ªÊÔÊÔ¡£   ", vbCritical
      Exit Sub
      
    End SubPrivate Sub CreateThumbPic(picSource As PictureBox, picThumb As PictureBox)    Dim lRet            As Long
        Dim lLeft           As Long
        Dim lTop            As Long
        Dim lWidth          As Long
        Dim lHeight         As Long
        Dim lForeColor      As Long
        Dim hBrush          As Long
        Dim hDummyBrush     As Long
        Dim lOrigMode       As Long
        Dim fScale          As Single
        Dim uBrushOrigPt    As PointAPI    picThumb.Width = 64
        picThumb.Height = 64
        picThumb.BackColor = vbButtonFace
        picThumb.AutoRedraw = True
        picThumb.Cls
        
        If picSource.Width <= picThumb.Width - 2 And picSource.Height <= picThumb.Height - 2 Then
            fScale = 1
        Else
            fScale = IIf(picSource.Width > picSource.Height, (picThumb.Width - 2) / picSource.Width, (picThumb.Height - 2) / picSource.Height)
        End If
        lWidth = picSource.Width * fScale
        lHeight = picSource.Height * fScale
        lLeft = Int((picThumb.Width - lWidth) / 2)
        lTop = Int((picThumb.Height - lHeight) / 2)
        
        lForeColor = picThumb.ForeColor
        
        lOrigMode = SetStretchBltMode(picThumb.hdc, STRETCH_HALFTONE)
        hDummyBrush = CreateSolidBrush(lForeColor)
        hBrush = SelectObject(picThumb.hdc, hDummyBrush)
        lRet = UnrealizeObject(hBrush)
        lRet = SetBrushOrgEx(picThumb.hdc, lLeft, lTop, uBrushOrigPt)
        hDummyBrush = SelectObject(picThumb.hdc, hBrush)
        
        'À­ÉìͼƬ
        lRet = StretchBlt(picThumb.hdc, lLeft, lTop, lWidth, lHeight, _
                picSource.hdc, 0, 0, picSource.Width, picSource.Height, SRCCOPY)
        
        lRet = SetStretchBltMode(picThumb.hdc, lOrigMode)
        hBrush = SelectObject(picThumb.hdc, hDummyBrush)
        lRet = UnrealizeObject(hBrush)
        lRet = SetBrushOrgEx(picThumb.hdc, uBrushOrigPt.X, uBrushOrigPt.Y, uBrushOrigPt)
        hDummyBrush = SelectObject(picThumb.hdc, hBrush)
        lRet = DeleteObject(hDummyBrush)
        picThumb.ForeColor = lForeColor
        picThumb.Line (lLeft - 1, lTop - 1)-Step(lWidth + 1, lHeight + 1), &H0&, B
        
    End Sub
      

  13.   

    Private Sub CreateThumbs()
        On Error Resume Next
        Dim iMaxLen As Integer
        Dim X       As Long
        Dim Y       As Long
        Dim lIdx    As Long
        Dim lPicCnt As Long
        Dim lFilCnt As Long
        Dim sPath   As String
        Dim sText   As String    Dim HH As Integer
        
       Set EF = New ADODB.Recordset
           EF.Open "Select * From SiteType" & sWhere & " Order By Class ASC", DB, adOpenStatic, adLockReadOnly, adCmdText
        'picSlide.Move 0, 0, optThumb(0).Width, optThumb(0).Height
        'picSlide.Visible = False
        'picSlide.BackColor = vbButtonFace
        'Set picSlide.Font = optThumb(0).Font
        While optThumb.Count > 1
              Unload optThumb(optThumb.Count - 1)
        Wend
        DoEvents
        Dim retVal As Long
        On Error Resume Next
            If EF.EOF Then
               MsgBox "δÕÒµ½Êý¾Ý£¡", vbExclamation, "Ìáʾ£º"
               Exit Sub
            End If
            
             
             lFilCnt = lCount
             
             Dim sPD, sPN
             If lCount > 0 Then
                 Call StartProgress
                 Dim sFieldValue As String
                 For lIdx = 0 To lCount - 1
                    'Ãû³Æ
                     sPD = EF.Fields("Class")
                    
                     
                    'װͼƬ
                     Call UpdateProgress((CSng(lIdx + 1) / CSng(lFilCnt)) * 100, sFieldValue)
                     Set picLoad.Picture = LoadPicture()
                         picLoad.Cls
                         Err.Clear
                     Select Case EF("SiteStatus")
                       Case 0
                         picLoad.Picture = picIde.Picture
                       Case 1
                         picLoad.Picture = PicBook.Picture
                       Case 2
                         picLoad.Picture = PicBusy.Picture
                       Case 3
                         picLoad.Picture = picCheck.Picture
                       Case 4
                         picLoad.Picture = picMaintenance.Picture
                     End Select
                     If Err.Number = 0 Then
                         Call CreateThumbPic(picLoad, picThumb)
                        'д×ÀºÅ
                         retVal = TextOut(picThumb.hdc, 3, 2, sPD, LenB(StrConv(sPD, vbFromUnicode)))
                         If lPicCnt > 0 Then
                             Load optThumb(lPicCnt)
                             'Set optThumb(lPicCnt).Container = picSlide
                         End If
                        '1±íʾΪԤ¶©£¬2 ÎªÊ¹ÓÃÖÐ
                         optThumb(lPicCnt).Tag = Trim(Str(EF("SiteStatus"))) & sPD
                         'Set optThumb(lPicCnt).Picture = picThumb.Image  'ÏÔʾ²úƷͼƬ
                         Set optThumb(lPicCnt).Picture = picLoad.Picture  'ÏÔʾ²úƷͼƬ
                         
                         Select Case EF("SiteStatus")
                           Case 0
                              optThumb(lPicCnt).ForeColor = &H8000&
                              sText = "¡ð" & sPD & vbCrLf & "°üÏá·Ñ" & sPN & "Ôª"          'ÏÔʾ±¸×¢
                              optThumb(lPicCnt).ToolTipText = sText
                           Case 1
                              optThumb(lPicCnt).ForeColor = &H800000
                              sText = "¡ò" & sPD & vbCrLf & "°üÏá·Ñ" & sPN & "Ôª"          'ÏÔʾ±¸×¢
                              optThumb(lPicCnt).ToolTipText = sText
                           Case 2
                              optThumb(lPicCnt).ForeColor = &H40C0&
                              sText = "¡ñ" & sPD & vbCrLf & "°üÏá·Ñ" & sPN & "Ôª"         'ÏÔʾ±¸×¢
                              optThumb(lPicCnt).ToolTipText = sText
                           Case 3
                              optThumb(lPicCnt).ForeColor = &H40C0&
                              sText = "¡ñ" & sPD & vbCrLf & "ÒѾ­½áÕÊ"         'ÏÔʾ±¸×¢
                              optThumb(lPicCnt).ToolTipText = sText
                           Case 4
                              optThumb(lPicCnt).ForeColor = &H0&
                              sText = "¡ñ" & sPD & vbCrLf & "άÐÞ  ÔÝÍ£"                   'ÏÔʾάÐÞÐÅÏ¢
                              optThumb(lPicCnt).ToolTipText = sText
                         End Select
                         iMaxLen = optThumb(lPicCnt).Width - 8
    '                     If picSlide.TextWidth(sText) > iMaxLen Then
    '                         iMaxLen = iMaxLen - picSlide.TextWidth("...")
    '                     End If
    '                     While picSlide.TextWidth(sText) > iMaxLen
    '                          sText = Left$(sText, Len(sText) - 1)
    '                     Wend
                         If iMaxLen < optThumb(lPicCnt).Width - 8 Then
                             sText = sText & "..."
                         End If
                         optThumb(lPicCnt).Caption = sText
                         optThumb(lPicCnt).Visible = True
                         optThumb(lPicCnt).Left = optThumb(lPicCnt - 1).Left + 1280
                         lPicCnt = lPicCnt + 1
                     End If
                     EF.MoveNext
                 Next lIdx
                 
                 picProgress.Visible = False
                 
                 Set picLoad.Picture = LoadPicture()
                 Set picThumb.Picture = LoadPicture()
    '             picSlide.Visible = True
             End If
             
        
        Screen.MousePointer = vbDefault
        EF.Close    Set EF = Nothing    
    End SubPrivate Sub StartProgress()    With picProgress
            .Cls
            .BackColor = vbButtonFace
            .ForeColor = vbButtonText
        End With
        
        With picProgressSlide
            .Cls
            .BackColor = vbHighlight
            .ForeColor = vbHighlightText
        End With
        
        picProgress.Visible = True
        
    End SubPrivate Sub UpdateProgress(ByVal iPercent As Integer, ByVal sCaption As String)Dim lTextTop    As Long    picProgress.Cls
        picProgressSlide.Cls
        picProgressSlide.Width = picProgress.ScaleWidth * (CSng(iPercent) / 100!)
        lTextTop = (picProgress.ScaleHeight - picProgress.TextHeight(sCaption)) / 2
        picProgress.CurrentX = 3
        picProgress.CurrentY = lTextTop
        picProgress.Print sCaption
        picProgressSlide.CurrentX = 3
        picProgressSlide.CurrentY = lTextTop
        picProgressSlide.Print sCaption
        DoEvents
        
    End Sub