![]() |
Was bedeutet diese zahl?
Delphi-Quellcode:
Hallo, ich möchte mit diesem Code ein Feld anschrechen und einen Wert eintragen. Doch es kommt immer eine Accessviolation(Also Fehler). Ich nehme an, es liegt an dieser Zahl. was bedeutet sie und wie kriege ich die richtige raus?
webbrowser1.oleobject.document.forms.item(0).elements.item('login').value := 'xxx';
^ | Danke für eure Hilfe |
Re: Was bedeutet diese zahl?
das kannst du dir wie ein array vorstellen...
|
Re: Was bedeutet diese zahl?
Zitat:
Delphi-Quellcode:
webbrowser1.oleobject.document.forms(0).item(0).elements.item('login').value := 'xxx';
|
Re: Was bedeutet diese zahl?
daran habe ich auch schon gedacht. Wie kann ich aber herausfinden, in der wie vielten Form ich bin und das wie vielte Item ich anspreche?
Ist Form eigentlich gleich Frame auf der Website? |
Re: Was bedeutet diese zahl?
Nein.
(Bestechen kurz :mrgreen: ) |
Re: Was bedeutet diese zahl?
Also das editfeld liegt in einem eigenen Frame. Nur wie kriege ich den namen raus und wo muss er dann hin?
Das ist der Quelltext des Frames: <div id="main"> <div id="login"> <a name="pustekuchen"></a> <div id="login_text_1"> <div style="position:absolute;left:160px;width:110px;"> name</div> <div style="position:absolute;left:275px;width:50px;">P asswort</div> </div> <div id="login_input"> <table cellspacing="0" cellpadding="0" border="0"><tr style="vertical-align:top;"><td style="padding-right:4px;"> <form name="loginForm" action="" method="POST" onSubmit="changeAction('login');" target="_self" > <input type="hidden" name="v" value="2"> <span> ... </select> </span> <td style="padding-right:3px;"> <span><input tabindex="2" class="eingabe" maxlength="20" name="login" alt=Spielername style="width:111px;top:0px"/></span> <td> <span><input tabindex="3" maxlength="20" type="password" class="eingabe" name="pass" style="width:113px;top:0px" alt=Passwort /></span> <td style="padding-top:2px;"> <input type="image" src="../img/login_button.jpg" alt="Login" class="loginButton" name="button" id="button" onmouseover="document.getElementById('button').src ='../img/login_button2.jpg';" onmouseout="document.getElementById('button').src= '../img/login_button.jpg';"> </form> </tr></table> |
Re: Was bedeutet diese zahl?
Folgende Procedure visualisiert die Browser Input Objekte in einem TreeView.
Delphi-Quellcode:
Die Treeview ist mit einer Imagelist verbunden, damit jeder Objekttyp sein Bildchen bekommt.
procedure Browser2TreeView(WebBrowser: TWebBrowser; root:TTreeNodes);
var i,j, k :Integer; FormItem, Element, SubElement: OleVariant; child, child2, child3 : TTreeNode; s_type : string; begin Assert(Assigned(WebBrowser)); Assert(Assigned(root)); root.Clear; //count forms on document for I:=0 to WebBrowser.OleObject.Document.forms.Length -1 do begin FormItem := WebBrowser.OleObject.Document.forms.Item(I); if VariantIsObject(FormItem.Name) then child := root.AddChild(nil, 'Form'+IntToStr(i)+': '+FormItem.Name.Name) else child := root.AddChild(nil, 'Form'+IntToStr(i)+': '+FormItem.Name); child.ImageIndex := 3; For j:= 0 to FormItem.Length-1 do begin try Element := FormItem.Item(j); //when the fieldname is found, try to fill out child2 := root.AddChild(child, Element.Name+' = '+Element.Value); s_type := Element.Type; if s_type = 'submit' then child2.ImageIndex := 1 else if s_type = 'text' then child2.ImageIndex := 0 else if s_type = 'file' then child2.ImageIndex := 2 else if s_type = 'hidden' then child2.ImageIndex := 4 else if s_type = 'checkbox' then child2.ImageIndex := 5 else if s_type = 'radio' then child2.ImageIndex := 6 else if s_type = 'select-one' then child2.ImageIndex := 7 else child2.ImageIndex := -1; child3 := root.AddChild(child2, 'Type='+s_type); child3.ImageIndex := -1; if s_type = 'text' then begin child3 := root.AddChild(child2, 'MaxLen='+IntToStr(Element.maxLength)); child3.ImageIndex := -1; end else if s_type = 'select-one' then begin for k := 0 to Element.Options.Length-1 do begin SubElement := Element.Options.Item(k); child3 := root.AddChild(child2, SubElement.Text+ ' = <'+SubElement.Value+'>'); child3.ImageIndex := -1; end; // ShowMessage(IntToStr(Element.Options.Length)); end; except on E:Exception do root.AddChild(child, E.Message); end; end; end; if root.Count > 0 then root.GetFirstNode.Expand(True); end; // Aufruf Browser2TreeView(WebBrowser1, TreeView1.Items); Ich weiss aber nicht, wie ich die Imagelist hier rüberbringen soll. Also selber kreativ werden. |
Re: Was bedeutet diese zahl?
Den Code verstehe ich nicht. Kann den vielleicht jemand für mich erläutern? Das wäre nett.
|
Re: Was bedeutet diese zahl?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Das sieht z.B. bei der URL ![]() Es gibt ein Formular (namens "f") auf dem (unter anderem) ein Textfeld mit dem Namen "q" liegt. Mit diesem Baum ist es viel einfacher auf die Objekte zuzugreifen. |
Re: Was bedeutet diese zahl?
Kannst du das Programm mal uploaden? Sieht sehr hilfreich aus.
Was für Komponenten benutzt das Programm? |
Re: Was bedeutet diese zahl?
Wozu hochladen? Der Kernteil des Programms steht doch da oben!
Zu deinem Frameproblem: Ein Frame ist auch nichts anders als eine eigene html-Seite. Lade einfach die, dann kannst du auch direkt auf die Forms zugreifen! |
Re: Was bedeutet diese zahl?
Also brauche ich die treeview Komponente und die Imagelist. Muss ich da virtual treeview runterladen? Kann mit jmd. einen Link für den "richtigen" Treeview geben bzw. für die Imagelist wo ich das downloaden kann?
Danke |
Re: Was bedeutet diese zahl?
Mit ein bisschen basteln kriegst du das auch in einen normale Treeview. Sieht halt nicht so schön aus :mrgreen:
|
Re: Was bedeutet diese zahl?
Außerdem wird in dem Beispielsource auch eine herkömmliche TreeView benutzt.
|
Re: Was bedeutet diese zahl?
Mist, hatte die Treeview Komponete nicht gefunden :roll: :roll:
Jetzt gehts. Danke Nun ja, hab jetzt folgendes rausgefunden: Formularname = LoginForm Feldname = login Also müsste es doch heißen:
Delphi-Quellcode:
Nur da Kriege ich den Fehler: Nicht implimentiert. Was will mir dieser Fehler sagen? Ich verstehe ihn nicht.
webbrowser1.oleobject.document.forms('loginform').item('0').elements.item('login').value := edit2.text;
|
Re: Was bedeutet diese zahl?
Kann denn keiner helfen?
|
Re: Was bedeutet diese zahl?
Zitat:
|
Re: Was bedeutet diese zahl?
Du könntest zwecks Fehlersuche statt der wahnsinnig langen Verkettung von Funktionsaufrufen auch ein paar lokale Variablen benutzen. Dann sollte sich dein Fehler einfacher lokalisieren lassen.
|
Re: Was bedeutet diese zahl?
Und wie mach ich das? Soll ich jetzt statt gleich rein zu schreiben das was da rein soll in ein Edit-Feld schreiben und dann an die Funktion übergeben? Das würde doch auf das selbe hinauslaufen, da das Programm eh immer abbricht, sobald ich den Code ausführe.
|
Re: Was bedeutet diese zahl?
Delphi-Quellcode:
var
webform : OleVariant; inputelement : OleVariant; begin webform := webbrowser1.oleobject.document.forms('loginform'); inputelement := webform.item(0).elements.item('login'); inputelement.Value := edit2.text; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 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