Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Embedded WB Ftp Laufwerk (https://www.delphipraxis.net/187437-embedded-wb-ftp-laufwerk.html)

ScharfeMietze 29. Nov 2015 23:21

Embedded WB Ftp Laufwerk
 
Hey
Ich habe eine Frage.
Ich habe heute mit embdw1 erfolgreich zu einem FTP verbunden.
Dort bekomme ich ein Explorerfenster angezeigt mit allen was so enthalten ist. Aber wie mache ich den Automatisch weiter?
Wie würde ich den nun einen Ordner ansteuern oder eine Datei laden?
Z.B.
Delphi-Quellcode:
embdwb1.ViewPageSourceHtmlToStrings(list);
bleibt leer ?!?
Eure SM
:)

zeras 30. Nov 2015 05:23

AW: Embedded WB Ftp Laufwerk
 
Ist nicht ganz das, was du vorgeschlagen hast.
Ich nutze die Indy Komponenten und da habe ich keine derartigen Probleme.

win568 30. Nov 2015 06:31

AW: Embedded WB Ftp Laufwerk
 
Hi

Den Download mit UrlDownloadToFile und das Ansteuern mit Navigate. Hänge dich in die Links rein (EventListener) und führe selbst das Navigate aus.

ScharfeMietze 30. Nov 2015 06:35

AW: Embedded WB Ftp Laufwerk
 
In dem Fall geht es um den Embedded WB und ich würde gerne wenn möglich damit arbeiten.

Mit dem Download hab ich verstanden.
Wie lasse ich mir die Ordner/Files den Auflisten, um sie zu durchsuchen/laden?

Grüße
SM

win568 30. Nov 2015 06:58

AW: Embedded WB Ftp Laufwerk
 
Hi

Der EmbeddedWB bietet eine Menge Events für solche Zwecke an. Wenn das Dokument geladen ist, dann wird das DocumentComplete gefeuert. Dort kannst du auf alle geladenen HTML Elemente per Doc2 zugreifen und diese erweitern/manipulieren. Um z.b. eine Liste aller geladenen Links zu erhalten, kannst du so vorgehen:

Code:

var
  lDispatch: IDispatch;
  lHTMLCollection: IHTMLElementCollection;
  lHTMLElement: IHTMLElement;
  i: Integer;
begin
  Result := nil;
  if Doc2 = NIL then begin
    Exit;
  end;

  // Ermittle alle Elemente
  lDispatch := Doc2.all;
  if Assigned(lDispatch) then begin
    lDispatch.QueryInterface(IHTMLElementCollection, lHTMLCollection);
    if Assigned(lHTMLCollection) then begin
      // Gehe alle Elemente durch
      i := 1;
      while (i <= lHTMLCollection.length) do begin
        // Ermittle mal das HTMLElement
        lDispatch := lHTMLCollection.item(pred(i), 0);
        lDispatch.QueryInterface(IHTMLElement, lHTMLElement);
        if Assigned(lHTMLElement) then begin
          if (CompareText(lHTMLElement.TagName, 'A') = 0) then begin
            -> Hier weisst du, eigenes Verhalten implementieren
          end;
        end;
        inc(i);
      end;
    end;
  end;
Willst du eigenes Verhalten einbauen, dann erweitere das HTML Element. Du kannst z.b. die Einträge aus dem FTP auslesen und das OnClick auf ein eigenes Event umbiegen (Jedes HTML Element hat ein OnClick Event).

ScharfeMietze 30. Nov 2015 09:30

AW: Embedded WB Ftp Laufwerk
 
Danke für die Antwort.
Nachdem ich MSHtml in die Uses geschmissen habe und davon ausgehe das "doc2" ein "IHTMLDocument2" ist, bekomme ich die Fehlermeldung: "Interface wird nicht unterstützt."
Wo liegt mein Fehler?

Grüße
SM


Delphi-Quellcode:
var
  lDispatch: IDispatch;
  lHTMLCollection: IHTMLElementCollection;
  lHTMLElement: IHTMLElement;
  i: Integer;
  doc2: IHTMLDocument2;
begin
 doc2 := embdwb1.document as IHTMLDocument2;


  lDispatch := Doc2.all;
  if Assigned(lDispatch) then
  begin
    lDispatch.QueryInterface(IHTMLElementCollection, lHTMLCollection);
    if Assigned(lHTMLCollection) then
    begin
      i := 1;
      while (i <= lHTMLCollection.length) do
      begin
        // Ermittle mal das HTMLElement
        lDispatch := lHTMLCollection.item(pred(i), 0);
        lDispatch.QueryInterface(IHTMLElement, lHTMLElement);
        if Assigned(lHTMLElement) then
        begin
          if (CompareText(lHTMLElement.TagName, 'A') = 0) then
          begin
            mmo1.Lines.Add(lHTMLElement.tagName);
          end;
        end;
        inc(i);
      end;
    end;
  end;
end;

win568 30. Nov 2015 10:05

AW: Embedded WB Ftp Laufwerk
 
Probier mal embdwb1.Doc2. Der EmbeddedWB hat bereits alles drinnen :-D

p80286 30. Nov 2015 10:32

AW: Embedded WB Ftp Laufwerk
 
[OT]
auch wenn ich mich jetzt als Ignorant oute, was ist (Embedded) WB ?
Gruß
K-H
[/OT]

win568 30. Nov 2015 10:47

AW: Embedded WB Ftp Laufwerk
 
Der EmbeddedWB ist ein Wrapper um das ActiveX Control des IE. Es gibt zwar auch den TWebbrowser von Delphi, nur wrappt der TEmbeddedWB eine Unmenge mehr an Interfaces. Er ist so ziemlich die Komponente, die die Möglichkeiten des IE am besten in Delphi abbildet:

github Master

p80286 30. Nov 2015 11:32

AW: Embedded WB Ftp Laufwerk
 
Danke!

K-H


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

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