Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webbrowser: Combobox eintrag auswählen (https://www.delphipraxis.net/129844-webbrowser-combobox-eintrag-auswaehlen.html)

napsterxx 26. Feb 2009 16:59


Webbrowser: Combobox eintrag auswählen
 
Also ich programmiere an einem Projekt bei welchem mein Programm mit einer Webbrowser Komponente auf eine Seite geht und dort eine Combobox welche 10 Einträge hat, den 3ten Eintrag auswählt. Das ganze ist mit Ajax geschrieben, d.h. beim Auswählen wird ein neuer Text angezeigt. Wenn ich das Value der Combobox ändere, wird allerdings nur der Text verändert, und das OnChange Event wird nicht ausgeführt. Frage: Geht das nun - wenn ja wie?

toms 26. Feb 2009 20:13

Re: Webbrowser: Combobox eintrag auswählen
 
Hallo

Schau mal meinen Beitrag hier an.

Sollte auch so funktionieren:

Delphi-Quellcode:
(* uses MsHTML, Variants, ActiveX *)

procedure ChangeHTMLSelectElement(
  const SelectElement: IHTMLSelectElement; const Value: String);
const
  IID_NULL: TGUID = (
    D1:$00000000;D2:$0000;D3:$0000;D4:
      ($00,$00,$00,$00,$00,$00,$00,$00));
var
  DispParams: TDispParams;
  PDispOnChange: PDispatch;
  DispOnChange: IDispatch;
  ResultVar: Variant;
begin
  SelectElement.Value:= Value;
  DispOnChange:= SelectElement.OnChange;
  PDispOnChange:= @DispOnChange;
  DispParams.rgvarg:= nil;
  DispParams.rgdispidNamedArgs:= nil;
  DispParams.cArgs:= 0;
  DispParams.cNamedArgs:= 0;
  PDispOnChange.Invoke(DISPID_VALUE,
    IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD,
    DispParams, PVariant(@ResultVar), nil, nil);
end;


OleVariant(DeinIHTMLElement).FireEvent('onchange') ;
oder
OleVariant(DeinIHTMLInputElement).FireEvent('onchange');
oder
OleVariant(DeinElement as IHTMLElement).FireEvent('onclick');
etc.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz