schon oft kam im forum die frage danach, wie man eine seite, welche im
twebbrowser angezeigt wird komplett speichern könne. als antwort kam eigentlich fast immer, dass man den quelltext auslesen solle und dann alles herunterladen muss.
nun ja, warum etwas neu erfinden, was der internt explorer schon so gut kann. und da der
twebbrowser ja auch nichts anderes ist, kann mann dies auch leicht realisieren.
Delphi-Quellcode:
uses
Forms, OleCtrls, SHDocVw, StdCtrls,
ActiveX, Classes, Controls;
type
TForm1 =
class(TForm)
WebBrowser1:
TWebBrowser;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
procedure webbrowser_actions(browser:TWebBrowser;Query_cmdID:OLECMDF;
var vaIn,vaOut: OleVariant);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.webbrowser_actions(browser:TWebBrowser;Query_cmdID:OLECMDF;
var vaIn,vaOut: OleVariant);
var
eQuery: OLECMDF;
begin
try
eQuery := Browser.QueryStatusWB(Query_cmdID);
if (eQuery
and OLECMDF_ENABLED) = OLECMDF_ENABLED
then
Browser.ExecWB(Query_cmdID, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut);
except
//irgendwas
end;
end;
//eine Seite im TWebBrowser öffnen
procedure TForm1.Button1Click(Sender: TObject);
begin
webbrowser1.Navigate('
www.google.de');
end;
//Beispielaufruf
procedure TForm1.Button2Click(Sender: TObject);
var
vaIn,vaOut: OleVariant;
begin
webbrowser_actions(webbrowser1,OLECMDID_SAVEAS,vaIn,vaOut);
{
weitere nützliche parameter
OLECMDID_PROPERTIES zeigt Eigenschaftsdialog an
OLECMDID_CUT Ausschneiden (ohne if Abfrage wird Text,... aus der Webseite auch wirklich ausgeschnitten)
OLECMDID_COPY Kopieren
OLECMDID_PASTE Einfügen (ohne if Abfrage wird Text,... aus der Webseite auch wirklich eingefügt)
OLECMDID_SELECTALL Alles markieren
OLECMDID_PROPERTIES zeigt den Eigenschaftsdialog an
OLECMDID_PRINTPREVIEW zeigt Druckvorschau an
OLECMDID_PRINT druckt angezeigte Seite
OLECMDID_PRINTSETUP zeigt Seite Einrichten Dialog an
weitere parameter bitte der uses ActiveX entnehmen (Strg gedrückt halten und mit der Maus auf einen Query_cmdID Parameter klicken)
}
end;
initialization
OleInitialize(
nil);
finalization
OleUninitialize;
end.
[edit=Matze]COde formatiert. Mfg, Matze[/edit]