Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Balloon Tooltip (https://www.delphipraxis.net/158509-balloon-tooltip.html)

Willie1 20. Feb 2011 11:25

Balloon Tooltip
 
Hallo Leute,
ich habe mir eine Unit gebaut, um Balloon Tooltips anzeigen zu können. In einen Demoprogramm schien alles zu klappen, dann stellte ich aber fest, dass in einem Tochterfenster keine Tooltips aufpoppen, keine Fehlermeldung, es passiert einfach nichts.
Übersehe ich da etwas Offensichtliches oder wie oder was?

Schönen Sonntag
Willie

lbccaleb 20. Feb 2011 14:32

AW: Balloon Tooltip
 
Zitat:

Zitat von Willie1 (Beitrag 1083050)
Hallo Leute,
ich habe mir eine Unit gebaut, um Balloon Tooltips anzeigen zu können. In einen Demoprogramm schien alles zu klappen, dann stellte ich aber fest, dass in einem Tochterfenster keine Tooltips aufpoppen, keine Fehlermeldung, es passiert einfach nichts.
Übersehe ich da etwas Offensichtliches oder wie oder was?

Schönen Sonntag
Willie

Tolle Fehler beschreibung. Wie wärs mal mit der Unit oder bissel Code?? Kann keiner hellsehen hier. :shock:

markus5766h 20. Feb 2011 17:01

AW: Balloon Tooltip
 
. . . . hab' mich auch schon gefragt,
wie man da helfen kann / soll ? :gruebel:

worauf reagiert der Balloon-ToolTip, auf Messages ? - oder
wird er direkt angesprochen . . .
werden Variablen(Inhalte) übergeben ? . . .
usw.

Willie1 21. Feb 2011 08:56

AW: Balloon Tooltip
 
wie beschrieben funktioniert mein Balloon Tip in einem Programm ohne Tochterfenster. Fehlerbeschreibung: in einem Tochterfenster (statisch oder dynamisch) passiert einfach nichts!

W.

Delphi-Quellcode:
procedure ShowBalloonTip(hWnd: THandle; Icon: integer; Title, Text: string;
                         BackCL, TextCL: TColor; RightTop: Boolean=false);
var
  hWndTip: THandle;
  ti: TOOLINFO;
  fl: Integer;
  b: pWideChar;
  pTitle: PChar;
begin
  if RightTop then
    fl:=TTF_TRANSPARENT or TTF_SUBCLASS
  else
    fl:=TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
  GetMem(b,2*256);
  pTitle := PChar(Title);

  hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,
    WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,
    0, 0, 0, 0, hWnd, 0, HInstance, nil);
  if hWndTip <> 0 then
  begin
    SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,
      SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
    ti.cbSize := SizeOf(ti);
    ti.uFlags := fl;
    ti.hwnd := hWnd;
    ti.lpszText := StringToWideChar(Text, b, 2*356);
    Windows.GetClientRect(hWnd, ti.rect);
    SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);
    SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);
    SendMessage(hWndTip, TTM_ADDTOOL, 1, Integer(@ti));
    SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(pTitle));
  end;
  FreeMem(b);
end;

Bummi 21. Feb 2011 09:36

AW: Balloon Tooltip
 
Übergibst Du hier
Delphi-Quellcode:
ShowBalloonTip(hWnd: THandle
das richtige Fensterhandle?

Willie1 21. Feb 2011 11:45

AW: Balloon Tooltip
 
hier übergebe ich den Handle des Steuerelements (oder Form), über dem der Tooltip aufgehen soll. Ich wiederhole im Hauptfenster funktioniert alles. Ihr könnt es selbst ausprobieren.
W.

Bummi 21. Feb 2011 22:48

AW: Balloon Tooltip
 
ich habe es mit XE durchgespielt, mehrere Forms, tut eigentlich das was ich erwarten würde....

Willie1 22. Feb 2011 11:25

AW: Balloon Tooltip
 
Wenn ich meine Routine in OnActivate einbaue funktioniert alles bestens! Das Problem ist gelöst.
Ich habe die Unit noch etws erweitert, wenn jemand Interesse hat, melde dich.

MfG W.

EWeiss 22. Feb 2011 16:15

AW: Balloon Tooltip
 
Zitat:

Zitat von Willie1 (Beitrag 1083450)
Wenn ich meine Routine in OnActivate einbaue funktioniert alles bestens! Das Problem ist gelöst.
Ich habe die Unit noch etws erweitert, wenn jemand Interesse hat, melde dich.

MfG W.

Schön das es geht ;)
Ich möchte aber anmerken das der Balloon Tooltip nicht als Standard Tooltip mißbraucht werden soll.

gruss

Willie1 24. Feb 2011 08:57

AW: Balloon Tooltip
 
ich habe die Procedure in eine Function umgewandelt, die den Handle des Tooltips zurückliefert, um mit DestroaWindow() den Tooltip aus zu blenden. Was meinst du mit Standart-Tooltip? (Hint bei Delphi?)
Ich finde, dass Balloon-Tooltips sehr sparsam eingesetzt werdem sollten, weil sie leicht nerven können.
W.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.
Seite 1 von 3  1 23      

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