Seite 1 von 1

Anzeige - Instrumente

Verfasst: 10.10.2010 08:40
von H.Brill
Hallo,
Hab da eine Seite gefunden mit div. DLLs.
Ist gedacht für .NET, Delphi und VC++.
Kann man sowas auch für PB nutzen ?
Bin leider kein Experte in oben genannten
Sprachen.

http://www.mitov.com/html/instrumentla ... hots.html

Re: Anzeige - Instrumente

Verfasst: 10.10.2010 20:44
von Bobo-Jack
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)

Re: Anzeige - Instrumente

Verfasst: 10.10.2010 21:23
von ts-soft
Bobo-Jack hat geschrieben:DLLs, die in anderen Sprachen geschrieben wurden, kann man in PB nutzen (bitte verbessern wenn nicht;)
Prinzipiell schon richtig, aber hierbei handelt es sich um ActiveX o. ä., die kann man nicht so einfach
nutzen. COMate von srod wäre eine Möglichkeit oder nativ mit viel "nicht so einfacher" API.

Gruß
Thomas