![]() |
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:
bleibt leer ?!?
embdwb1.ViewPageSourceHtmlToStrings(list);
Eure SM :) |
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. |
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. |
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 |
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:
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).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; |
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; |
AW: Embedded WB Ftp Laufwerk
Probier mal embdwb1.Doc2. Der EmbeddedWB hat bereits alles drinnen :-D
|
AW: Embedded WB Ftp Laufwerk
[OT]
auch wenn ich mich jetzt als Ignorant oute, was ist (Embedded) WB ? Gruß K-H [/OT] |
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:
![]() |
AW: Embedded WB Ftp Laufwerk
Danke!
K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 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