;================================================
;Scripted by xp_fan
;================================================
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $hGUI, $hWnd, $hGraphic, $aPoints1[7][2], $aPoints2[7][2], $aPoints3[7][2], $aPoints4[7][2], $aPoints5[7][2], $aPoints6[7][2], $aPoints7[7][2], $Radio[10]

$hGUI = GUICreate("GDI+ 7Segment-Anzeige", 230, 190)
$hWnd = WinGetHandle("GDI+ 7Segment-Anzeige")
GUISetState()
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
$hPen1 = _GDIPlus_PenCreate(0xFFCFCFCF)
$hPen2 = _GDIPlus_BrushCreateSolid(0xFFFF0000)
$hPen3 = _GDIPlus_BrushCreateSolid(0xFFCFCFCF)
;Segment erstellen
_horizontal(20, 20)
_horizontal(20, 83)
_horizontal(20, 147)
_vertikal(17, 20)
_vertikal(17, 86)
_vertikal(82, 20)
_vertikal(82, 83)
;Ende Segment
For $i = 1 To 5
	$Radio[$i] = GUICtrlCreateRadio($i, 130, 20 * $i)
Next
$Radio[6] = GUICtrlCreateRadio("6", 160, 20)
$Radio[7] = GUICtrlCreateRadio("7", 160, 40)
$Radio[8] = GUICtrlCreateRadio("8", 160, 60)
$Radio[9] = GUICtrlCreateRadio("9", 160, 80)
$Radio[0] = GUICtrlCreateRadio("0", 160, 100)


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			_GDIPlus_PenDispose($hPen1)
			_GDIPlus_PenDispose($hPen2)
			_GDIPlus_GraphicsDispose($hGraphic)
			_GDIPlus_Shutdown()
			Exit
		Case $Radio[0]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(17, 20, 0xFFFF0000)
			_vertikal(17, 86, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[1]
			_Black1()
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[2]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 83, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(17, 86, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
		Case $Radio[3]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 83, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[4]
			_Black1()
			_horizontal(20, 83, 0xFFFF0000)
			_vertikal(17, 20, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[5]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 83, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(17, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[6]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 83, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(17, 20, 0xFFFF0000)
			_vertikal(17, 86, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[7]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[8]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 83, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(17, 20, 0xFFFF0000)
			_vertikal(17, 86, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
		Case $Radio[9]
			_Black1()
			_horizontal(20, 20, 0xFFFF0000)
			_horizontal(20, 83, 0xFFFF0000)
			_horizontal(20, 147, 0xFFFF0000)
			_vertikal(17, 20, 0xFFFF0000)
			_vertikal(82, 20, 0xFFFF0000)
			_vertikal(82, 83, 0xFFFF0000)
	EndSwitch
WEnd


Func _Black1()
	         _horizontal(20, 20, 0xFFCFCFCF)
			_horizontal(20, 83, 0xFFCFCFCF)
			_horizontal(20, 147, 0xFFCFCFCF)
			_vertikal(17, 20, 0xFFCFCFCF)
			_vertikal(17, 86, 0xFFCFCFCF)
			_vertikal(82, 20, 0xFFCFCFCF)
			_vertikal(82, 83, 0xFFCFCFCF)
EndFunc   ;==>_Black

Func _horizontal($x, $y, $c = 0xFFCFCFCF, $r = 0xFFCFCFCF)
	$Posx1 = $x
	$Posy1 = $y
	$aPoints1[0][0] = 6

	$aPoints1[1][0] = $Posx1;10
	$aPoints1[1][1] = $Posy1;200

	$aPoints1[2][0] = $Posx1 + 10;20
	$aPoints1[2][1] = $Posy1 - 5;195

	$aPoints1[6][0] = $Posx1 + 10;20
	$aPoints1[6][1] = $Posy1 + 5;205

	$aPoints1[3][0] = $Posx1 + 50;60
	$aPoints1[3][1] = $Posy1 - 5;195

	$aPoints1[5][0] = $Posx1 + 50;60
	$aPoints1[5][1] = $Posy1 + 5;205

	$aPoints1[4][0] = $Posx1 + 60;70
	$aPoints1[4][1] = $Posy1;200

	$hPen1 = _GDIPlus_PenCreate($r)
	$hPen3 = _GDIPlus_BrushCreateSolid($c)
	_GDIPlus_GraphicsDrawPolygon($hGraphic, $aPoints1, $hPen1)
	_GDIPlus_GraphicsFillPolygon($hGraphic, $aPoints1, $hPen3)
EndFunc   ;==>_horizontal

Func _vertikal($x, $y, $c = 0xFFCFCFCF, $r = 0xFFCFCFCF)
	$Posx4 = $x
	$Posy4 = $y
	$aPoints4[0][0] = 6

	$aPoints4[1][0] = $Posx4
	$aPoints4[1][1] = $Posy4

	$aPoints4[2][0] = $Posx4 + 5;25
	$aPoints4[2][1] = $Posy4 + 10;30

	$aPoints4[3][0] = $Posx4 + 5;25
	$aPoints4[3][1] = $Posy4 + 50;80

	$aPoints4[4][0] = $Posx4 ;20
	$aPoints4[4][1] = $Posy4 + 60;90

	$aPoints4[5][0] = $Posx4 - 5;15
	$aPoints4[5][1] = $Posy4 + 50;80

	$aPoints4[6][0] = $Posx4 - 5;15
	$aPoints4[6][1] = $Posy4 + 10;30

	$hPen1 = _GDIPlus_PenCreate($r)
	$hPen3 = _GDIPlus_BrushCreateSolid($c)
	_GDIPlus_GraphicsDrawPolygon($hGraphic, $aPoints4, $hPen1)
	_GDIPlus_GraphicsFillPolygon($hGraphic, $aPoints4, $hPen3)
EndFunc   ;==>_vertikal
