Information générale
Catégorie:
Codage, syntaxe et commandes
Titre:
Subclassing an ActiveX Control
When subclassing an activex control, for example Microsoft ListView control in a prg file, the only syntax that worked to dynamically instantiate the appropriate control depending on the Windows version wether NT4 or W2K was the following:
DEFINE CLASS myclass AS OLEControl
OLEClass = EVALUATE("IIF('5'$ OS(),'MSComctlLib.ListViewCtrl.2','COMCTL.ListViewCtrl.1')")
NAME='MyClass'
.......
ENDDEFINE
If I move the evaluation to a procedure which returns the character string of the control name, for example:
DEFINE CLASS myclass AS OLEControl
OLEClass = GetName() && or EVALUATE("GetName()")
NAME='MyClass'
.......
ENDDEFINE
PROCEDURE GetName
DO CASE
CASE '5' $ OS()
RETURN 'MSComctlLib.ListViewCtrl.2'
CASE '4' $ OS()
RETURN 'COMCTL.ListViewCtrl.1'
ENDCASE
ENDPROC
the error "Invalid subscript reference" occurs when trying to instantiate an object of 'MyClass'.
I'd appreciate any explanation of this behavior.
Regards,
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement