Delphi-PRAXiS
Seite 2 von 4     12 34      

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 PageControl - Tabs um Schließen-Symbol erweitern (https://www.delphipraxis.net/79030-pagecontrol-tabs-um-schliessen-symbol-erweitern.html)

turboPASCAL 2. Jul 2009 06:19

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Moin.

@toms, eine Frage dazu, was ist die Unit WinXP ?

toms 2. Jul 2009 06:33

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Zitat:

Zitat von turboPASCAL
Moin.

@toms, eine Frage dazu, was ist die Unit WinXP ?

Diese Unit kann entfernt werden. Brauchte ich nur für D6, da dieses die XPMan noch nicht hat.

anse 28. Jul 2009 19:51

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Cool wäre ja jetzt noch wenn man im leeren Bereich rechts neben den Tabs auf Doppelklick ein neues Tab öffnen könnte - so wie es im FireFox und mittlerweile auch einigen anderen Anwendungen funktioniert. Leider feuert in dem Bereich aber kein einziger Event:
* OnMouseDown + OnMouseUp reagieren nur auf den Tabs selbst, nicht aber in dem freien Bereich
* OnMouseClick + OnDblClick gibt's gar nicht bei TPageControl
* OnMouseActivate ist unbrauchbar für diesen Zweck und feuert auch dort nicht
* Auch die darunterliegende Komponente feuert hier kein OnClick o.ä. (was auch eigentlich logisch ist, aber hätte ja sein können)

Ideen?

mirage228 29. Jul 2009 00:21

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Wird auch keine VCL-Interne Window Message verschickt? Ala CM_MOUSECLICK oder so?

anse 29. Jul 2009 07:04

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Oh, sofern ein Tab den Fokus hat wird bei Klick auf den freien Bereich die Message 45060 verschickt. Keine Ahnung welche das genau ist, WM_LBUTTONDOWN (513) ist es nicht.

Lannes 29. Jul 2009 07:31

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Hallo,

45060 -> $B004

Aus controls.pas:
CM_BASE = $B000;
CM_CANCELMODE = CM_BASE + 4;

In OnMouseDown der Form kannst Du ermitteln ob ein Mousklick in dem Bereich stattgefunden hat:
Delphi-Quellcode:
var aRect : TRect;
    aPoint : TPoint;
begin
  aRect := PasgeControl.ClientRect;
  aPoint := PasgeControl.ScreenToClient(ClientToScreen(Point(X,Y)));
  if PtInRect(aRect,aPoint) then
    //neben Reiter geklickt
    else
      //auf Form geklickt
OnMouseDown der Form feuert nicht wenn auf andere Bereiche des PageControl geklickt wird.

anse 29. Jul 2009 20:40

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Hey Lannes, Grüße nach Münster aus Nienberge (bzw. Neuenkirchen privat) :)

Bei mir feuert die Form kein OnMouseDown wenn ich auf eine Komponente - egal welche und egal an welcher Stelle ich klicke. (D11)

(ähm, arbeitest du wirklich noch mit Delphi 3 (siehe dein Profil)?)

semo 29. Jul 2009 21:36

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Kleiner EInwurfvon mir: die Jedis bieten eine schöne Komponente: TJvTabBar

toms 30. Jul 2009 06:24

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Zitat:

Zitat von M. Hassmann
Kleiner EInwurfvon mir: die Jedis bieten eine schöne Komponente: TJvTabBar

Das "X" ist jedoch immer links und es gibt keine Hover/OnClick-Effekte

uwewo 30. Jul 2009 08:06

Re: PageControl - Tabs um Schließen-Symbol erweitern
 
Delphi-Quellcode:
//Notlösung, da kA wie man das TRect manuell setzt um den Reiter zu verbreitern:
PageControl1.Pages[PageIndex].Caption := PageControl1.Pages[PageIndex].Caption + '     ';
Delphi-Quellcode:
PageControl.TabWidth


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:32 Uhr.
Seite 2 von 4     12 34      

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