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 TWebbrowser mit Border-Style wie ein TEdit (https://www.delphipraxis.net/176506-twebbrowser-mit-border-style-wie-ein-tedit.html)

Codehunter 11. Sep 2013 09:49


TWebbrowser mit Border-Style wie ein TEdit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin!

Ich habe einen TWebbrowser (im EditMode) und möchte dessen Rahmen gern so aussehen lassen wie den eines TEdit. Unter den Alten Delphis und bis Windows XP (ohne Theming) war das ja ohnehin gegeben, beide Controls hatten den tiefen Rand.

Bei XE4 und unter Win 7 sieht das dann anders aus: Ein TEdit hat einen Rahmen mit abgerundeten Ecken, der blau wird wenns den Fokus hat. Der TWebbrowser dagegen hat nun gar keinen Rahmen mehr (siehe Bildschirmfoto). Er soll aber idealerweise genauso aussehen wie ein TEdit oder ein TMemo, auch mit abgerundeten Ecken und Fokus-sensitiver Rahmenfarbe.

Ich vermute, man müsste das mit CreateParams machen können, mir fehlt nur grad der richtige Einstieg.

Grüße
Cody

Der schöne Günther 11. Sep 2013 10:00

AW: TWebbrowser mit Border-Style wie ein TEdit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Codehunter (Beitrag 1227918)
(siehe Bildschirmfoto)

Zitat:

Zitat von Codehunter (Beitrag 1227918)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und manchmal Löcher in der Wand dahinter.

Zitat:

Zitat von Codehunter (Beitrag 1227918)
<kein Bildschirmfoto angehängt>


Mein Gesicht im Anhang.


PS: Ich habe gerade einmal
Delphi-Quellcode:
(WebBrowser1 as TWinControl).Parent := Memo1;
versucht. Komischerweise verliert die Memo dann auch plötzlich ihren schönen blauen Rahmen. Gemein.

Codehunter 11. Sep 2013 10:27

AW: TWebbrowser mit Border-Style wie ein TEdit
 
Oi, das kommt davon wenn man nen Bagger vorm Bürofenster hat und seine eigenen Gedanken nicht mehr hören kann ;-)

EDIT: Ich war jetzt mal frech und hab bei der CreateParams-Routine vom TCustomEdit abgeschrieben:
Delphi-Quellcode:
procedure TMyWebbrowser.CreateParams(var Params: TCreateParams);
const
  BorderStyles: array[TBorderStyle] of DWORD = (0, WS_BORDER);
begin
  inherited CreateParams(Params);
  CreateSubClass(Params, 'EDIT');
  with Params do
  begin
    Style := Style or (ES_AUTOHSCROLL or ES_AUTOVSCROLL) or BorderStyles[FBorderStyle];
    if NewStyleControls and Ctl3D and (FBorderStyle = bsSingle) then
    begin
      Style := Style and not WS_BORDER;
      ExStyle := ExStyle or WS_EX_CLIENTEDGE;
    end;
  end;
end;
Mal ganz davon abgesehen, dass wir da in der VCL auch noch das with-Statement sehen *gg*, es funktioniert nicht. Die CreateParams-Routine wird schlichtweg nicht aufgerufen. :-(


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