Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Was bedeutet diese zahl? (https://www.delphipraxis.net/102819-bedeutet-diese-zahl.html)

P4CM4N 5. Nov 2007 14:41


Was bedeutet diese zahl?
 
Delphi-Quellcode:
webbrowser1.oleobject.document.forms.item(0).elements.item('login').value := 'xxx';
                                          ^
                                          |
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?

Danke für eure Hilfe

dominikkv 5. Nov 2007 14:43

Re: Was bedeutet diese zahl?
 
das kannst du dir wie ein array vorstellen...

Nuclear-Ping 5. Nov 2007 15:10

Re: Was bedeutet diese zahl?
 
Zitat:

Zitat von P4CM4N
Delphi-Quellcode:
webbrowser1.oleobject.document.forms.item(0).elements.item('login').value := 'xxx';

War es nicht forms(Index) oder so? :gruebel: ... Denn du kannst ja mehr als nur ein Formular in einer HTML Seite haben.
Delphi-Quellcode:
webbrowser1.oleobject.document.forms(0).item(0).elements.item('login').value := 'xxx';

P4CM4N 5. Nov 2007 15:12

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?

inherited 5. Nov 2007 15:22

Re: Was bedeutet diese zahl?
 
Nein.
(Bestechen kurz :mrgreen: )

P4CM4N 5. Nov 2007 15:26

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>

shmia 5. Nov 2007 15:43

Re: Was bedeutet diese zahl?
 
Folgende Procedure visualisiert die Browser Input Objekte in einem TreeView.
Delphi-Quellcode:
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);
Die Treeview ist mit einer Imagelist verbunden, damit jeder Objekttyp sein Bildchen bekommt.
Ich weiss aber nicht, wie ich die Imagelist hier rüberbringen soll.
Also selber kreativ werden.

P4CM4N 6. Nov 2007 12:57

Re: Was bedeutet diese zahl?
 
Den Code verstehe ich nicht. Kann den vielleicht jemand für mich erläutern? Das wäre nett.

shmia 6. Nov 2007 13:42

Re: Was bedeutet diese zahl?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von P4CM4N
Den Code verstehe ich nicht. Kann den vielleicht jemand für mich erläutern?

Ganz einfach, der Code zeigt dir alle Eingabe Objekte als Baum an.
Das sieht z.B. bei der URL http://www.google.de so aus, wie im Anhang gezeigt.
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.

P4CM4N 6. Nov 2007 14:35

Re: Was bedeutet diese zahl?
 
Kannst du das Programm mal uploaden? Sieht sehr hilfreich aus.
Was für Komponenten benutzt das Programm?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 Uhr.
Seite 1 von 2  1 2      

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