TipTags für BlitzPlus

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Kekskiller

Betreff: TipTags für BlitzPlus

BeitragMo, Jun 14, 2004 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hatte mal so eine Idee und wollte sie umsetzen.
Ihr kennt doch diese tollen, kleinen InfoTags, die Beispielsweise
in Paint über den Buttons oder bei einer Toolbar in BlitzPlus mit
einer Beschreibung des Buttons/Objektes auf sich warten.
Sowas wollte ich mal für Pixelator umsetzen, dies ist da herausgekommen:
BlitzBasic: [AUSKLAPPEN]
;Beispielvariablen
Global window=CreateWindow("Test",5,5,265,284,0,01)
Global panel=CreatePanel(4,5,50,50,window,03):SetPanelColor panel,55,155,255
Global tagcan,event,source,dat,arial

fonttestcan=CreateCanvas(0,0,0,0,window)
arial=LoadFont("Comic Sans MS",17,0,0)
FreeGadget fonttestcan

Repeat
event=WaitEvent()
source=EventSource()
dat=EventData()
Select event
Case $803:End
Case $201
Select dat
Case 2
Select source
Case panel
If tagcan=0 Then
CreateTipTag("Dies ist ein Farbenpanel",(MouseX()-GadgetX(window))-5,(MouseY()-GadgetY(window))-25,255,255,225,arial,5,window)
EndIf
Default
If tagcan<>0 Then
FreeGadget tagcan:tagcan=0
EndIf
End Select
Case 1
If tagcan<>0 Then
FreeGadget tagcan:tagcan=0
EndIf
End Select
End Select
Forever
End

Function CreateTipTag(tagmsg$,x,y,red,green,blue,font,wait,tagparent)
tagcan=CreateCanvas(x,y,0,0,tagparent)
SetBuffer CanvasBuffer(tagcan)
SetFont font
width=StringWidth(tagmsg$)+7:height=FontHeight()+6
FreeGadget tagcan
tagcan=CreateCanvas(x,y,width,height,tagparent)
SetGadgetShape tagcan,x,y,0,0
SetBuffer CanvasBuffer(tagcan)
Color red,green,blue
Rect 0,0,width,height,1
Color 0,0,0
Rect 0,0,width,height,0
FlipCanvas tagcan
For z=10 To 1 Step -1
WaitEvent(wait):SetGadgetShape tagcan,x,y,width/z,height/z
Next
SetFont font
Color 0,0,0
Text 3,3,tagmsg$
FlipCanvas tagcan
ActivateGadget tagcan
End Function


Damit kann man ein kleines, einzeiliges Infokästchen erscheinen lassen.
Alles mögliche ist da einstellbar, sogar Farbe und Font, sowie Geschwindigkeit.
Das einzige Problem ist, dass dertolle Canvas jetzt plötzlich unter allen
anderen Objekten erscheint Sad . Daher muss ich da noch eine Lösung
finden...
 

OJay

BeitragMo, Jun 14, 2004 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
das ganze nennt sich "ToolTip" und ist im blitz+ umfang schon enthalten du scherzkeks...lesen der onlinehilfe bildet Wink
 

Kekskiller

BeitragMo, Jun 14, 2004 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, soweit ich weiß, gibt es sowas nur der Toolbar.
Ist eher auch Panels und so zugeschnitten.

Zitat:
ist im blitz+ umfang schon enthalten du scherzkeks


Nicht persöhnlich werden.
 

ChristianH

BeitragFr, Okt 08, 2004 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ganze geht auch mit der WinApi:

Code: [AUSKLAPPEN]
hToolTip = CreateWindowEx(WS_EX_TOOLWINDOW,
                      '#32768', 'Formname',
                      WS_POPUPWINDOW,
                      20, 20, 50, 50,FindWindow("Blitz Runtime Class", "MainWindowname") , 0, HInstance, 0)
 
ShowWindow(hTooltip, SW_SHOW)


Ich geb keine Garantie das der Code funktioniert, habe ich nicht getestet. Wink Hab jetzt nicht rausbekommen welchen Wert die Variable WS_POPUPWINDOW z.b. hat. Am besten Xenons Winapi Tutorial dazu lesen.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group