Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Mehrere Einträge einer Selectbox(Html) mit Delphi ansprechen (https://www.delphipraxis.net/37477-mehrere-eintraege-einer-selectbox-html-mit-delphi-ansprechen.html)

lowell 6. Jan 2005 12:28


Mehrere Einträge einer Selectbox(Html) mit Delphi ansprechen
 
Hallo ihr:-)

Ich möchte gerne eine Selectbox einer Html Datei in einem TWebbrowser ansprechen. Es sollen mehrere Einträge markiert werden können! Zunächst einmal der Html Code:

<form name="form1" method="post" action="">
<select name="select" size="3" multiple>
<option value="1a">1</option>
<option value="2a">2</option>
<option value="3a">3</option>
<option value="4a">4</option>
<option value="5a">5</option>
</select>
</form>

Mit einem Button und dem folgendem Code
Delphi-Quellcode:
WebBrowser1.OleObject.document.forms.item('form1').elements.item('select').value:='2';
wird zum Bespiel ohne Probleme der 2te Eintrag markiert- nur wie markiere ich mehrere? Im Internet habe ich noch einen anderen Code gefunden:

Delphi-Quellcode:
WebBrowser1.OleObject.document.tags('select').item("ELEMENTINDEX").item("OPTIONINDEX").selected := 'selected';
Dieser gibt mir leider eine Fehlermeldung : "Nicht implementiert". Selbst wenn er funktionieren würde, weis ich nicht, ob man mit diesem mehrere Einträge markieren kann.

Ich bedanke mich im vorraus für eure Mühe- habe wirklich sehr lange im Internet gesucht!

Viele Grüße,
Alex

Sprint 6. Jan 2005 13:21

Re: Mehrere Einträge einer Selectbox(Html) mit Delphi anspre
 
2. und 3. Eintrag markieren:
Delphi-Quellcode:
  WebBrowser1.OleObject.document.forms.item('form1').item('select').item(1).selected := True;
  WebBrowser1.OleObject.document.forms.item('form1').item('select').item(2).selected := True;
oder halt so:
Delphi-Quellcode:
var
  WebDoc: HTMLDocument;
  WebForm: HTMLFormElement;
  WebElement: HTMLSelectElement;
  WebOption: HTMLOptionElement;
begin

  WebDoc := WebBrowser1.Document as HTMLDocument;
  WebForm := WebDoc.forms.item('form1', 0) as HTMLFormElement;
  WebElement := WebForm.item('select', 0) as HTMLSelectElement;

  WebOption := WebElement.item(1, 0) as HTMLOptionElement;
  WebOption.selected := True;

  WebOption := WebElement.item(2, 0) as HTMLOptionElement;
  WebOption.selected := True;

end;

lowell 6. Jan 2005 13:45

Re: Mehrere Einträge einer Selectbox(Html) mit Delphi anspre
 
Ok, das war mal echt peinlich :oops:

Besten Dank- funktioniert einwandfrei. Eine Frage hätte ich diesbezüglich noch- dann wäre es soweit auch geschafft:

Ich möchte gerne die zu markierenden Einträge über eine Schleife abfragen- diese sind z.b. in einer Listbox:

Delphi-Quellcode:
var i:integer;
begin
for i := 0 to listbox1.items.count-1 do begin
WebBrowser1.OleObject.document.forms.item('form1').item('select').item(listbox1.items.strings[i]).selected := True;
end;

Das klappt leider so nicht.

Danke und Gruß,
Alex

lowell 6. Jan 2005 14:22

Re: Mehrere Einträge einer Selectbox(Html) mit Delphi anspre
 
Habe es selbst hinbekommen:

Delphi-Quellcode:
procedure TForm1.FlatButton2Click(Sender: TObject);
var i,x:integer;
begin
for i := 0 to listbox1.Items.Count-1 do begin
x:= StrToInt(listbox1.Items.Strings[i]);
 Webbrowser1.OleObject.document.forms.item('form1').item('select').item(x-1).selected := true;
end;
end;

Oh mann, das war mal wieder zum :wall:



Besten Dank nochmals

Alex :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 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