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/)
-   -   ToolTip Farbe wird geschluckt (https://www.delphipraxis.net/158443-tooltip-farbe-wird-geschluckt.html)

EWeiss 17. Feb 2011 18:41

ToolTip Farbe wird geschluckt
 
Jemand eine Ahnung warum die Übergebenen Farben an meinem ToolTip nicht berücksichtigt werden?

Delphi-Quellcode:
    if hTooltip <> 0 then
    begin
       ToolTipData(hTooltip, 1);
       SplitColorARGB(SK_ACTIVECAPTION, Alpha, Red, Green, Blue);
       SendMessage(hTooltip, TTM_SETTIPTEXTCOLOR, RGB(Red, Green, Blue), 0);
       SplitColorARGB(SK_INACTIVECAPTION, Alpha, Red, Green, Blue);
       SendMessage(hTooltip, TTM_SETTIPBKCOLOR, RGB(Red, Green, Blue), 0);
       SendMessage(hTooltip, TTM_SETMAXTIPWIDTH, 0, 400);

       // Addiere den ToolTipText
       ti.cbSize := sizeof(TToolInfo);
       ti.hinst := skInstance;
       ti.uFlags := TTF_IDISHWND or TTF_SUBCLASS;
       ti.hWnd  := hParent;
       ti.uId   := hObj;
       SendMessage(hTooltip, TTM_ADDTOOL, 0, LParam(@ti));
       SetToolTipText(hObj, Text)
    end;
Kann machen was ich will die sind immer Weiss/schwarz
Sollen aber !!
Zitat:

"ACTIVECAPTION, 255,240,240,240" ' Active caption text color.
"INACTIVECAPTION, 255,193,181,92" ' Inactive caption text color.
sein.

gruss

David Martens 17. Feb 2011 22:30

AW: ToolTip Farbe wird geschluckt
 
Probier mal das hier

EWeiss 17. Feb 2011 22:49

AW: ToolTip Farbe wird geschluckt
 
Zitat:

Zitat von David Martens (Beitrag 1082579)
Probier mal das hier

Danke aber das bringt mich nicht weiter.
Habe ja mein eigenes Control was nur nicht geht ist die Farbe.
Kann jetzt nicht sagen ob es an Windows liegt das diese nicht gehalten wird.

EDIT:
Habe es mal mit WinXp getestet dort werden die Farben richtig angezeigt von den tooltips
Kann ich nicht begreifen was da wieder nicht funktioniert in Win7

gruss

David Martens 17. Feb 2011 23:09

AW: ToolTip Farbe wird geschluckt
 
Ich hab auch das eine oder andere Problem beim Anzeigen unter Win7. Aber du kannst ja mal sehen wie die Komponente das macht.

EWeiss 18. Feb 2011 00:42

AW: ToolTip Farbe wird geschluckt
 
Zitat:

Zitat von David Martens (Beitrag 1082584)
Ich hab auch das eine oder andere Problem beim Anzeigen unter Win7. Aber du kannst ja mal sehen wie die Komponente das macht.

Das liegt an Win7
Ich muss quasi die UpXTeme.dll einbinden also die *.pas davon
Dann mit
Delphi-Quellcode:
InitThemeLibrary;

Die Library Laden
Und Windows mitteilen das ich mit meinem Programm die Themes für den ToolTip nicht verwenden will.

Delphi-Quellcode:
SetWindowTheme(hTooltip, '',nil);

Irgendwie verstehe ich den Aufruf nicht so recht zumindest funktioniert es noch nicht.

Delphi-Quellcode:
  SetWindowTheme: function(hwnd: HWND; pszSubAppName: LPCWSTR;
    pszSubIdList: LPCWSTR): HRESULT; stdcall;
Bin mir nicht sicher ob ich den Namen meiner Anwendung mit Angeben muss.

Und ob noch irgendwelche Aufrufe fehlen.

Das einzigste was ich gefunden habe ist das hier..
http://www.autoitscript.com/forum/to...ltip-coloring/

EDIT:
Ok der Fehler war "NIL" ist ja ein String ;)

gruss

EWeiss 18. Feb 2011 01:22

AW: ToolTip Farbe wird geschluckt
 
Ok geht jetzt!

Delphi-Quellcode:
InitThemeLibrary;

var
  S_OK:    HResult;
 
 ...
if hTooltip <> 0 then
begin
  S_OK := SetWindowTheme(hTooltip, '' , '');
  if S_OK = 0 then
  begin
    ToolTipData(hTooltip, 1);
    SplitColorARGB(SK_ACTIVECAPTION, Alpha, Red, Green, Blue);
    SendMessage(hTooltip, TTM_SETTIPTEXTCOLOR, RGB(Red, Green, Blue), 0);
    SplitColorARGB(SK_INACTIVECAPTION, Alpha, Red, Green, Blue);
    SendMessage(hTooltip, TTM_SETTIPBKCOLOR, RGB(Red, Green, Blue), 0);
    SendMessage(hTooltip, TTM_SETMAXTIPWIDTH, 0, 400);
  end;
end;
TTM_SETTIPTEXTCOLOR, und TTM_SETTIPBKCOLOR werden warhaftig geschluckt(nicht beachtet)
wenn die Theme für das Handle(ToolTip) nicht deaktiviert ist.

Vielleicht hilft das ja jemand der das gleiche Problem hat.

gruss

David Martens 18. Feb 2011 01:55

AW: ToolTip Farbe wird geschluckt
 
Kann es sein, das du einfach nur andere Messages senden mußt, wenn du Themes benutzt? Das hatte ich gestern bei checkboxen auch.

EWeiss 18. Feb 2011 02:10

AW: ToolTip Farbe wird geschluckt
 
Zitat:

Zitat von David Martens (Beitrag 1082591)
Kann es sein, das du einfach nur andere Messages senden mußt, wenn du Themes benutzt? Das hatte ich gestern bei checkboxen auch.

Nö die Messagen die ich im Thread drüber verwende sind richtig.
Es ist wie ich sagte die Farben werden von den Tolltips mißachtet wenn Themes in Windows 7 aktiviert sind.
Deshalb muss ich sie NUR für die ToolTips deaktivieren und das gilt dann auch nur für mein Programm.
Systemweit sind sie dann immer noch weiss/schwarz.

Dein Beispiel was du verlinkt hast war ja eine Komponente ich schreibe aber in NONVCL.

gruss


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