Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TDBGrid und TWebBrowser - Kompatibilitätsproblem (https://www.delphipraxis.net/74835-tdbgrid-und-twebbrowser-kompatibilitaetsproblem.html)

DocE 9. Aug 2006 12:57


TDBGrid und TWebBrowser - Kompatibilitätsproblem
 
Hallo zusammen,

ich habe folgendes Problem:

Ich möchte in einer Datenbank gespeicherte HTML-Texte formatiert anzeigen und nutze dazu den TWebBrowser. Die Auswahl des Datensatzes erfolgt - ganz gewöhnlich - über ein TDBGrid. Dies funktioniert auch soweit einwandfrei, bis man in den TWebBrowser klickt, dieser also den Fokus erhält.

Will man jetzt auf einen anderen Datensatz des TDBGrids klicken, passiert gar nichts. Das Grid reagiert überhaupt nicht auf den Klick (es werden auch keine OnEnter/OnMouseDown-Events ausgelöst). Merkwürdigerweise funktioniert der Rechtsklick (Popup) und der TitleClick ohne Probleme. Aber auch danach ist der Klick auf den Datensatz nicht möglich.

Die Hoch/Runter-Pfeiltasten bewegen jetzt immer noch die im TWebBrowser angezeigte Seite hoch/runter.

Erst, wenn man eine andere Komponenente anklickt (-> Fokus) funktioniert das TDBGrid wieder "normal". Dies habe ich mit folgenden Controls getestet: TButton, TBitBtn, TTreeView, TDBMemo (Ein Klick aufs Formular selbst bringt keine Besserung).

Mit einem TStringGrid funktioniert das übrigens... Allerdings stellt des keine wirkliche Alternative dar.

Das Thema wurde wohl schon einmal im Oktober 2005 von "hackie3of5" angesprochen. Leider gab es jedoch keine Lösung.

Habt ihr eine Idee, wie man dieses Problem lösen kann bzw. woran das liegt? Evtl. gibt es auch eine Alternative zum TWebBrowser, die diesen Bug nicht beinhaltet.

Vielen Dank schon mal!


Grüsse
...Doc

omata 9. Aug 2006 13:34

Re: TDBGrid und TWebBrowser - Kompatibilitätsproblem
 
Hallo DocE,

ich konnte dein Problem reproduzieren. Ein einfaches Hinzufügen von folgendem Code brachte die Lösung, ich konnte bis jetzt nicht feststellen, ob das dann wieder andere Auswirkungen hat.

Delphi-Quellcode:
  :
  private
    { Private-Deklarationen }
    procedure WndProc(var msg: TMessage); message WM_ACTIVATE;
  :

procedure TForm.WndProc(var msg: TMessage);
begin
end;
Gruss
Thorsten

DocE 10. Aug 2006 18:43

Re: TDBGrid und TWebBrowser - Kompatibilitätsproblem
 
Hallo Thorsten,

vielen Dank für die Lösung. :thumb: Hat funktioniert!

Nachdem dieses Problem also nun gelöst war, habe ich den TWebBrwoser weiter implementiert, wobei mir auffiel, dass dieser doch noch viele weitere Bugs hat. Die Eigenschaft Visible z.B. hat nicht die gewünschte Funktion (TWebBrowser verschwindet nicht bei false). Allerdings lässt sich bei Visible=false die Grösse (Height/Width) nicht mehr ändern. Gut, wenn man das weiß, kann man das einfach umgehen, indem man Visible nie auf false setzt, sondern einfach die Grösse auf 0 setzt bzw. den WebBrowser hinter anderen visuellen Komponenten versteckt. Übergangsweise werde ich wohl mit dem TWebBrowser zurecht kommen, wirklich zufriedenstellend finde ich das allerdings nicht.

Falls jemand eine gute Alternative zu dem TWebBrowser hat, um HTML formatiert anzeigen zu können, würde ich mich über eine kurze Info freuen.

Danke nochmal!

Grüsse
...Doc


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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