Transtypage d'un Variant résultant de CreateOleObject()
Context :
- Delphi7
- windows 2000 ou XP
- Composant ActiveX livré avec SAPGui (librairie SAPfewse.ocx)
Question : Comment transtyper une variable de type variant en une variable d'un type connu (TGuiApplication) sachant que la stucture de l'object pointé par la variable de type variant pointe sur une structure de type TGuiApplication
Dans l'exemple suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
uses ..., SAPFEWSELib_TLB, ...
const Ct1 = 'ConnectionString';
procedure TForm1.Button1Click(Sender: TObject);
var
AVariant1,AVariant2,AVariant3 : Variant;
begin
AVariant1 := CreateOleObject('Sapgui.ScriptingCtrl.1');
AVariant2 := AVariant1 .GetScriptingEngine;
AVariant3 := AVariant2 .OpenConnectionByConnectionString;(Ct1 ,True,True);
end; |
Comment transtyper le variant AVariant2 en type SAPGuiApplication
pour permettre ensuite d'écrire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
procedure TForm1.Button1Click(Sender: TObject);
var
AVariant1,AVariant2 : Variant;
AGuiApplication : TGuiApplication;
AGuiConnection : TGuiConnection;
begin
AVariant1 := CreateOleObject('Sapgui.ScriptingCtrl.1');
AVariant2 := AVariant1 .GetScriptingEngine;
// bien sur la ligne qui suit génère une erreur
AGuiApplication := AVariant2 as TGuiApplication;
AGuiConnection := AGuiApplication.OpenConnectionByConnectionString(Ct1,True,True);
end; |
Transtypage d'un Variant résultant de CreateOleObject()
Merci si vous pouviez me donner un exemple
Cordialement