[B+] ToolTips für alle Elemente (ausser Label)
Übersicht

![]() |
EPSBetreff: [B+] ToolTips für alle Elemente (ausser Label) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi zusammen, hey meine erste UserLib ![]() Worum gehts. Ich hab nächtelang versucht eine Möglichkeit zu finden um ToolTips für alle Elemente direkt von B+ aus zugänglich zu machen. Leider hab ich es nicht hinbekommen. Also hab ich jetzt eine DLL gemacht. So funktioniert es komischerweise. Was kann alles gemacht werden: - ToolTip erstellen (als Square oder Balloon, inklusive Farbe, max. Breite usw. Text wird umgebrochen) - Text ändern - ToolTip erzwungen an bestimmter Position anzeigen - diesen wieder vom Bildschirm entfernen - ToolTip löschen Ach ja, noch ein Hinweis, bei Labels geht es komischerweise nicht, warum hab ich nicht heraus bekommen. Alle anderen Elemente hab ich getestet - bei denen gehts. Lange Rede kurzer Sinn, zunächst einmal der Link zur DLL: Download ToolTips Nun die .decls Datei welche in das UserLibs Verzeichnis eurer B+ Installation gehört: Code: [AUSKLAPPEN] ; Author: East-Power-Soft
; Date: 2005-11-13 19:03:00 ; Title: tooltip.dll decls ; Description: Functions to create ToolTips .lib "tooltip.dll" TTAdd%(hWnd%, hGad%, Text$, MaxWidth%, Style%, col1%, col2%): "TTAdd" TTRemove%(hTip%) : "TTRemove" TTChange%(hTip%, Text$) : "TTChange" TTShow%(hTip%,x%,y%) : "TTShow" TTHide%(hTip%) : "TTHide" und zu guter letzt noch ein Beispiel: Code: [AUSKLAPPEN] ;==================================================================================================
; ToolTip.DLL for Blitz+ ; ; by East-Power-Soft (http://www.East-Power-Soft.de) ; ; This Lib is for using Tooltips with Blitz+. It doesn't work with Labels, sorry, i could find no ; reason for this. All other Elements should be work. (testet on: Button, Canvas, Slider, Panel, ; TreeView, ListBox, TextArea, TextField and Window) ;================================================================================================== Global win = CreateWindow("test",300,200,300,250,Desktop()) Global but1 = CreateButton("Change ToolTipText",10,70,120,25,win) Global but2 = CreateButton("ToolTip ON",140,70,100,25,win) Global lab1 = CreateLabel("Go with the Mouse Over the Button and wait until you see the ToolTip.",10,10,180,30,win) Global cnv1 = CreateCanvas(10,130,50,50,win) ;================================================================================================== ; Syntax: hTip = TTAdd (hWnd, hGad, Text$, MaxWidth, Style, TextColor, BackColor) ; ; hWnd = Window Handle as QueryObject(WinVar,1) ; hGad = Gadget Handle as QueryObject(GadVar,1) ; Text$ = The ToolTip Text ; MaxWidth = Maximum width of the Tooltip. Text will be wrapped automatic ; Style = 0 = Square ToolTip; 1 = Balloon ToolTip ; TextColor = 0 = use Windows Color ; BackColor = 0 = use Windows Color ;================================================================================================== Tip1 = TTAdd(QueryObject(win,1),QueryObject(but1,1),"Here is a normal ToolTip",100,0,$FFFFFF,$808080) Tip2 = TTAdd(QueryObject(win,1),QueryObject(cnv1,1),"Works also over Canvas Objects",100,1,0,0) Repeat event = WaitEvent() If event Then Select event Case $803: Exit Case $401 Select EventSource() Case but1 TTChange(Tip1,"you changed the text") Case but2 If Not(ON) Then Tip3 = TTAdd(QueryObject(win,1),QueryObject(but2,1),"Another ToolTip",100,0,0,0) TTShow(Tip3,MouseX()+5,MouseY()+5) SetGadgetText but2,"ToolTip ON" ON = True Else TTRemove(Tip3) SetGadgetText but2,"ToolTip OFF" ON = False End If End Select End Select End If Forever TTRemove(Tip1) TTRemove(Tip2) TTRemove(Tip3) ;================================================================================================== ; More Functions: ; ; TTRemove(hTip) -> ToolTip will be deleted ; TTChange(hTip, Text$) -> Changes the Text in the ToolTip ; TTShow(hTip,x,y) -> Shows the ToolTip immediately on the Pos x,y and this 'alwaysontop' ; TTHide(hTip) -> Hides a Tooltip ;================================================================================================== Ich hoffe ihr könnt damit was anfangen. Bugreport bitte per E-Mail, PN oder ICQ. Edit: kleiner "Bug", die Farben wurden als BGR ausgewertet. Jetzt können die Farben BlitzBasic konform als RGB Farben angegeben werden. Ich danke für die Aufmerksamkeit. |
||
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
- Zuletzt bearbeitet von EPS am Di, Apr 07, 2009 16:15, insgesamt 4-mal bearbeitet
![]() |
IronstormErstklassiger Contest-Veranstalter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, net schlecht.
Für deine erste Userlib ist des gut. Hast du die DLL ganz alleine gemacht? In C++ oder? |
||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
![]() |
EPS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die DLL hab ich allein gemacht, in PureBasic.
Das ganze ist direkt in B+ dewegen nicht machbar weil man u.a. einen Pointer an eine WinAPI Funktion übergeben muß und bekanntermaßen gibt's keine Pointer in BB. |
||
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
![]() |
Hip Teen |
![]() Antworten mit Zitat ![]() |
---|---|---|
imo kann man bank als Pointerersatz verwenden, jedenfalls machen das im englischen Forum einige ![]() |
||
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger" |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im deutschen Forum machen das auch einige. ![]() Allerdings geht das nicht immer. Sobald man zB ne Callback Funktion braucht wirds Essig. Weiß ja nicht wozu EPS hier Pointer braucht(e). MfG D2006 |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
EPS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß nicht ob es sich Callback nennt, jedoch ist mir die Methode mit den Banks bekannt, ich benutze sie u.a. bei einer anderen DLL um Variablen aus der DLL zurück zu geben.
In diesem Fall jedoch geht es einfach nicht. Leider ist das nicht vorhandensein von Pointern eine Schwäche von BB. In PureBasic (oder Delphi etc.) ist das erstellen der Tooltips ein knapper 10 Zeiler. Daher auch die DLL - die Hauptsache ist doch das es geht und das so einfach wie möglich. |
||
mGUI - Graphical User Interface für Blitz3D...Informationen gibt es hier
Man kann sich öfter als zweimal im Leben halb tot lachen. |
![]() |
BlitzChecker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bei mir findet BP den Befehl QueryObjects nicht. Woran liegt das und gibt es dafür einen Ersatz? Ich bräuchte nämlich die Tooltips. | ||
www.xairro.com |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es sieht so aus, als wenn du nur die Demo hast, oder zumindestens nicht die neueste Version. Es geht nämlich ab v1.34. | ||
![]() |
BlitzChecker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mist. Hab 1.11. Gibt es irgendwo die Demo von 1.34? | ||
www.xairro.com |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group