![]() |
TWebbrowser: Eingabe in "Edit"-Feld wird an TForm weitergegeben
Hallo,
ja, für eine exaktere Fehlerbeschreibung fehlt oben der Platz ;) Also, ich haben ein PageControl mit einem TabSheet, einem Panel (alClient) und dann endlich einen TWebBrowser. Der WebBrowser zeigt eine Seite an mit einem Formularfeld (ja, es ist kein Edit, ich weiss). auf dem Form ist ein Hilfebutton (TBitBtn mit &Hilfe als Caption). Drücke ich jetzt im WebBrowser H, wird der HilfeButton aufgerufen. Das H steht auch nicht im WebBrowser-Edit drin. Benutze ich die Zwischenablage zur "Eingabe", klappt es. Packe ich einen TEdit (jetzt wirklich) auf das TabSheet mit drauf, geht es auch. Form.KeyPreview ist True Was ist denn hier kaputt? |
AW: TWebbrowser: Eingabe in "Edit"-Feld wird an TForm weitergegeben
Ich wünschte ich könnte helfen (habe so etwas mit diesen komischen Unterstreichungen noch nie gemacht), aber zumindest kann ich das nachvollziehen.
Der Stack ist bspw
Code:
Ich denke mal das Problem ist irgendwo dass der WebBrowser an sich keinen Fokus hat bzw. ihn nicht von den Buttons dort wegnimmt.
Unit21.TForm1.BitBtn1Click($31F11D0)
Vcl.Controls.TControl.Click Vcl.StdCtrls.TCustomButton.Click Vcl.Buttons.TBitBtn.Click Vcl.StdCtrls.TCustomButton.CMDialogChar((1702664, (), 62940, 25, (), 1701332, (), 6177856)) Vcl.Controls.TControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Controls.TWinControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.StdCtrls.TButtonControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Controls.TWinControl.Broadcast((kein Wert)) Vcl.Controls.TWinControl.CMDialogChar(???) Vcl.Controls.TControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Controls.TWinControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Controls.TWinControl.Broadcast((kein Wert)) Vcl.Controls.TWinControl.CMDialogChar(???) Vcl.Controls.TControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Controls.TWinControl.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Forms.TCustomForm.WndProc((45062, 104, 2293761, 0, 104, 0, (), 1, 35, (), 0, 0, ())) Vcl.Controls.TControl.Perform(???,???,2293761) Vcl.Controls.TWinControl.CNChar((48386, (), 104, 0, (), 2293761, (), 1)) Vcl.Controls.TControl.WndProc((48386, 104, 2293761, 1, 104, 0, (), 1, 35, (), 1, 0, ())) Vcl.Controls.TWinControl.WndProc((48386, 104, 2293761, 1, 104, 0, (), 1, 35, (), 1, 0, ())) Vcl.OleCtrls.TOleControl.WndProc((48386, 104, 2293761, 1, 104, 0, (), 1, 35, (), 1, 0, ())) Vcl.Controls.TWinControl.MainWndProc(???) System.Classes.StdWndProc(3080778,48386,104,2293761) Vcl.Forms.TApplication.IsKeyMsg(???) :0052e375 TButtonControl.WndProc + $71 |
AW: TWebbrowser: Eingabe in "Edit"-Feld wird an TForm weitergegeben
Och, das Problem kenne ich schon lange.
Wenn man im TWebBrowser was in ein Formular eingeben will, reagieren (statt die Eingabe ins Formular zu übernehmen) alle eventuell irgendwie im Programm enthaltenen Shortcuts, quasi so, als würde man die ALT-Taste festhalten und dann was eingeben, damit kann man zwar ggfls. ein Programm recht gut steuern, aber keine Eingaben in 'nem Formular im TWebBrowser machen. Abhilfe? Keine Ahnung, im Laufe der letzten Jahre keine gefunden :-( (Die ALT+Taste+Reaktion tritt auch auf, wenn man keine & in den Captions nutzt, dann werden halt ggfls. die von Windows "automatisch gewürfelten" ShortCuts "genutzt".) |
AW: TWebbrowser: Eingabe in "Edit"-Feld wird an TForm weitergegeben
|
AW: TWebbrowser: Eingabe in "Edit"-Feld wird an TForm weitergegeben
Hallo,
das in stackoverflow scheint genau das zu sein. Ich versuche gerade die 2. Lösung, um den Browser nicht ableiten zu müssen. Klappt aber leider nicht. Der Class Name (Internet Explorer_Server) heisst auf jeden Fall auch schon mal wirklich so. |
AW: TWebbrowser: Eingabe in "Edit"-Feld wird an TForm weitergegeben
Hallo,
ich habe jetzt Variante 2 genommen
Delphi-Quellcode:
Beim dynamischen Erzeugen auf einem Panel muss man noch etwas rumtricksen
uses
Windows, Messages, Controls, StdCtrls, ExtCtrls, SHDocVw; type TWebBrowser2 = class(TWebBrowser) procedure CNChar(var Message: TWMChar); message CN_CHAR; end; ... procedure TWebBrowser2.CNChar(var Message: TWMChar); begin Message.Result := 0; end;
Delphi-Quellcode:
Aber ansonsten läuft es wie gewünscht.WebBrowser:= TWebBrowser2.Create(Panel1); WebBrowser.Align:= alClient; TWinControl(WebBrowser).Parent := Panel1; // Parent is Read-Only Vielen Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 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