DLLs, die in anderen Sprachen geschrieben wurden, kann man in PB nutzen (bitte verbessern wenn nicht;)
Du kannst die DLL Funktionen mit OpenLibrary(...) CallFunction(...) aufrufen.
Aber wenn du so eine Anzeige in dein Programm einbinden möchtest, bist du glaub ich besser dran wenn dus direkt in PB machst.
Hier ein schnell zusammengewuschteltes Beispiel (Coole Effekte usw kann man danach problemlos einbauen):
Code: Alles auswählen
;/// Init
InitMouse()
InitSprite()
OpenScreen(800,600,32,"Instrumente")
;/// Instrument
MaxStufen = 500
Stufe = 1
IstZiehend.b = #False
InstrumentRadius=200
;/// Hauptschleife
Repeat
;/// Render
FlipBuffers()
ClearScreen($000000)
StartDrawing(ScreenOutput())
;/// Zeichne Umgebung
DrawingMode(#PB_2DDrawing_Outlined)
RoundBox((149-5), 550, 501+10, 20, 2, 2, $8E8E8E)
DrawingMode(#PB_2DDrawing_Default)
RoundBox(149+Stufe-5, 551, 10, 18, 2, 2, $595959)
Line(XMouse, YMouse, 5, 5, $FFFFFF) ;Maus
;/// Zeichne Instrument
DrawingMode(#PB_2DDrawing_Outlined)
Line(400, 260, Sin(Angle.f)*(InstrumentRadius-10), -Cos(Angle.f)*(InstrumentRadius-10), $FFFFFF)
Line(400, 260, 0, -InstrumentRadius-100, $FFFFFF)
Circle(400, 260, InstrumentRadius, $FFFFFF)
Circle(400, 260, InstrumentRadius+5, $FFFFFF)
DrawText(10, 10, "Stufe: "+Str(Stufe)+" / "+Str(MaxStufen), $FFFFFF)
DrawText(10, 70, "Bogenmaß: "+StrF(Angle.f), $FFFFFF)
DrawText(10, 50, "Winkel: "+StrF(Degree(Angle.f))+"°", $FFFFFF)
StopDrawing()
;/// Regler Updaten
If IstZiehend = #True
Stufe = XMouse-150
If Stufe < 1
Stufe = 1
ElseIf Stufe > MaxStufen
Stufe = MaxStufen
EndIf
EndIf
;/// Errechne Zeiger Winkel
Angle.f = Radian((Stufe-1)/((MaxStufen-1)/360))
;/// Examine Mouse
ExamineMouse()
XMouse = MouseX()
YMouse = MouseY()
If XMouse >= 149+Stufe-5 And XMouse <= 149+Stufe+5 And YMouse >= 550 And YMouse <= 570
IstZiehend = #True
EndIf
If IstZiehend = #True And Not MouseButton(#PB_MouseButton_Left)
IstZiehend = #False
EndIf
Until MouseButton(#PB_MouseButton_Right)