![]() |
Twwebbrowser "return" Problem
Hi Leute !
Bin gerade dabei mir anfänglich einen eigenen Browser zu Programmieren (oder besser zusammenzubasteln) nun muss ich dazu sagen das ich ein totaler newb, und sobald ich vor einem Problem stehe sofort auf die Hilfe ander angewiesen bin :) :wall: :gruebel: So hier mein Problem: In der komponente twebbrowser funktioniert die "return" also die entertaste nicht sprich wenn ich in einem forum wie diesen einen bericht schreiben möchte kann ich keinen zeilenumbruch machen :( ich habe zwar schon die lösung des problems gefunden kann sie aber nicht ntzen :wiejetzt: : ![]() Unter dem gegebenen link ist ein code zur lösung des problems, nun hab ich das Problem, wie genau setze ich diesen code ein ? muss ich den irgendwo reinkopieren oder wie ? :?: Würde mich sehr über ne Antwort freuen mfg rickleimbach ach hier noch mein zurzeitiger code:
Delphi-Quellcode:
unit webbrows;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw, Menus; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Edit1: TEdit; Button1: TButton; button2: TButton; Button3: TButton; Button4: TButton; MainMenu1: TMainMenu; Datei1: TMenuItem; Beenden1: TMenuItem; Hilfe1: TMenuItem; Version1: TMenuItem; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); procedure button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); procedure Version1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses webbrowsform2; {$R *.dfm} procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key= #13// then webbrowser1.navigate(edit1.text) end; procedure TForm1.Button1Click(Sender: TObject); begin webbrowser1.GoBack; end; procedure TForm1.button2Click(Sender: TObject); begin Webbrowser1.GoForward; end; procedure TForm1.Button3Click(Sender: TObject); begin webbrowser1.Stop; end; procedure TForm1.Button4Click(Sender: TObject); begin webbrowser1.Refresh; end; procedure TForm1.Beenden1Click(Sender: TObject); begin application.Terminate; end; procedure TForm1.Version1Click(Sender: TObject); begin form2.showmodal; end; end. |
Re: Twwebbrowser "return" Problem
das schreibste' ans Ende (vor das letzte end. mit dem Punkt):
Delphi-Quellcode:
das schreibste in deine Klassendeklaration unter public:
procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean);
const DialogKeys: set of Byte = [VK_LEFT, VK_RIGHT, VK_BACK, VK_UP, VK_DOWN, $30..$39, $41..42, $44..$55, $57, $59..$5A]; var iOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; begin { exit if we don't get back a webbrowser object } if (WebBrowser1 = nil) then begin Handled := System.False; Exit; end; Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = System.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 DialogKeys) then // nothing - do not pass on the DialogKeys else FOleInPlaceActiveObject.TranslateAccelerator(Msg); end; end; initialization OleInitialize(nil); finalization OleUninitialize;
Delphi-Quellcode:
das schreibste in das OnDestroy-Event vom Form (Formular markieren und bei Events doppelt in das Feld hinter OnDestroy klicken):
FOleInPlaceActiveObject: IOleInPlaceActiveObject;
procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);
Delphi-Quellcode:
das ins OnCreate vom Form (s.o.):
FOleInPlaceActiveObject := nil;
Delphi-Quellcode:
so das dürfte funktionieren ;)
Application.OnMessage := MsgHandler;
mfg Lars |
Re: Twwebbrowser "return" Problem
Natürlich wird das funktionieren aber was bringt es ihm?
Er möchte es ja gerne auch verstehen... :roll: MfG Florian :hi: |
Re: Twwebbrowser "return" Problem
naja funktioniert nich wirklich sobald ich dann das programm starten möchte markiert er mir die klassendeklaration unter public rot ??? Also folgendes :
Delphi-Quellcode:
wobei der blinkende cursor hinter des ";" nach IOleInPlaceActivateObjekt
FOleInPlaceActiveObject: IOleInPlaceActiveObject;
springt ? :witch: |
Re: Twwebbrowser "return" Problem
Vielleicht hilft dir
![]() Edit: :wall: steht ja ganz oben... Du musst deine Unit nur mit der vergleichen und entsprechend erweitern, bei mir funzt das dann. Edit2: Was kommt denn für ein Fehler? |
Re: Twwebbrowser "return" Problem
blub ? Matze oben lesn hab den link schon :)
Also hier mein code nach der änderung :
Delphi-Quellcode:
so und er markiert mir die oben angegebene zeile (siehe die antwort von mir weiter oben) rot .
unit webbrows;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, SHDocVw, Menus; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; Edit1: TEdit; Button1: TButton; button2: TButton; Button3: TButton; Button4: TButton; MainMenu1: TMainMenu; Datei1: TMenuItem; Beenden1: TMenuItem; Hilfe1: TMenuItem; Version1: TMenuItem; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); procedure button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); procedure Version1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } FOleInPlaceActiveObject: IoleInPlaceActiveObject; procedure MsgHandler(var Msg: TMsg; var Handled: Boolean); end; var Form1: TForm1; implementation uses webbrowsform2; {$R *.dfm} procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key= #13// then webbrowser1.navigate(edit1.text) end; procedure TForm1.Button1Click(Sender: TObject); begin webbrowser1.GoBack; end; procedure TForm1.button2Click(Sender: TObject); begin Webbrowser1.GoForward; end; procedure TForm1.Button3Click(Sender: TObject); begin webbrowser1.Stop; end; procedure TForm1.Button4Click(Sender: TObject); begin webbrowser1.Refresh; end; procedure TForm1.Beenden1Click(Sender: TObject); begin application.Terminate; end; procedure TForm1.Version1Click(Sender: TObject); begin form2.showmodal; end; procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean); const DialogKeys: set of Byte = [VK_LEFT, VK_RIGHT, VK_BACK, VK_UP, VK_DOWN, $30..$39, $41..42, $44..$55, $57, $59..$5A]; var iOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; begin { exit if we don't get back a webbrowser object } if (WebBrowser1 = nil) then begin Handled := System.False; Exit; end; Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = System.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 DialogKeys) then // nothing - do not pass on the DialogKeys else FOleInPlaceActiveObject.TranslateAccelerator(Msg); end; end; procedure TForm1.FormDestroy(Sender: TObject); begin FOleInPlaceActiveObject := nil; end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := MsgHandler; end; initialization OleInitialize(nil); finalization OleUninitialize; end. |
Re: Twwebbrowser "return" Problem
Bei den uses ganz oben muss Folgendes stehen (laut SDC):
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw_TLB, ActiveX, StdCtrls; |
Re: Twwebbrowser "return" Problem
In Delphi:
Komponente - ActiveX impostieren dort Microsoft Internet Controls auswählen und dann auf "Unit anlegen" |
Re: Twwebbrowser "return" Problem
So gut funzt alles hat sich damit erledigt vielen dank @matze ^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:21 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