AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser auf TForm -- KeyPress?

Ein Thema von HJay · begonnen am 27. Nov 2010 · letzter Beitrag vom 27. Nov 2010
Antwort Antwort
HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#1

TWebBrowser auf TForm -- KeyPress?

  Alt 27. Nov 2010, 15:42
Ich habe eine TForm mit einem TPanel mit ein paar TSpeedButtons und einen TWebBrowser mit TWebBrowser.Align = alClient, der den Rest des Fenster einnimmt.

Ich habe TForm.KeyPreview = True gesetzt, aber FormKeyPress erhält trotzdem keine Tastenanschläge. Verhindert dies der Webbrowser? (Auch wenn ich ein TEdit zusätzlich aufnehme, funktioniert KeyPreview nur, wenn der Edit den Focus hat.)

Was kann man machen? Ich würde sehr gerne wie in allen anderen meinen Programmfenstern ein Schließen des TForm durch Drücken von ESCAPE ermöglichen.
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

AW: TWebBrowser auf TForm -- KeyPress?

  Alt 27. Nov 2010, 16:42
Setze eine TApplicationEvents Komponente auf deine Form. Im OnMessage Ereignis kannst du dann ESC etc. abfangen.

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if (Msg.wParam = VK_ESCAPE) and (Msg.message = WM_KEYDOWN) then
  begin
    // ESCAPE
  end;
end;
Thomas
  Mit Zitat antworten Zitat
HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#3

AW: TWebBrowser auf TForm -- KeyPress?

  Alt 27. Nov 2010, 16:49
Wow, gewusst wie. Vielen Dank, klappt auf Anhieb.

Ich habe zuvor noch nie TApplicationEvents gebraucht. Hat das irgendwelche anderen Auswirkungen auf Events oder ist das "ungefährlich" ohne Nebenwirkungen?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: TWebBrowser auf TForm -- KeyPress?

  Alt 27. Nov 2010, 18:03
das TApplication-Object bietet die Events OnMessage etc. an. Da damit aber immer nur einer dieses Events verwenden kann ist es besser TApplication-Events zu nutzen da man dann keine Angst haben muss das eine andere Komponenten einem das Event klaut.
Nebenwirkungen hat die Verwendung keine sofern du in den Events nichts schlimmes anstellst.
Grund dafür das dein KeyPreview bei TWebbrowser keinen Effekt hat ist, dass es kein Teil der Delphi VCL ist und sich somit nicht darum kümmert ob KeyPreview in irgend einem Formular aktiv ist.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
HJay

Registriert seit: 7. Dez 2009
172 Beiträge
 
Delphi XE7 Enterprise
 
#5

AW: TWebBrowser auf TForm -- KeyPress?

  Alt 27. Nov 2010, 20:28
Danke für die Erläuterung. Die VCL-Events sind natürlich übersichtlich, während ich mich mit Messages nicht auskenne. So oder so, ist das erste Mal, dass KeyPreview nicht seinen Dienst getan hat und die obige Lösung hat perfekt funktioniert.

TWebBrowser ist kein VCL? Hatte ich noch gar nicht gemerkt. Auch danke für diesen Hinweis! Leider ist in D6 das gesamte Internet noch ziemlich sparsam bestückt, aber man kommt halbwegs zurecht. Seltsam, dass TWebbroser nicht auch zur VCL gehört, oder?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 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