Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Multimedia

k23:k23.3:k23.3.5:k23.3.5.2:start

23.3.5.2 Komponente Messinstrument

Von Nelson Hoover kommt die Komponente zur Darstellung eines analogen Messinstrumentes:

B1

Abbildung 23.3.5.2.1: Zwei Messinstrumente

Von ihm liegt auch die Freigabe vor, den Quelltext seiner Komponente im Gambas-Buch vorzustellen. Die Komponente verwendet für die Zeichnungen des Messinstrumentes und der farbigen Außenbereiche ausschließlich Methoden der Klasse Paint. Im Download-Bereich finden Sie den Original-Quelltext der Komponente sowie ein weiteres Projekt, dass diese Komponente verwendet → Abbildung 23.3.5.2.1 Zwei Messinstrumente.

Hier sehen Sie einen Quelltext-Ausschnitt der Komponente:

Public Sub myGauge_Draw() ' gauge refresh handler 
' first, check if we need to reinitialize the gauge 
  If $fullRedraw Or (($width <> gaugeDisp.ClientWidth) And ($height <> gaugeDisp.ClientHeight)) Then 
     InitializeGauge 
  Endif    
 ' Note: I'm not sure how much processing power it saves to skip drawing the background every time 
 ' but with trying to use this on the Raspberry Pi, every little bit helps    
 ' otherwise, just draw the needle over the previously drawn PictureBox 
   If $value > $sMax Then $value = $sMax 
   If $value < $sMin Then $value = $sMin 
   $needleAngle = ScaleConv($sMin, $sMax, $startAngleDeg, ($startAngleDeg + $needleRangeDeg), $value) 
   If $needleAngle > 360 Then 
      $needleAngle = $needleAngle - 360 
   Endif 
   If $needleAngle < 0 Then 
      $needleAngle = 360 + $needleAngle 
   Endif 
 
 ' now convert degrees to radians and get the X Y coords 
   $needleAngle = Rad($needleAngle) 
   $needlePosX = (Cos($needleAngle) * (($width / 2) - 24)) + $xMid 
   $needlePosY = (Sin($needleAngle) * (($height / 2) - 24)) + $yMid 
 
   Paint.Begin(gaugeDisp)    
     Paint.Brush = Paint.Color($needlecolor) 
     Paint.LineWidth = 3 
     Paint.MoveTo($xMid, $yMid) 
     Paint.LineTo($needlePosX, $needlePosY) 
     Paint.Stroke 
     Paint.Brush = Paint.Color(Color.Black) 
     Paint.Ellipse($xMid - 6, $yMid - 6, 12, 12,,, True) 
     Paint.Fill 
     Paint.Brush = Paint.Color(Color.White) 
     Paint.Ellipse($xMid - 2, $yMid - 2, 4, 4,,, True) 
     Paint.Fill       
   Paint.End 
 
End ' myGauge_Draw()

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k23/k23.3/k23.3.5/k23.3.5.2/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge