AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Editfelder in Farmes einer Website ansprechen
Thema durchsuchen
Ansicht
Themen-Optionen

Editfelder in Farmes einer Website ansprechen

Ein Thema von P4CM4N · begonnen am 16. Jan 2008 · letzter Beitrag vom 21. Jan 2008
Antwort Antwort
Seite 2 von 3     12 3      
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#11

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 14:27
Zitat von marabu:
befindet sich die Komponente TWebBrowser in deiner Palette?
Ja, es gibt 2 verschiedene Browser, einmal den normalen TWebbrowser und einmal Webbrowser_V1. Ich verwende den normalen.

Zitat von marabu:
Welche Delphi-Version setzt du ein?
Delphi 7. Home oder so, nicht Professional.

Zitat von marabu:
Gibt es in deinem Verzeichnis $(DELPHI)\LIB die entsprechenden Units, die du einbinden möchtest?
Hab ich jetzt eingefügt. Immer noch nichts. dann hab ich die Komponenten neu installiert, alsi mit dem pfad aus der Lib. Hat leider nicht geholfen. Ich kann ja mal den kompletten Quelltext posten

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, StdCtrls, SHDocVw_TLB;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    WebBrowser1: TWebBrowser;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Webbrowser1.Navigate(Edit1.TExt);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  vDoc, vFrame, vForm: OleVariant;
  iFrame, iForm: Integer;
  sElement: string;
begin
  //iFrame, iForm, sElement assumed valid
  vDoc := WebBrowser.OleObject.Document;
  vFrame := vDoc.frames.item(iFrame);
  vDoc := vFrame.contentWindow.Document;
  vForm := vDoc.forms.item(iForm);
  vForm.elements.item(sElement).value := '1';
end;


end.
Wie gesagt, in der Zeile
vDoc := WebBrowser.OleObject.Document; kommt die Fehlermeldung.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 14:30
Du hast die Variable immer noch nicht an deine Situation angepasst - bei dir heißt sie WebBrowser1.

vDoc := WebBrowser1.OleObject.Document;
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#13

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 15:21

Stimmt. Danke
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#14

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 15:29
Und wie kriege ich jetzt raus, welce Werte ich für iFrame, iForm setzen muss, bzw. welchen Namen bei sElement?
Bei sElement muss ich ship202 zuweisen oder? Aber was bei dem rest Oder soll ich da jetzt so lange durchprobieren, bis es klappt?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 15:39
Entweder du kennst den Namen des relevanten Frames oder du musst ihn über seinen Index (oder bei fehlender Eindeutigkeit des Namens über eine Kombination von beidem) ansprechen. Das gleiche gilt für die Form. Den Namen des Elements kennst du ja.
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#16

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 15:47
Das ist das einzige, was ich zur Form finden kann
<form action="index.php?page=flotten2&session=f3351aef02c1" method="POST"> Ist da dann der Name das, was hinter Action steht?

Und das zum Frame
Delphi-Quellcode:
<div id='content'>
<center>
<script src="js/friends.js"></script>
<body>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
Ist jetzt der Name des frame 'content' oder 'overdiv'?

Sry, aber ich hab Quelltextlesen vorher noch nicht gemacht.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 17:14
Deine Form ist nicht benannt. Einen Namen hätte sie, wenn eines der beiden Universal-Attribute id oder name vorhanden wäre. Wenn es die einzige Form im Frame ist, dann ist iForm auf 0 zu setzen und damit sprichst du die Form über ihren korrekten Index an.

Um den Namen oder den Index des Frames zu ermitteln musst du dir das Dokument mit den FrameSets anschauen. Du zeigst ja schon das markup des relevanten Frame und darin findest du weder Namen noch Hinweis auf den Index des Frames. Wenn der Frame keinen Namen besitzt, dann musst du nur alle enthaltenen Frames bis zum gewünschten Frame mit 0 beginnend durchzählen um den Index zu ermitteln.
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#18

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 18:26
Wenn ich iFrame und Iform auf null setze krieg ich immer eine Acces Violation. was bedeutet das?
Sobald ich iFrame bzw. iForm etwas anderes als 0 zuweise kommt die Fehlermeldung "Mitglied nicht gefunden" -> heißt eigentlich, dass das Frame bzw. die Form nicht vorhanden ist.
Nur warum ist diese Nachricht auf deutsch??? Das Programm ist eigentlich Englisch.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 21:45
Du kannst ja noch versuchen die Struktur der Seite in einem TTreeView darzustellen.
Delphi-Quellcode:
var
  vDoc, vFrame, vForm: OleVariant;
  iFrame, iForm, iElement: Integer;
  tn, tn2: TTreeNode;
begin
  vDoc := Webbrowser1.OleObject.Document;
  for iFrame:= 0 to vDoc.frames.Length -1 do
  begin
    vFrame := vDoc.frames.item(iFrame);
    tn:= TreeView1.Items.Add(nil, Format('frame %d', [iframe]));
      for iForm := 0 to vFrame.Document.forms.Length- 1 do
      begin
       tn2:= TreeView1.Items.AddChild(tn, Format('form %d', [iForm]));
       vForm:= vFrame.Document.forms.item(iForm);
       for iElement := 0 to vForm.elements.Length- 1 do
         TreeView1.Items.AddChild(tn2, Format('element %d', [iElement]));
     end;
  end;
  TreeView1.FullExpand;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#20

Re: Editfelder in Farmes einer Website ansprechen

  Alt 19. Jan 2008, 22:29
Funzt auch nicht...
"Zugriff verweigert".
Scheinbar will der Betreiber nicht, dass seine Seite ausgelesen wird. Oder kann man das auch irgendwie umgehen?

Fehler ab der Zeile
for iForm := 0 to vFrame.Document.forms.Length- 1 do
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 23:35 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