Bonjour, dans une fiche, je créé dynamiquement un Webrowser :
WebBrowser1 = new TWebBrowser(Glacefronton);
if(WebBrowser1 == NULL)return ;
WebBrowser1->Visible=false;
WebBrowser1->ParentWindow= Glacefronton->Handle ;
WebBrowser1->Left= 0;
WebBrowser1->Top=0;
WebBrowser1->Width= Screen->Width*.7;
WebBrowser1->Height=Screen->Height*.7;
etc...
J'assigne les méthodes :
WebBrowser1->OnNewWindow3 = WebBrowser1NewWindow3;
WebBrowser1->OnFileDownload = WebBrowser1FileDownload;
Le compilateur accepte onfiledownload,
mais, pour la méthode onnewwindow3, me sort le message :[bcc32 Erreur] baseflip.cpp(1634): E2034 Impossible de convertir 'void (_fastcall * (_closure )(TObject *,IDispatch * &,unsigned short &,unsigned long,const WideString,const WideString))(TObject *,IDispatch * &,unsigned short &,unsigned long,const WideString,const WideString)' en 'TWebBrowserNewWindow3'
Or, cela fonctionnait très bien avec une ancienne version de c++ builder.
Déclaration des méthodes dans la classe fichier .h :
void __fastcall WebBrowser1NewWindow3(TObject *ASender, IDispatch *&ppDisp, WordBool &Cancel,
DWORD dwFlags, const WideString bstrUrlContext, const WideString bstrUrl);
void __fastcall WebBrowser1FileDownload(TObject *ASender, WordBool ActiveDocument,
WordBool &Cancel);
Dans le fichier .cpp :
void __fastcall TGlacefronton::WebBrowser1FileDownload(TObject *ASender, WordBool ActiveDocument,
WordBool &Cancel)
{
int t=0;//pour test
}
void __fastcall TGlacefronton::WebBrowser1NewWindow3(TObject *ASender, IDispatch *&ppDisp,
WordBool &Cancel, DWORD dwFlags, const WideString bstrUrlContext,
const WideString bstrUrl)
{
int t=2;//pour test
}
merci pour votre aide
Partager