![]() |
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 |
AW: Balloon Tooltip
Zitat:
|
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. |
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; |
AW: Balloon Tooltip
Übergibst Du hier
Delphi-Quellcode:
das richtige Fensterhandle?
ShowBalloonTip(hWnd: THandle
|
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. |
AW: Balloon Tooltip
ich habe es mit XE durchgespielt, mehrere Forms, tut eigentlich das was ich erwarten würde....
|
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. |
AW: Balloon Tooltip
Zitat:
Ich möchte aber anmerken das der Balloon Tooltip nicht als Standard Tooltip mißbraucht werden soll. gruss |
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. |
AW: Balloon Tooltip
Hallo Leute,
als Hobby-Programierer bin ich erst vor kurzem auf Delphi XE umgestiegen. Ich weiß, dass wg. pWideChar einiges an zu passen ist. Mit den Balloon-Tooltips habe ich ein Problem, welches ich nicht zu lösen vermag. Den Quelltext habe ich hier weiter oben veröffentlicht. Er funktioniert auch mit Delphi XE, der Tooltip wird mit Text und Ikone angezeigt, aber vom Titel (title) wird nur das erste Zeichen angezeigt. Hängt sicher mit WideChar zusammen, kennt eine/r die Lösung... ich hoffe ihr feiert nicht alle Karneval! Willie |
AW: Balloon Tooltip
ich habe über Balloon-Tooltips herum gesucht, aber nichts gefunden, was weiter hilft.
Bitte meldet euch! Willie |
AW: Balloon Tooltip
![]() hier ist der Link zum MSDN, damit müsste doch einer von euch was anfangen können. Ich kann kein C. Wi. |
AW: Balloon Tooltip
Ich habe die Lösung gefunden.
Delphi-Quellcode:
Willie.
Const
TTM_SETTTTLEW = (WM_USER + 33); // Neu function ShowBalloonTipHandle(hWnd: THandle; Icon: integer; Title, Text: string; BackCL, TextCL: TColor; RightTop: Boolean=false): THandle; var ti: TOOLINFO; fl: Integer; b: pWideChar; pTitle: PWideChar; 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 := PWideChar(Title); Result := CreateWindow(TOOLTIPS_CLASS, nil, WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP, 0, 0, 0, 0, hWnd, 0, HInstance, nil); if Result <> 0 then begin SetWindowPos(Result, 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(Result, TTM_SETTIPBKCOLOR, BackCL, 0); SendMessage(Result, TTM_SETTIPTEXTCOLOR, TextCL, 0); SendMessage(Result, TTM_ADDTOOL, 1, Integer(@ti)); SendMessage(Result, TTM_SETTITLEW, Icon mod 4, Integer(pTitle)); //<-- Ändern end; FreeMem(b) end; |
AW: Balloon Tooltip
Könntest Du das Pushen bitte in Zukunft unterlassen? Das ist nämlich sehr unfair gegenüber den Anderen, die ein Problem haben und sich an die Forenregeln halten.
|
AW: Balloon Tooltip
Zitat:
Obwohl ich eigentlich hier nie mehr davon sprechen wollte, ich kann schlecht sehen und kann lange Texte(zB Forumregeln) nur mit Anstrengung lesen. So kann ich deinen Vorwurf nicht verstehen. Eine Antwort von dir würde ich schon erwarten. Danke DeddyH. W. |
AW: Balloon Tooltip
Hallo...
DeddyH meinte mit Pushen immer einen neuen Beitrag zu erzeugen. Es kann ja vorkommen, daß man nachdem man eine Frage gestellt hat Neuigkeiten mitteilen möchte. Dazu steht dir die Funktion Beitrag bearbeiten zur Verfügung. Das Pushen (neuer Beitrag auf den eigenen) ist erst nach 24 Std. erlaubt. PS: das ist aber Usus in allen Foren... nicht nur hier :zwinker: :hi: |
AW: Balloon Tooltip
Ok, ich war zu ungeduldig! Wird nicht mehr vorkommen.
Ich denke aber, dass meine Lösung (Balloon Tooltip) durchaus von allgemeinem Interesse sein könnte. W. |
AW: Balloon Tooltip
Ja gut... du kannst aber an deinen Beitrag über das Bearbeiten 100 Mal Informationen anhängen. Dadurch bleibt der ganze Thread auch übersichtlicher... 8-)
|
AW: Balloon Tooltip
Hallo
also gelesen habe ich das nun alles und probiert auch aber wie binde ich die Prozedur. Ein ich habe noch nie so was eingebunden. Da muss ich was aus dem System einbinden... Kann mir da jemand einen tip geben . Ich würde den Tooltip gerne verwenden ... Danke für einen Tip Joachim |
AW: Balloon Tooltip
Also im Delphi XE gibt's bereits die TBallonHint-Komponente, falls ich das richtig verstanden habe, was du haben willst.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 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