AGB  ·  Datenschutz  ·  Impressum  







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

Twwebbrowser "return" Problem

Ein Thema von rickleimbach · begonnen am 11. Aug 2004 · letzter Beitrag vom 12. Aug 2004
Antwort Antwort
rickleimbach

Registriert seit: 11. Aug 2004
14 Beiträge
 
Turbo Delphi für Win32
 
#1

Twwebbrowser "return" Problem

  Alt 11. Aug 2004, 23:53
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

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 :

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

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.
  Mit Zitat antworten Zitat
digleu

Registriert seit: 28. Okt 2003
Ort: Alfter, das dach der Welt
16 Beiträge
 
#2

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 02:34
das schreibste' ans Ende (vor das letzte end. mit dem Punkt):
Delphi-Quellcode:
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;
das schreibste in deine Klassendeklaration unter public:
Delphi-Quellcode:
    FOleInPlaceActiveObject: IOleInPlaceActiveObject;
    procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);
das schreibste in das OnDestroy-Event vom Form (Formular markieren und bei Events doppelt in das Feld hinter OnDestroy klicken):
  FOleInPlaceActiveObject := nil; das ins OnCreate vom Form (s.o.):
  Application.OnMessage := MsgHandler; so das dürfte funktionieren ;)

mfg Lars
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 10:35
Natürlich wird das funktionieren aber was bringt es ihm?
Er möchte es ja gerne auch verstehen...

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
rickleimbach

Registriert seit: 11. Aug 2004
14 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 12:10
naja funktioniert nich wirklich sobald ich dann das programm starten möchte markiert er mir die klassendeklaration unter public rot ??? Also folgendes :

FOleInPlaceActiveObject: IOleInPlaceActiveObject; wobei der blinkende cursor hinter des ";" nach IOleInPlaceActivateObjekt

springt ?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 15:19
Vielleicht hilft dir das hier.

Edit: 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?
  Mit Zitat antworten Zitat
rickleimbach

Registriert seit: 11. Aug 2004
14 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 15:28
blub ? Matze oben lesn hab den link schon

Also hier mein code nach der änderung :

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);
    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.
so und er markiert mir die oben angegebene zeile (siehe die antwort von mir weiter oben) rot .
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 15:30
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;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 15:42
In Delphi:

Komponente - ActiveX impostieren

dort Microsoft Internet Controls auswählen und dann auf "Unit anlegen"
  Mit Zitat antworten Zitat
rickleimbach

Registriert seit: 11. Aug 2004
14 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Twwebbrowser "return" Problem

  Alt 12. Aug 2004, 16:00
So gut funzt alles hat sich damit erledigt vielen dank @matze ^^
  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 13:35 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