Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VB6: CommonDialog InitDir Bug?

None
5 antwoorden
  • Hoi allemaal.

    Ik ben een 'probleempje' tegengekomen in de CommonDialog(ShowOpen) control van VB6.
    Ik kan de InitDir maar 1 keer zetten.
    Zodra ik 1 keer op OK (Openenen) hebt geklikt, blijft dit de directorie waarmee hij telkens opkomt, ook wanneer ik de InitDir ergens anders op zet.
    In VB.NET zag ik een 'Reset'-propertie aan de CommonDialog hangen, waarna je een nieuwe InitDir kan opgeven, maar ja, ik zit nu met VB6.

    Ik omzeil het geval nu door telkens een instantie van de control te laden, gebruiker laten zoeken en daarna weer ontladen.

    Ik zet 1 exemplaar van de CommonDialog op het form, CD(0), met index dus.

    vervolgens:

    [code:1:d48da241eb]Private Sub Command1_Click()

    Load CD(1)

    CD(1).InitDir = "C:\Mijn Documenten\"
    CD(1).ShowOpwn

    UnLoad CD(1)

    End Sub[/code:1:d48da241eb]

    Niet netjes misschien, maar hij wordt in elk geval geRESET zo.

    Wat denken de dames en heren erover?
    Is iemand anders dit wel eens tegengekomen?
    Hoe kan ik het netter oplossen? (nee, ik ga hier niet mee naar .NET)


    Bedankt, groetjes ROB
  • [quote:6f89c77750="Rob V"]
    Ik kan de InitDir maar 1 keer zetten.
    Zodra ik 1 keer op OK (Openenen) hebt geklikt, blijft dit de directorie waarmee hij telkens opkomt, ook wanneer ik de InitDir ergens anders op zet.
    [code:1:6f89c77750]Private Sub Command1_Click()

    Load CD(1)

    CD(1).InitDir = "C:\Mijn Documenten\"
    CD(1).ShowOpwn

    UnLoad CD(1)

    End Sub[/code:1:6f89c77750]
    [/quote:6f89c77750]
    Volgens mij staat hier iets over in de help.
    Als InitDir leeg is of een ongeldige map, pakt Windows een standaardmap, of VB zet dit op de Huidige directory.
    Ik dacht dat er ook nog een bijbehorende property was.

    Ff voor de zekerheid in de help duiken.
  • Ik heb ook geprobeerd om de CurDir te zetten dmv ChDrive en ChDir.
    Dan vervolgens de InitDir leeglaten, maar hetzelfde euvel hier.


    ROB
  • Ik heb een identiek probleem met het besturingselemten OLE. Eenmaal een document gekoppeld aan OLE blijft het in het geheugen en kan dit niet meer vervangen worden door een ander. Alleen door afsluiten van het programma en opnieuw ostarten kan ik een ander document koppelen. Helaas weet ik ook geen oplossing voor dit probleem dus heb je aan mij ook niet veel. Ben benieuwd of iemand een oplossing weet want die moet er toch zijn, neem ik aan.

    Overhaus
  • Hoi Overhaus,
    Ik heb het volgende gedaan om er omheen te werken:

    Ik heb 1 CommonDialog op het form gezet met index 0. zeg maar even CD(0)
    Zodra ik hem nodig heb doe ik Load CD(1) en gebruik deze om de gebruiker te bedienen.
    Wanneer de gebruiker klaar is met CD(1) dan doe ik weer UnLoad CD(1).

    Dan heb ik dus telkens een 'schone' CommonDialog als ik begin.
    Als het ware reset je hem op deze manier.

    In VB.Net zag ik overigens dat er gewoon een Reset-property bestaat op de CommonDialog en als je die niet gebruikt heb je daar hetzelfde probleem.

    Misschien heb je er wat aan, bij mij werkt het perfect.


    ROB

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.