Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Keine Zeilenumbruch in TWebBrowser?


jjturbo - Do 11.03.04 11:27
Titel: Keine Zeilenumbruch in TWebBrowser?
Moin Forum,

wenn ich in einer WebSite, die ich mit TWebBrowser geladen habe Text eingebe, so bekomme ich mit Enter keinen Zeilenumbruch.
Weiß jemand Rat?

Gruß, jjturbo


Anonymous - Do 11.03.04 13:04

http://www.swissdelphicenter.ch/de/showcode.php?id=1055

gruß

ixtreme.de


jjturbo - Do 11.03.04 15:41

jau, das funzt.. :D

Danke Dir!

Gruß, jjturbo


alias5000 - Di 12.07.05 18:14

der Link funtzt nicht mehr, kann ihn irgendjemand bitte aktualisieren?


Alstar - Di 12.07.05 18:15

Funzt doch ...

Alstar


WeBsPaCe - Di 12.07.05 18:20

Also bei mir funktioniert der Link auch, aber ich denke, es ist kein Problem, wenn wir das hier quoten:

Zitat:
Problem:

Web forms that have multiline text boxes and/or Submit buttons do not
respond to the Enter key when displayed on a TWebbrowser.
Also when browsing local folders, some keys don't respond.

How to solve it:



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, ActiveX;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FOleInPlaceActiveObject: IOleInPlaceActiveObject;
    procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FOleInPlaceActiveObject := nil;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := MsgHandler;
end;

procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean);
const
  StdKeys = [VK_BACK, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT];
var IOIPAO: IOleInPlaceActiveObject;
  Dispatch: IDispatch;
begin
  if WebBrowser1 = nil then
  begin
    Handled := False;
    Exit;
  end;
  Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = True);
  if (Handled) and (not WebBrowser1.Busy) then
  begin
    if FOleInPlaceActiveObject = nil then
    begin
      Dispatch := WebBrowser1.Application;
      if Dispatch <> nil then
      begin
        Dispatch.QueryInterface(IOleInPlaceActiveObject, IOIPAO);
        if IOIPAO <> nil then FOleInPlaceActiveObject := IOIPAO;
      end;
    end;
    if FOleInPlaceActiveObject <> nil then
      if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
        (Msg.wParam in StdKeys) then
        //nothing  -  do not pass on Backspace, Left, Right, Up, Down arrows
      else FOleInPlaceActiveObject.TranslateAccelerator(Msg);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Webbrowser1.Navigate('www.SwissDelphiCenter.ch');
end;

initialization
  OleInitialize(nil);

finalization
  OleUninitialize
end.


alias5000 - Di 12.07.05 18:21

ja, mit dem anderen Browser (Firefox) gehts


WeBsPaCe - Di 12.07.05 18:22

user profile iconalias5000 hat folgendes geschrieben:
ja, mit dem anderen Browser (Firefox) gehts

Bei mir funktioniert der Link mit Internet Explorer und Netscape Navigator auch... ;)


alias5000 - Di 12.07.05 18:29

höhö, da könnte man jetzt ein neues Topic draus machen. Ich war mit meinem eigenen Browser (TEmbeddedWB als Tabbed Browser) unterwegs


WeBsPaCe - Di 12.07.05 18:40

user profile iconalias5000 hat folgendes geschrieben:
höhö, da könnte man jetzt ein neues Topic draus machen. Ich war mit meinem eigenen Browser (TEmbeddedWB als Tabbed Browser) unterwegs

Den wirst du dann aber noch etwas ausbauen müssen... :tongue:


alias5000 - Di 12.07.05 18:46

Ich wüsste halt gerne, woran das liegt. Es ist keine Exception aufgetreten, nix. Ich muss es mal mit dem Original IE versuchen


alias5000 - Di 12.07.05 18:59

Also im IE funktioniert es Erwartungsgemäß. Ne Ahnung?


WeBsPaCe - Di 12.07.05 19:05

user profile iconalias5000 hat folgendes geschrieben:
Also im IE funktioniert es Erwartungsgemäß. Ne Ahnung?

Nö. Scheint halt schlecht implementiert zu sein... ;) Mach doch aber einfach nen neuen Thread auf... Vielleicht weiß jemand was... ;)