Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Selectfeld ändern (https://www.delphipraxis.net/112019-selectfeld-aendern.html)

dominikkv 13. Apr 2008 14:03


Selectfeld ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich möchte in einem Formular (einer Webseite) einen Eintrag in einem Selectfeld (vllt besser bekannt als ComboBox) auswählen.
Die Seite lade ich mit einem TWebBrowser, den Quellcodeabschnitt für das select habe ich mal angehängt (weil wenn ich das hier direkt zitiert hätte würde die Einrückung verloren gehen)

Hier habe ich schon was brauchbares gefunden, allerdings wird hier über Value ausgewählt.
Wie man in dem Quelltext sehen kann gibt es bei dem select aber kein Value (bzw nur einmal ein Value = "").

Bisher habe ich immer über den Index ausgewählt, blöderweise ändert der sich von Zeit zu Zeit.
Darum frage ich euch wie man jetzt über den angezeigten Text den Selecteintrag auswählt. Konkret müsste ich einfach nur die Option "Online Shop Auftragsbestätigung" auswählen.

Ich hoffe ihr habt Vorschläge

:coder2:

mfg.Dominik

toms 13. Apr 2008 14:30

Re: Selectfeld ändern
 
Hallo Dominik,

Hier mal eine Möglichkeit:

Delphi-Quellcode:
 if WB_SetSelectValue(Webbrowser1, 'MVLG', 'Kontodaten') then // ok
Delphi-Quellcode:
function WB_SetSelectValue(WB: TWebbrowser; SelectName, ItemName: string): 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;
            Result := True;
            Break;
          end;
        end;
      end;
    end;
  end;
end;

dominikkv 13. Apr 2008 14:48

Re: Selectfeld ändern
 
Danke toms, funktioniert prima :thumb:

:dp:


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