AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Auswahlliste TWebbrowser
Thema durchsuchen
Ansicht
Themen-Optionen

Auswahlliste TWebbrowser

Ein Thema von goenner90 · begonnen am 2. Aug 2008 · letzter Beitrag vom 14. Aug 2011
 
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4

Re: Auswahlliste TWebbrowser

  Alt 26. Dez 2008, 09:44
Update: Das OnChange Ereignis des DropDowns wird nicht ausgelöst, wenn ein Item per Code ausgewählt wird.

Delphi-Quellcode:
uses
  mshtml_tlb, ActiveX;

function TriggerEvent(WB: TWebbrowser; Element: OleVariant; EventName: WideString): Boolean;
var
  Doc4: IHTMLDocument4;
  Doc2: IHTMLDocument2;
  EventObj: IHTMLEventObj;
  varEventObj, pEventObject: OleVariant;
begin
  Result := False;
  if (Succeeded(WB.Document.QueryInterface(IID_IHTMLDocument4, Doc4))) then
  begin
    // TVariantArg(ret).vt := VT_UINT;
    // TVariantArg(ret).lVal := 0;
    varEventObj := Unassigned;
    EventObj := Doc4.CreateEventObject(varEventObj);
    if (Succeeded(WB.Document.QueryInterface(IID_IHTMLDocument2, Doc2))) then
    begin
      pEventObject := EventObj;
      try
        Result := Element.fireEvent(EventName, pEventObject);
      except
        Result := False;
      end;
    end;
  end;
end;

function WB_select_SelectItem(WB: TWebbrowser; SelectName, ItemName: string; TriggerOnChangeEvent: Boolean): boolean;
var
  iForms, iFormItems, iSelectItems: Word;
  FormItem: OleVariant;
begin
  Result := False;
  for iForms := 0 to WB.OleObject.Document.forms.Length - 1 do
  begin
    FormItem := WB.OleObject.Document.forms.Item(iForms);
    for iFormItems := 0 to FormItem.Length - 1 do
    begin
      if (FormItem.Item(iFormItems).type = 'select-one') and
        (FormItem.Item(iFormItems).Name = SelectName) then
      begin
        for iSelectItems := 0 to FormItem.Item(iFormItems).Options.Length - 1 do
        begin
          if SameText(FormItem.Item(iFormItems).Options.Item(iSelectItems).Text, ItemName) then
          begin
            FormItem.Item(iFormItems).SelectedIndex := iSelectItems;
            // The onchange event does not fire when the selected option of
            // the select object is changed programatically
            // http://msdn.microsoft.com/en-us/library/ms536912(VS.85).aspx
            if TriggerOnChangeEvent then
              // Trigger OnChange event:
              TriggerEvent(WB, FormItem.Item(iFormItems), 'onchange');
            Result := True;
            Break;
          end;
        end;
      end;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WB_select_SelectItem(Webbrowser1,'url','Germany', True);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Webbrowser1.Navigate('http://www.mathworks.com/company/worldwide/');
end;
Thomas
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz