• 0

[VB6] Browse Button (Common Dialog) Error


Question

I'm trying to make a Browse Button in my VB6 project so that a window pops up asking people to find a pic on their computer, which will then be loaded into a picture box and resized. I got the resizing part working but the problem I'm running into is this: when I run my program, hit the Browse Button, select an image from my Pictures folder in My Docs, and click ok, it makes my program think it's in the "Pictures" folder and everything fails at the same time.

Here's my code:

CommonDialog1.ShowOpen

'The following lines just let me know that I now have a file patch to work with so I can load the picture with the picturebox

If IsNull(CommonDialog1.FileName) Then 
Else
	MsgBox "File selected is " & CommonDialog1.FileName
End If

The program seems to run great the first time, with the message "File selected is (actual_filename_and_path)" displayed after I choose a file, and gets no errors, but as soon as I shut it off and run it again, all the databases that I have in the same folder as the program (MS Access Databases) start complaining that they aren't found and the pictures in the relative path of \pics\*.jpg of my program also can't be found. I copied one of the databases (an .mdb file) from the program's folder where it's supposed to be to the "Pictures" folder in my Docs (The folder that I chose the image in while working with my browse button) and it found the database. Even in development mode (not in runtime) the properties box doesn't recognize a database in the same folder as the program anymore unless I put the file into the "Pictures" folder. Why does the program think it's in whatever folder I choose with the browse button and how do I fix this? My only way to get my program running again is to use an older version of the program that I have saved in a different folder that doesn't have a browse button (it's a very recent version so I didn't loose any of my work).

Actually, if I close VB and don't save, I can open the project up again and it will run without the Browse Button just fine. I had to revert to an earlier project once because to test what would happen, I changed the code to what I mentioned above and saved to see what would happen. It ran once, failed the second time, and when I closed and reopened VB it wouldn't run anymore...

Edited by HellSpawn

7 answers to this question

Recommended Posts

  • 0

Browsing from the CommonDialog causes the working path to be reset to where the user browsed to. If you are not specifying a path to your databases and pictures and you are just assuming that it is relative to you application then these are being loaded with the working path. This working path is persisted over separate runs of the application so closing it and reopening won't necessarily fix your problem.

You need to change the code to find where the application is located and append onto that the locations of your relative databases and pictures instead of inadvertently using the working path.

  • 0
  ultraviolet7 said:
Browsing from the CommonDialog causes the working path to be reset to where the user browsed to. If you are not specifying a path to your databases and pictures and you are just assuming that it is relative to you application then these are being loaded with the working path. This working path is persisted over separate runs of the application so closing it and reopening won't necessarily fix your problem.

You need to change the code to find where the application is located and append onto that the locations of your relative databases and pictures instead of inadvertently using the working path.

Also .. you could try storing the CWD in a special variable when launching the app.

But still .. try and avoid working with the CWD for programming end as apps can run with different CWD's

  • 0

Thanks for the hints guys. Now at least I know what to look for.

  ultraviolet7 said:
You need to change the code to find where the application is located and append onto that the locations of your relative databases and pictures instead of inadvertently using the working path.

Sounds interesting. Do you know the code to find out what directory your program is in?

  MMaster23 said:
Also .. you could try storing the CWD in a special variable when launching the app.

But still .. try and avoid working with the CWD for programming end as apps can run with different CWD's

Since when the program launches, it's location is the same as the Current Working Directory, how would I write down this variable?

As a guess I tried

Dim a as String
a = CWD
MsgBox a

but that didn't work... What's the actual code?

  • 0
  Abaiko said:
Use this:

Picture1.Picture = LoadPicture(App.Path & "\" & "smiley.jpg")

Just found out about App.Path yesterday while searching the net, but couldn't think of a good way to use it, this helps a lot. Thanks.

It looks like the browse button is finally working :)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • That would have been a so much better UX that what it is right now. I know that after a few moment of trying/failing to recognize you in the dark it goes back to PIN selection. But if the light sensor would detect the dark light, showing the PIN field while continuing for a brief moment to register your face would work better.
    • Oh ! This is why... Like some of you, i used Windows Hello since the Surface Pro 4. It worked really well for so long on many devices and still use it everyday with my desktop and laptop. I couldn't understand why it wasn't working as well as before in the dark. Why is Microsoft (as a company) in its UX decisions so anti-consumer right now ? -_-"
    • Zen Browser 1.13.2b is out.
    • KDE Plasma 6.4 launches, bringing better window management, improved KRunner, and more by David Uzondu It's finally here. After several weeks of development, KDE Plasma 6.4 has been rolled out, delivering a ton of significant refinements across the entire UX, from how you manage windows to how you see notifications. The biggest deal for power users is probably the increased flexibility in window management. Plasma 6.4 now allows you to set a completely different tiling layout for each virtual desktop. You can have a simple 50/50 split screen on one desktop for writing, and on another, have a complex grid with two apps snapped to the sides and two others floating in the middle. On the visual side, the default Breeze Dark theme got a little darker for better contrast, and when a password box pops up, the rest of the screen dims to help you focus. There is also a new Animations page in System Settings, which groups all the purely visual effects in one place so you can find them easily. The file transfer notification now shows a speed graph, giving you a much better idea of how a download is progressing. The system will even pop up a notice if you try talking into a muted microphone, and you can install system updates right from the notification that tells you they are ready. When you are in a full-screen application like a game or watching a movie, Plasma automatically enters a Do Not Disturb mode, holding back notifications until you are done. Plasma 6.3, which was released last February, brought several features, including a "Help" category to the launcher after getting rid of the "Settings" one. Now, Plasma 6.4 gives the application launcher a green New! tag next to recently installed apps to help you find them. KRunner and Spectacle, two of the most powerful utilities in Plasma, also received some serious attention. KRunner now lets you visualize colors just by typing in their hex code or even CSS names like "MintCream" or the ridiculous "PapayaWhip." The tool will then show you what that color looks like and give you its code in other formats. Spectacle, the screenshot tool, has been completely overhauled. Pressing the Print Screen key now immediately puts you in selection mode, letting you grab a region or the whole screen much faster before jumping straight into the annotation tools. Screen recordings made in the WebM format or on screens with fractional scaling have also seen a massive quality boost. The Bluetooth widget is getting smarter with better device recognition and easier pairing (we touched on this last month). People with nice monitors will appreciate the new HDR calibration wizard in the display settings. Plasma can also now handle Extended Dynamic Range and the P010 video format, improving power efficiency with HDR content. Digital artists were not left out either. Configuring the buttons on a stylus is "much more intuitive," and you can easily reset your tablet's calibration if you mess it up. Finally, there is a lot of work under the hood. The System Monitor can now show GPU usage for Intel and AMD hardware on a per-process basis and has a new Sensors page for nerds who want to see raw temperature data. When you drag and drop files on the same disk, you can now set it to always move them instead of asking what to do every time. The browser integration feature now supports the Flatpak versions of Firefox and Chromium-based browsers. All of this is built on top of support for a slew of new Wayland protocols, like "FIFO", "toplevel tag," and more. For more information, you can check out the official announcement post, as well as the full changelog.
    • Zoom Workplace 6.5.0.6118 by Razvan Serea Zoom Workplace for Windows is a reliable video conferencing tool that makes it easy to connect and collaborate. With features like messaging, file sharing, and app integrations, it’s designed to streamline teamwork. You’ll get high-quality audio and video, strong security with end-to-end encryption, and an intuitive interface—all of which help remote teams and businesses stay productive and connected. Zoom Workplace key features: High-Definition Video & Audio: Provides clear, reliable communication for virtual meetings. End-to-End Encryption: Ensures secure communication with strong data protection. Multi-Factor Authentication: Adds an extra layer of security for user accounts. Integration with Productivity Apps: Supports seamless integration with Microsoft Office, Google Workspace, and more. File Sharing: Easily share files during meetings for efficient collaboration. Real-Time Messaging: Enables team chat for ongoing communication. Collaborative Whiteboarding: Allows teams to brainstorm and collaborate visually. Webinar Support: Host large webinars with interactive features. Administrative Controls: Manage user permissions, meeting settings, and security features. Cloud Storage: Automatically stores meetings and files in the cloud for easy access. Cross-Platform Support: Available on Windows, macOS, and mobile devices. Meeting features: Virtual Backgrounds: Customize your background for meetings to maintain privacy or enhance professionalism. Touch Up My Appearance: Automatically smoothens skin tone for a more polished video appearance. Breakout Rooms: Divide meetings into smaller sessions for group discussions or workshops. Live Transcription: Automatically generate real-time captions during meetings for accessibility. Zoom Apps: Integrate third-party applications directly into Zoom for enhanced functionality. Meeting Reactions: Participants can use emojis for quick, non-verbal feedback during meetings. Polling: Conduct live polls during meetings to gather instant feedback from participants. Attention Tracking: Monitors participant attention during meetings to ensure engagement. Closed Captioning: Enable manual or automatic captions for a more inclusive experience. Webinar Replay: Record and share webinars with analytics for audience engagement. Download: Zoom 64-bit | Zoom 32-bit (Free, paid upgrade available) Links: Zoom Website | Zoom ARM64 | Zoom Installers | Release Notes Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Week One Done
      Rhydderch earned a badge
      Week One Done
    • Experienced
      dismuter went up a rank
      Experienced
    • One Month Later
      mevinyavin earned a badge
      One Month Later
    • Week One Done
      rozermack875 earned a badge
      Week One Done
    • Week One Done
      oneworldtechnologies earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      699
    2. 2
      ATLien_0
      274
    3. 3
      Michael Scrip
      214
    4. 4
      +FloatingFatMan
      186
    5. 5
      Steven P.
      145
  • Tell a friend

    Love Neowin? Tell a friend!