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 Schliessen-Button wie bei BalloonTips von XP selbst gemacht (https://www.delphipraxis.net/57658-schliessen-button-wie-bei-balloontips-von-xp-selbst-gemacht.html)

Helmi 24. Nov 2005 19:14


Schliessen-Button wie bei BalloonTips von XP selbst gemacht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich würde gerne so einen Schliessen-Button, wie er bei den BalloonTips bei XP zu sehen ist, selbst gemacht.
(siehe Pic).

Weiss jemand, wie man diesen Button nachbauen kann, wenn möglich ohne eigener Kompo.

Ich hab schon mal einen SpeedButton für so was benutzt. Er schaut ähnlich aus, wenn man Flat auf true setzt und Caption = X, aber es fehlt halt das schwarze Rechteck um den Button rum.

Weiss jemand wie man das machen könnte, bzw. gibt es denn die möglichkeit einen "System"-Button, z. B. durch auslesen einer DLL, zu bekommen (dies sollte aber Windows-Version-unabhänigig sein)?

RavenIV 25. Nov 2005 07:47

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
nimm doch ein image dafür.
im OnClick schliesst du den BallonTip dann.

Flocke 25. Nov 2005 08:46

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Zitat:

Zitat von Helmi
Weiss jemand wie man das machen könnte, bzw. gibt es denn die möglichkeit einen "System"-Button, z. B. durch auslesen einer DLL, zu bekommen (dies sollte aber Windows-Version-unabhänigig sein)?

Es gibt die Funktion MSDN-Library durchsuchenDrawFrameControl, die das zeichnet. Normalerweise sollte das mit dem Typ DFC_CAPTION und dem Stil als eine Kombination von DFCS_CAPTIONCLOSE und einem oder mehreren der Flags DFCS_FLAT, DFCS_HOT, DFCS_INACTIVE, DFCS_PUSHED, DFCS_TRANSPARENT gehen.
Nimm am besten eine Paintbox dafür, lass dir die Größe aber auch von dieser Funktion mit dem Flag DFCS_ADJUSTRECT ausrechnen.

Helmi 25. Nov 2005 20:09

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Zitat:

Zitat von Flocke
Zitat:

Zitat von Helmi
Weiss jemand wie man das machen könnte, bzw. gibt es denn die möglichkeit einen "System"-Button, z. B. durch auslesen einer DLL, zu bekommen (dies sollte aber Windows-Version-unabhänigig sein)?

Es gibt die Funktion MSDN-Library durchsuchenDrawFrameControl, die das zeichnet. Normalerweise sollte das mit dem Typ DFC_CAPTION und dem Stil als eine Kombination von DFCS_CAPTIONCLOSE und einem oder mehreren der Flags DFCS_FLAT, DFCS_HOT, DFCS_INACTIVE, DFCS_PUSHED, DFCS_TRANSPARENT gehen.
Nimm am besten eine Paintbox dafür, lass dir die Größe aber auch von dieser Funktion mit dem Flag DFCS_ADJUSTRECT ausrechnen.

Hallo,

Danke für den Tip mit dem DrawFrameControl
funktioniert echt gut.

Trotzdem hätt ich noch ein paar kleine Fragen:
  • Wie kann ich es schaffen, dass der Button, wie er bei dem BalloonTips von WinXP, beim Überstreichen durch die Maus, die Farbe verändert?
  • Ich würde auch gerne die Grundfarbe verändern - das Graue schaut ja unmöglich aus
  • Wie kann man mit dieser Function und dem Flag "DFCS_ADJUSTRECT" die Größe ermitteln?

Helmi 26. Nov 2005 19:47

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hat jemand ne Ahnung wie man ich das transparent hinbekommen kann?
DFCS_Transparent hat bei mir keine Auswirkung

ich hab anbei mal ein Beispiel-Projekt angehängt

[edit]Neue Version - in der alten war ein Fehler[/edit]

Helmi 22. Dez 2005 21:01

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
*push*

weiss jemand über meine fragen von oben weiter?

Helmi 18. Jan 2006 19:27

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
*push*

Weiss jemand vielleicht, wie ich es machen kann, dass der Button, den ich mit DrawFrameControl erzeuge, beim Überfahren mit der Maus die Farbe verändert?
(Wie bei einem BalloonTip von WindoofsXP)

Helmi 23. Sep 2006 20:23

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Nach fast einem dreivierteltem Jahr erlaub ich mir nochmal nachzufragen :-)

Muetze1 23. Sep 2006 20:36

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Im Normalfall erledigt es dier HotTrack, somit DFCS_HOT. Näheres dazu findest du in der MSDN, schonmal dort geschaut?

Helmi 23. Sep 2006 20:51

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Hallo

mit diesem Code erzeug ich den Button in der PaintBox:

Delphi-Quellcode:
  with PaintBox1 do
    begin
      DrawFrameControl(Canvas.Handle, ClientRect, DFC_CAPTION, DFCS_CAPTIONCLOSE + DFCS_FLAT + DFCS_HOT + DFCS_TRANSPARENT);
    end;
Nur wie muss ich das nun machen, dass der Button wechselt? - im Code oben ist ja das DFCS_HOT schon mit dabei.
Wenn ich es rauslasse, dann seh ich erst mal keinen Unterschied.

Mackhack 23. Sep 2006 21:16

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Hi,

warum baust du dir nicht die echten Balloon-Tooltips.

Bei SwissDelphiCenter gibts n paar Codes dafuer wenn du unter den Programmier Tips nach 'Balloon' suchst!

Helmi 23. Sep 2006 21:20

Re: Schliessen-Button wie bei BalloonTips von XP selbst gema
 
Verzeihung, ich will wissen wie ich den Button zum Wechseln bekomme und nicht wie ich mir nen Win-Eigenen BalloonTip bastel.

Ich hab meine Gründe!


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