Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Need multi-select File Open dialogue
Message
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Problèmes
Divers
Thread ID:
01222666
Message ID:
01222858
Vues:
27
>>Thanks. Found them. Can you tell me why does this cause an error from the command window?
>>od=CREATEOBJECT("MSComDlg.CommonDialog.1")
>>od.AboutBox()  && This works, but...
>>od.Flags= 0x00080000
>>od.filename="*.*"
>>od.ShowOpen()  && ...this causes an OLE error
>>However, if I put the OLE control on a form and run the form, the control works the way it's supposed to.
>
>You have to put control on the form anyway or you'll get licensing error in runtime (mskb #Q192693).

Thanks Sergery. Let me ask one final question... as I'm not sure just how pervasively available is MSComDlg.CommonDialog.

What if I try to open a form with the MSComDlg.CommonDialog control on it, but the machine does not have the control installed. Is that even possible (and still the system be functional?).

I have tried this, and it seems to work:
&& Here, G_CanUseCommonDlg is a public var that starts out at zero.
&& It gets set once in the app as a flag 
&& to indicate that MSComDlg.CommonDialog is available:
IF EMPTY(G_CanUseCommonDlg)
  G_CanUseCommonDlg=1
  LOCAL oOleComDlg
  TRY 
    oOleComDlg=CREATEOBJECT("MSComDlg.CommonDialog.1")
  CATCH 
    G_CanUseCommonDlg=2
  ENDTRY 
  oOleComDlg=.null. 
ENDIF
By doing this, I know if G_CanUseCommonDlg equals 1, that MSComDlg.CommonDialog.1 is available and my app won't throw an error when I open the form upon which the Control is placed. By the way, I set the form's LEFT property to -500 in the Init so the form itself is not visible. Then in its Activate event, I do the code to set up the OleControl and invoke its ShowOpen() method. This seems to work OK.
If G_CanUseCommonDlg equals 2, then I just default to VFP's GetFile() function.

What I don't know is if GetFile() uses MSComDlg.CommonDialog anyway, so that all this checking I'm doing is not necessary.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform