Einzelnen Beitrag anzeigen

emploi

Registriert seit: 21. Jun 2004
Ort: Ilmtown
40 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: eBay Tool mit webbrowser (kann den gebotsbetrag nicht ei

  Alt 11. Jan 2005, 08:33
Hi ..

Ich hab mich damit schon oft auseinander gesetzt und die folgende prozedur war vorher eigentlich mehrere einzelne.
Diese jedoch sollte eigentlich für jede art verschachtelter frames funktionieren. Falls es doch probleme gibt
musste einfach mal schreiben, oder versuchen sie selber zu korrigieren. Prinzipiell ist es nicht sonderlich kompliziert!

Code:
// Option Value:
// 0 -> Link     --> Value = Aufschrift des Links (Name leer also '' lassen)
// 1 -> Button   --> Value = Aufschrift des Buttons (Name leer lassen)
// 2 -> Eingabefeld --> Name = Name des Eingabefeldes
//                      Value = Was reingeschrieben werden soll
// 3 -> OptionFeld --> Name = Name des Selectionfeldes
//                     Value = Welcher Eintrag ausgewählt werden soll
// 4 -> RadioBox --> Not Yet
PROCEDURE HttpOwner(WebBrowser1:TWebBrowser; Option:Byte; Name:String; Value:String);
VAR ovElements: OleVariant;

  PROCEDURE check(ovCheck: OleVariant);
  Var k,i,h,l: Integer;
  BEGIN
        IF Option = 0 THEN
        BEGIN
          FOR h := 0 TO (ovCheck.Document.Links.Length - 1) DO
            IF ovCheck.Document.Links.Item(h).InnerText = Value THEN
                ovCheck.Document.Links.Item(h).Click;
        END
        ELSE
          FOR k := 0 TO (ovCheck.Document.Forms.Length - 1) DO
          BEGIN
            ovElements := ovCheck.Document.Forms.Item(k).elements;
            FOR i := 0 TO (ovElements.Length - 1) DO
              CASE Option OF
                1 : IF ((ovElements.Item(i).tagName = 'INPUT')
                    AND (ovElements.Item(i).type = 'submit')
                    AND (ovElements.Item(i).Value = Value)) THEN
                        ovElements.Item(i).Click;
                2 : IF ((ovElements.Item(i).tagName = 'INPUT')
                    AND (ovElements.Item(i).name = Name)) THEN
                        ovElements.Item(i).value := Value;
                3 : IF ((ovElements.Item(i).tagName = 'SELECT')
                    AND (ovElements.Item(i).name = Name)) THEN
                        FOR l := 0 TO ovElements.Item(i).length - 1 DO
                          IF ovElements.Item(i).options.item(l).Text = Value THEN
                              ovElements.Item(i).options.item(l).selected := True;
                4 : ;
              END;
         END;
  END;

  PROCEDURE rec(ovFrames: OleVariant);
  VAR j: Integer;
  BEGIN
      FOR j:=0 TO ovFrames.Length - 1 DO
      IF ovFrames.Item(j).Document.Frames.Length > 1 THEN
        rec(ovFrames.Item(j).Document.Frames)
      ELSE
        Check(ovFrames.Item(j));
  END;

BEGIN
   IF Webbrowser1.OleObject.Document.Frames.Length > 1 THEN
      rec(Webbrowser1.OleObject.Document.Frames)
   ELSE
      check(Webbrowser1.OleObject);
END;


Musst dir dann halt nur den Namen des Input Feldes ausm quelltext suchen,
dann sollte es gehen.
Prinzipiell sollte es bei Ebay aber auch gehen, dass du direkt über die url bietest,
oder?

MFG emploi
  Mit Zitat antworten Zitat