Solved

vb6 - Drag n Drop

Posted on 2014-09-26
7
324 Views
Last Modified: 2014-09-28
Hi guys,

The following code has a peculiarity I cannot work out - perhaps its simply because I am very tired but for the life of me I cannot work it out. The code is from a Drag Drop event - I catch the data object which is filled with files from dragging them from explorer.

the function this code is in works fine except the peculiarity - it leaves one file behind on every ocassion ... I know I can loop through the files in other ways, but I want to understand why it leaves one file behind ...

...
 'DroppedItem  is decalred as a variant

 For Each DroppedItem In Data.Files
        DoEvents 'During long loops its always a good idea to return control to windows
        Debug.Print "Shift = " & Shift & " - " & DroppedItem
        
        pbFiles.Value = pbFiles.Value + 1
        
        DoEvents
        
        If fso.FileExists(DroppedItem) Then
           ' test to see if the file exists
            sFileName = fso.GetFileName(CStr(DroppedItem))
            If fso.FileExists(defDir & sFileName) Then
                ' we exist
                ' let the user decide if we over write or not
                Select Case MessageBoxx(Me, sFileName & " exists in the destination directory. Do you want to over write it? If you're unsure select Cancel and check your files.", vbExclamation + vbYesNoCancel)
                    Case vbYes
                        ' delete the file already there
                        kill defDir & sFileName
                        bOverwrite = True
                    Case vbNo
                        bOverwrite = False
                    Case vbCancel
                        Exit Sub
                End Select
            End If
            
            If Shift = 1 Then
              If bOverwrite Then fso.MoveFile DroppedItem, defDir
            Else
              If bOverwrite Then fso.CopyFile DroppedItem, defDir, bOverwrite
            End If
        ElseIf fso.FolderExists(DroppedItem) Then
               If Shift = 1 Then
                  fso.MoveFolder DroppedItem, defDir
               Else
                  fso.CopyFolder DroppedItem, defDir
               End If
        End If
        
        DoEvents
        
        bOverwrite = True
    Next
...

Open in new window


MTIA

DWE
0
Comment
Question by:dwe0608
  • 3
  • 3
7 Comments
 
LVL 46

Expert Comment

by:Martin Liss
ID: 40348033
Can you attach you project?

What is  MessageBoxx?
0
 
LVL 1

Author Comment

by:dwe0608
ID: 40348078
Hi Martin
I'll hive off a seperate project and post
Messageboxx is a custom msgbox function which is  subclassed so I can center it on the parent window ... I'll include it in the project ...
0
 
LVL 46

Expert Comment

by:Martin Liss
ID: 40348080
Thanks. I'll probably also need to know what website you are getting the files from and how you do that.
0
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 
LVL 32

Accepted Solution

by:
Robberbaron (robr) earned 500 total points
ID: 40348226
is bOverwrite true or false at the beginning of loop ?

 if false (or not defined=false) then the first file wont be processed.

 'DroppedItem  is declared as a variant
bOverwrite=true   '<<<added cpde
 For Each DroppedItem In Data.Files

Open in new window

0
 
LVL 1

Author Closing Comment

by:dwe0608
ID: 40348290
Robberbaron - well, I did say I was tired. .... you were correct ... it tested for false on the first loop as you said and it didnt change until the 2nd item ....

Thank you ...

Regards

Darrin
0
 
LVL 46

Expert Comment

by:Martin Liss
ID: 40348617
Very nice catch.
0
 
LVL 1

Author Comment

by:dwe0608
ID: 40349042
Hi Martin - I said I'd post the project and here it is - while RobR picked the error the project is still worthwhile having here because of a couple of unique functions in the code - first is the ablity to drag and move or copy the files - second is the ability to center the BrowseForFolder dialog over the calling window and lastly the ability to center the messagebox on the calling window. There is also a usercontrol in it which is a progressbar with a caption and percentage - not all of this is my work but I know that some people might find it useful ...

I've tried to upload the file but because of the usercontrol in the zip file its disallowed. I have put it on GoogleDrive for downloading here.

Any comments would be welcomed.
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
VB 6 error 5 in windows 10 but not in XP 7 57
Advice in Xamarin 21 80
Server 2012 management. 5 25
Please explain the parts of these 2 LINQ expressions 3 33
A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question