![]() |
Standardbrowser öffnen
Hallo zusammen
habe im Forum folgenden Beitrag zu diesem Thema gefunden gefunden: ![]() Nun habe ich folgendes programmiert:
Delphi-Quellcode:
Nun erscheint immer folgender Fehler: :twisted: :twisted:
procedure TForm3.Label4Click(Sender: TObject);
begin Uses ShellApi; Shell execute( 0, nil, 'http://www.delphipraxis.net', nil, nil, SW_SHOW); end; end. Statement expectet but USES found Undeclared indentifier : Shell could not compile used Unit.X :( Was mache ich falsch? Was muss ich deklarieren damit bei einem Click auf das Label der Browser die gewünschte Webseite öffnet? Danke für die Hilfe cu Megabyte |
zwischen das shell und das execute muß irgendein Zeichen, entweder ein "_" oder gar nix!
|
Re: Standardbrowser öffnen
Hallo MegaByte,
zuerst Folgendes: Die Uses-Anweisung darf nicht innerhalb einer Prozedur stehen sondern folgt überlicherweise nach dem Schlüsselwort 'interface' oder 'implementation'. Schaue in Deiner Unit nach: Du findest dort bereits die Uses-Anweisung gefolgt von einer Liste von Units. Diese Liste verlängerst Du einfach um den Eintrag 'ShellAPI'. Ansonsten musst Du nur das Leerzeichen zwischen 'Shell' und 'Execute' entfernen, da es sich in der Tat um einen Befehl namens 'ShellExecute' handelt. :wink:
Delphi-Quellcode:
procedure TForm3.Label4Click(Sender: TObject);
begin Shellexecute( 0, nil, 'http://www.delphipraxis.net', nil, nil, SW_SHOW); end; Grüße, Daniel |
Es wäre vielleicht besser, wenn man ShellExecute in diesem Fall als 2. Parameter ein 'open' anstatt nil übergibt. Wenn nil übergeben wird, wird die Standard Aktion ausgeführt, die nicht unbedingt 'open' sein muss.
Delphi-Quellcode:
ShellExecute(0, 'open', 'http://www.delphipraxis.net', nil, nil, SW_SHOW);
Das am meisten falsch geschriebene Wort steht natürlich auch wieder im Topic. Es heißt: Standard, denn es hat nichts mit einer Art zu tun und auch nicht mit der "Art zu Stehen". |
Hi
habe ne Frage, also ich habe auch den befehl genommen und wollte fragen ob man den noch erweitern kann? Also so das man den IE (oder was man immer nimmt) neu öffnet. Also Problem ist, das die URL dann im IE-Fenster geöffnet wird den ich schon geöffnet habe und in dem ich schon surfe! Wollte fragen ob es möglich ist das man ein neues IE-Fenster aufmachen kann und die Seite dann darin laden kann! MFG Trebor |
Es wäre dann möglich, wenn du per ShellExecute nicht die URL aufrufst, sondern den Browser startest und die gwünschte Website als Parameter anhängst. Das Problem hierbei ist, dass 1. nicht jeder Browser diese Parameterübergabe unterstützen muss und 2. du zuerst herausfinden müsstest, welcher Browser sich auf dem System befindet und in welchem Ordner er ist. Aber möglich ist es.
|
Gut da ich noch nicht viel mit Delphi gemacht habe und das Programm eh nur für Windows XP sein soll hoffe ich das es kein Problem ist!
Könnten Sie mir verraten wie ich 1. Das Programm (Internet Explorer 6) ausführe und dann den Parameter dahinter schreibe? Im Vorraus schonmal Dankeschön |
Dort, wo im obigen Beispiel die URL angegeben wird, muss der Pfad zum IE hin. Und im nächsten Parameter werden die Parameter zum Öffnen übergeben.
Um die Delphi-Praxis anzuzeigen also folgendes geschrieben werden:
Delphi-Quellcode:
Falls der Pfad zum Browser anders sein sollte, muss dies natürlich angepasst werden.
ShellExecute(Handle,'open','C:\Programme\Internet Explorer\IExplore.exe','www.delphipraxis.net',nil,SW_SHOW);
|
Hallo trebormillenium,
beachte aber, dass das Programm möglicherweise auch außerhalb deiner Umgebung laufen könnte. Wie oben schon erwähnt, solltest du versuchen, das Programm so zu schreiben, dass auch andere Browser wie Netscape, Opera oder Mozilla unterstützt werden. Denn es soll Leute geben, die können den M$ Browser überhaupt nicht leiden :roll: . |
Lösung: den Browser, der für HTMLs zuständig ist, aus der Registry auslesen, und dann die URL übergeben!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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