Anzeige - Instrumente

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
H.Brill
Beiträge: 496
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Anzeige - Instrumente

Beitrag 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
PB 6.10
Benutzeravatar
Bobo-Jack
Beiträge: 26
Registriert: 08.09.2010 11:59

Re: Anzeige - Instrumente

Beitrag 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)
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Anzeige - Instrumente

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten