• 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

    • They are shifting into AI now. Don't you see?
    • Exactly. No need to pay to rent a license. I'd rather own it.
    • Weekend PC Game Deals: Automation fests, Civilization for free, charity specials, and more by Pulasthi Ariyasinghe Weekend PC Game Deals is where the hottest gaming deals from all over the internet are gathered into one place every week for your consumption. So kick back, relax, and hold on to your wallets. The Epic Games Store unlocked a big strategy game giveaway earlier this week: Civilization VI: Platinum Edition. Coming in from Firaxis Games, the turn-based 4X experience has you starting world-conquering campaigns to explore, expand, exploit, and exterminate everything in your empire's reach. PvP and co-op multiplayer are also options if the various forms of AI prove to be too easy or even too troublesome. The Sid Meier’s Civilization VI: Platinum Edition giveaway is live until July 24, and it comes with two massive expansions as well as six DLC packs with extra scenarios, leaders, and more. Next week, tower defense title Legion TD 2 will become the latest freebie on the Epic Games Store. The Humble Store brought a new bundle for action game fans this weekend, and it's all about the Devil May Cry franchise. The Devil Trigger Collection begins with DmC: Devil May Cry and Devil May Cry HD Collection for $10. If you want to complete the bundle, it will set you back $20, which gets you Devil May Cry 4 Special Edition as well as the most recent entry, Devil May Cry 5, as well as its Vergil DLC. This bundle has two weeks left on its counter before it goes away. Big Deals Most publishers are returning to their usual weekend specials after the massive summer sales, so there are plenty of discounts to go around. There's even a special Make a Wish charity sale running on Steam with some discounted viral hits. With all those and more, here's our hand-picked big deals list for the weekend: Satisfactory – $27.99 on Steam Captain of Industry – $24.49 on Steam No Man's Sky – $23.99 on Steam Persona 5 Royal – $23.99 on Steam No More Room in Hell 2 – $22.49 on Steam FOUNDRY – $20.99 on Steam Banishers: Ghosts of New Eden – $19.99 on Steam SULFUR – $19.99 on Steam Assassin's Creed Mirage – $19.99 on Steam Alan Wake 2 – $19.99 on Epic Store Grand Theft Auto V Enhanced – $19.79 on Steam Norland – $19.49 on Steam Stray – $17.99 on Steam V Rising – $17.49 on Steam Dyson Sphere Program – $15.99 on Steam The Outlast Trials – $15.99 on Steam Warhammer 40,000: Darktide – $15.99 on Steam The Outlast Trials – $15.99 on Steam Red Dead Redemption 2 – $14.99 on Steam Turing Complete – $13.99 on Steam Eden Crafters – $13.99 on Steam Core Keeper – $13.99 on Steam Thank Goodness You're Here! – $12.99 on Steam Opus Magnum – $9.99 on Steam Autonauts – $9.99 on Steam EXAPUNKS – $9.99 on Steam DRAGON BALL XENOVERSE 2 – $9.99 on Steam Superliminal – $9.99 on Steam Heaven's Vault – $9.99 on Steam RAILGRADE – $9.89 on Steam Goat Simulator 3 – $9.89 on Steam Tchia – $9.89 on Steam ACE COMBAT 7: SKIES UNKNOWN – $9.59 on Steam PAYDAY 3 – $8.99 on Steam Assassin's Creed Origins – $8.99 on Steam Viewfinder – $8.74 on Steam Escape Academy – $7.99 on Steam Pit People – $7.99 on Steam Skull and Bones – $7.99 on Steam Immortals Fenyx Rising – $7.99 on Steam Imperator: Rome – $7.59 on Steam SHENZHEN I/O – $7.49 on Steam Tom Clancy’s The Division 2 – $7.49 on Steam Bassmaster Fishing – $7.49 on Steam Let's Build a Zoo – $6.99 on Steam The Forgotten City – $6.24 on Steam Control Ultimate Edition – $5.99 on Steam Bramble: The Mountain King – $5.99 on Steam Assassin’s Creed Rogue – $5.99 on Steam RoboCop: Rogue City – $4.99 on Steam Kingdom Two Crowns – $4.99 on Steam Scott Pilgrim vs. The World: The Game – $4.94 on Steam Castle Crashers – $4.49 on Steam BattleBlock Theater – $4.49 on Steam TOEM: A Photo Adventure – $3.99 on Steam Supraland – $3.99 on Steam Vampire Survivors – $3.99 on Steam Darkwood – $3.74 on Steam Valiant Hearts: The Great War – $3.74 on Steam TIS-100 – $3.49 on Steam PAYDAY 2 – $3.29 on Steam Cake Bash – $2.99 on Steam Ragnarock – $1.99 on Steam Alan Wake – $1.49 on Steam Civilization VI Platinum Edition – $0 on Epic Store DRM-free Specials Lastly, here are some highlights from the DRM-free discounts available on the GOG store this weekend: Age of Wonders 4 - $29.99 on GOG Pathfinder: Wrath of the Righteous - Game of the Year Edition - $19.99 on GOG Tomb Raider IV-VI Remastered - $19.49 on GOG The Thaumaturge - $19.24 on GOG Chained Echoes - $13.74 on GOG Tyranny - Gold Edition - $12.49 on GOG Tomb Raider I-III Remastered Starring Lara Croft - $11.99 on GOG Baldur's Gate: Enhanced Edition - $9.99 on GOG Baldur's Gate II: Enhanced Edition - $9.99 on GOG Neverwinter Nights: Enhanced Edition - $9.99 on GOG Old World - $9.99 on GOG Icewind Dale: Enhanced Edition - $9.99 on GOG Neverwinter Nights: Doom of Icewind Dale - $7.99 on GOG Kingdom Come: Deliverance - $5.99 on GOG Might and Magic 6-pack Limited Edition - $4.99 on GOG Heroes of Might and Magic 3: Complete - $4.99 on GOG Blood Omen: Legacy of Kain - $3.49 on GOG Might and Magic 8: Day of the Destroyer™ - $2.99 on GOG Worms Armageddon - $2.99 on GOG ATOM RPG: Post-apocalyptic indie game - $2.99 on GOG Keep in mind that availability and pricing for some deals could vary depending on the region. That's it for our pick of this weekend's PC game deals, and hopefully, some of you have enough self-restraint not to keep adding to your ever-growing backlogs. As always, there are an enormous number of other deals ready and waiting all over the interwebs, as well as on services you may already subscribe to if you comb through them, so keep your eyes open for those, and have a great weekend.
  • Recent Achievements

    • One Month Later
      Helen Shafer earned a badge
      One Month Later
    • One Month Later
      ambani880 earned a badge
      One Month Later
    • Week One Done
      ambani880 earned a badge
      Week One Done
    • First Post
      artistro08 earned a badge
      First Post
    • First Post
      paul29 earned a badge
      First Post
  • Popular Contributors

    1. 1
      +primortal
      498
    2. 2
      ATLien_0
      223
    3. 3
      Michael Scrip
      196
    4. 4
      Xenon
      161
    5. 5
      +FloatingFatMan
      138
  • Tell a friend

    Love Neowin? Tell a friend!