Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler mit TWebBrowser ( Meldung "Format %p ungültig) (https://www.delphipraxis.net/93156-fehler-mit-twebbrowser-meldung-format-p-ungueltig.html)

bgallamv 1. Jun 2007 14:26


Fehler mit TWebBrowser ( Meldung "Format %p ungültig)
 
Hallo
Habe ein Editfeld wo ich die Adresse reinkopiere das bei Änderung die URL aufrufen soll. Später soll das automatisch gehen, aber immer das hier:
Folgende Fehlermeldung beim kopieren der Url oder nur eines Buchstabens in das EditFeld
EConvertError Meldung "Format %p ungültig o. nicht kompatibel mit Argument
Delphi-Quellcode:
procedure TFmHaupt.EdBrowser1Change(Sender: TObject);
begin
 WebBrowser1.Navigate(EdBrowser1.Text);
 WebBrowser1.SetFocus ;
end;
Das soll ja ein Format Fehler sein aber ich formatiere doch gar nichts.
Besser noch wenn man die EXE ausserhalb von Delphi ausführt, kein Fehler.
Vielleicht liegt das auch an den Einstellungen von Delphi, habe das wieder nach langer Zeit wieder installiert.

Weiss einer Rat?

shmia 1. Jun 2007 16:07

Re: Fehler mit TWebBrowser ( Meldung "Format %p ungülti
 
Die .Navigate Methode hat mehr Parameter als nur die URL.
Ausserdem wird ein OleString als Datentyp erwartet. Deshalb sollte man
Zwischenvariablen verwenden:
Delphi-Quellcode:
procedure TFrmHTMLUpload.Navigate;
var
  BrowserFlags : olevariant;
  MyTargetFrameName : olevariant;
  MyPostaData : olevariant;
  MyHeaders : olevariant;
begin

{ Flags:
Constant            Value Meaning
NavOpenInNewWindow  $01 Open the resource or file in a new window.
NavNoHistory        $02 Do not add the resource or file to the history list. The new page replaces the current page in the list.
NavNoReadFromCache  $04 Do not read from the disk cache for this navigation.
NavNoWriteToCache   $08 Do not write the results of this navigation to the disk cache.
NavAllowAutosearch  $10 If the navigation fails, the Web browser attempts to navigate common root domains (.com, .org, and so on). If this still fails, the URL is passed to a search engine.
}
  BrowserFlags := $02;
  MyTargetFrameName := null;
  MyPostaData := null;
  MyHeaders := null;
  Webbrowser1.Navigate(EdtURL.text, BrowserFlags,MyTargetFrameName,MyPostaData,MyHeaders);

  // WaitForBrowser(WebBrowser1);
end;

marabu 1. Jun 2007 16:23

Re: Fehler mit TWebBrowser ( Meldung "Format %p ungülti
 
Herzlich willkommen in der Delphi-PRAXiS, bgallamv.

Die Methode Navigate() von TWebBrowser ist - auch unter D5 - mehrfach überladen und kann problemlos mit nur dem URL als einzigem Argument aufgerufen werden.

Das Ereignis OnChange() eines Edit-Feldes, in dem ein URL eingetragen wird, ist definitiv ungeeignet zur Aktualisierung eines Browsers. Der würde ja für jeden einzelnen Buchstaben einen Fehler 404 nach entsprechendem Timeout liefern.

Freundliche Grüße vom marabu

bgallamv 1. Jun 2007 17:47

Re: Fehler mit TWebBrowser ( Meldung "Format %p ungülti
 
Dank für die schnelle Antwort

Hab das auch schon in der Hilfe gelesen, aber nicht so eingebaut.
Jetzt geändert, Fehler kommt immer noch.
Eventuell doch etwas mit den Delphi Einstellungen zu tun?
Wie gesagt, wenn man die EXE ausserhalb von Delphi startet, kommt kein Fehler
Habe Delphi6 Enterprise
Delphi-Quellcode:
procedure TFmHaupt.EdBrowser1Change(Sender: TObject);
 var
  BrowserFlags : olevariant;
  MyTargetFrameName : olevariant;
  MyPostaData : olevariant;
  MyHeaders : olevariant;
begin
 BrowserFlags := $02;
  MyTargetFrameName := null;
  MyPostaData := null;
  MyHeaders := null;

 WebBrowser1.Navigate(EdBrowser1.Text,BrowserFlags,MyTargetFrameName,MyPostaData,MyHeaders);
 WebBrowser1.SetFocus ;
end;

Klaus01 1. Jun 2007 18:01

Re: Fehler mit TWebBrowser ( Meldung "Format %p ungülti
 
Zitat:

Zitat von marabu

Das Ereignis OnChange() eines Edit-Feldes, in dem ein URL eingetragen wird, ist definitiv ungeeignet zur Aktualisierung eines Browsers. Der würde ja für jeden einzelnen Buchstaben einen Fehler 404 nach entsprechendem Timeout liefern.

Freundliche Grüße vom marabu

wie marabu schon sagte, das onChange Ereignis wird immer dann abgefeuert wenn sich in Deiner Editbox
etwas ändert. Also bei der Eingabe jedes Buchstabens wird das Ereignis ausgelöst und startet
dann den Versuch sich mit der URL zu verbinden. Die URL ist dann aber noch nicht komplett...
Ich würde das Navigate woanders einbauen.

Grüße
Klaus

bgallamv 1. Jun 2007 19:40

Re: Fehler mit TWebBrowser ( Meldung "Format %p ungülti
 
Dank für die Tips.
Aber bitte das Edit Feld ausser Acht lassen. Da werden später nur komplette Urls reinkopiert.
Diese Fehlermeldung nervt mich so.
Will nicht immer zum probieren erst die EXE ausserhalb von Delphi starten.

Hab zur Probe mal noch schnell ein Formular gemacht mit Panel und WebBrowser.
auch der gleiche Fehler

Delphi-Quellcode:
procedure TForm1.Panel1Click(Sender: TObject);
begin
 WebBrowser1.Navigate(Panel1.Caption);
end;
Eventuell muss ich irgendwas in Delphi einstellen?

marabu 1. Jun 2007 20:42

Re: Fehler mit TWebBrowser ( Meldung "Format %p ungülti
 
Du hast leider noch nicht mitgeteilt welche Delphi-Version du verwendest. Ein Bug in D6 soll dazu führen, dass diese Fehlermeldung ausgegeben wird, wenn eigentlich eine ganz andere Mitteilung erfolgen sollte. Falls du mit D6 arbeitest, so solltest du dich vielleicht um ein Update kümmern.

Freundliche Grüße

Nachtrag: Als erstes würde ich das Anhalten des Programms in der IDE zumindest für EConvertError abschalten (Debugger-Option).


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.

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