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

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

EPS

Betreff: [B+] ToolTips für alle Elemente (ausser Label)

BeitragSa, Nov 12, 2005 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi zusammen, hey meine erste UserLib Very Happy

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

Ironstorm

Erstklassiger Contest-Veranstalter

BeitragSo, Nov 13, 2005 1:04
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Nov 13, 2005 1:09
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Nov 17, 2005 11:23
Antworten mit Zitat
Benutzer-Profile anzeigen
imo kann man bank als Pointerersatz verwenden, jedenfalls machen das im englischen Forum einige Wink
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

D2006

Administrator

BeitragDo, Nov 17, 2005 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Im deutschen Forum machen das auch einige. Wink

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

BeitragDo, Nov 17, 2005 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Nov 25, 2005 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Nov 25, 2005 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Nov 28, 2005 15:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Mist. Hab 1.11. Gibt es irgendwo die Demo von 1.34?
www.xairro.com

Artemis

BeitragMo, Nov 28, 2005 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group