Kurzer BalloonTip

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Kurzer BalloonTip

Beitrag von gerdra »

Hallo,
habe für mein PureLOG Logbuchprogramm für jeden Button und jedes Eingabefeld einen Balloon Tip programmiert, damit, wenn ein User mit der Maus auf z.B. einen Button oder ein Feld kommt, ein Balloon mit einer kurzen Erklärung angezeigt wird.
Das funktioniert auch. Was mich aber stört ist, dass dieser Balloon Tip nur kurze zeit angezeigt wird, wenn man mit dem Mauszeiger darauf bleibt und dann nie wieder. Erst wenn man das Programm beendet und wieder startet, funktioniert der Balloon Tip wieder. Wie kann man es erreichen, dass so ein BalloonTip IMMER angezeigt wird, egal wielange man darauf verweilt?

Hier meine Balloon Tip Procedure, wie ich sie mal irgendwoher rauskopiert habe. Ich habe für dieses Programm noch die Version 3.82 verwendet.

Code: Alles auswählen

Procedure BalloonTip(WindowID, Gadget, Text$ , Title$, Icon)
  
  ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowID),0,GetModuleHandle_(0),0)
  SendMessage_(ToolTip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),1)
  SendMessage_(ToolTip,#TTM_SETTIPBKCOLOR,GetSysColor_(#COLOR_INFOBK),0)
  SendMessage_(ToolTip,#TTM_SETMAXTIPWIDTH,0,300)
  Balloon.TOOLINFO\cbSize=SizeOf(TOOLINFO)
  Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
  Balloon\hWnd=GadgetID(Gadget)
  Balloon\uId=GadgetID(Gadget)
  Balloon\lpszText=@Text$
  SendMessage_(ToolTip, #TTM_ADDTOOL, 0, Balloon)
  If Title$ > ""
    SendMessage_(ToolTip, #TTM_SETTITLE, Icon, @Title$)
  EndIf
  
EndProcedure
code-tags ergänzt - nächstmal bitte selbst dran denken - Kaeru fecit
Mehr wissen heißt auch mehr fragen
Tschüß
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von RSBasic »

@gerdra
Bitte Code-Tags benutzen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Er wird immer angezeigt. Ich habs getestet und solange die Maus auf einem Gadget ist und ich die Maus nicht bewege bleibt der BallonTip sichtbar. Diese Funktionsweise ist absolut nachvollziehbar. Alles andere wäre nervend.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Beitrag von Sicro »

Fluid Byte hat geschrieben:Er wird immer angezeigt. Ich habs getestet und solange die Maus auf einem Gadget ist und ich die Maus nicht bewege bleibt der BallonTip sichtbar.
Lass mal die Maus solange auf dem Gadget bis der BalloonTip verschwindet. Versuche danach das BalloonTip nochmal anzeigen zu lassen. Du wirst sehen, es erscheint nicht mehr.

Mfg Sicro
Zuletzt geändert von Sicro am 02.09.2007 20:00, insgesamt 3-mal geändert.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

noe , passt schon , mal davon abgesehen das man ein Tool-Fenster fuer alle Ballons pro Fenster nutzt.

Code: Alles auswählen


	Procedure BalloonTip2(WindowID, Gadget, Text$ , Title$, Icon)
		Static init
		Static tooltip
		Protected  style = #WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON
		
		If init = 0
			init = 1
			ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",style,0,0,0,0,WindowID(WindowID),0,0,0)				
		EndIf 
[...]
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

edel hat geschrieben:noe , passt schon , mal davon abgesehen das man ein Tool-Fenster fuer alle Ballons pro Fenster nutzt.

Code: Alles auswählen


	Procedure BalloonTip2(WindowID, Gadget, Text$ , Title$, Icon)
		Static init
		Static tooltip
		Protected  style = #WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON
		
		If init = 0
			init = 1
			ToolTip=CreateWindowEx_(0,"ToolTips_Class32","",style,0,0,0,0,WindowID(WindowID),0,0,0)				
		EndIf 
[...]


Ja, das ist es ja. Es verschwindet nach einer Weile und wenn man dann erneut aufs Gadget geht, erscheint der Balloon Tip nicht wieder. Ist das so gewollt ???
Mehr wissen heißt auch mehr fragen
Tschüß
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

Fluid Byte hat geschrieben:Er wird immer angezeigt. Ich habs getestet und solange die Maus auf einem Gadget ist und ich die Maus nicht bewege bleibt der BallonTip sichtbar. Diese Funktionsweise ist absolut nachvollziehbar. Alles andere wäre nervend.
Komisch, bei meinem Programm ist das nicht der Fall
Zuletzt geändert von gerdra am 02.09.2007 20:40, insgesamt 1-mal geändert.
Mehr wissen heißt auch mehr fragen
Tschüß
Benutzeravatar
gerdra
Beiträge: 18
Registriert: 30.12.2006 02:00
Wohnort: Zedtwitz
Kontaktdaten:

Beitrag von gerdra »

RSBasic hat geschrieben:@gerdra
Bitte Code-Tags benutzen.
Hallo was meinst Du mit Code Tags ?
Ich habe dieses Programm noch vor einigen Jahren in der Version 3.82 programmiert
Mehr wissen heißt auch mehr fragen
Tschüß
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Beitrag von Sicro »

Hallo gerdra,

für dieses Verhalten sind scheinbar die XP-Themes verantwortlich.
srod hat geschrieben:It's an xp themes thing. Try turning off the themes in the compiler options and you shouldn't get this behaviour.
In folgendem Thread des englischen Forums - woher auch das Zitat stammt - wird eine Lösung gezeigt, die auch mit aktivierten XP-Themes korrekt funktioniert:
http://www.purebasic.fr/english/viewtop ... ttsballoon

Selbst die PB-Funktion GadgetToolTip() und einige Windows-Komponenten (z.B. TrayClock, Start-Button) haben die "Macke".

Mfg Sicro
Zuletzt geändert von Sicro am 02.09.2007 20:45, insgesamt 2-mal geändert.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Hallo, was meinst Du mit Code Tags ?

diese dinger: [code] [/code]

habs oben ergänzt.
es erhöht ganz einfach die lesbarkeit. code im fließtext tut in den augen weh...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten