vielleicht kann mir jemand helfen?
Ich schreibe gerade an einem Programm, dass mir die Widertandswerte ausgibt.
Mein problem ist, das mit dem HidGadget die Gadgets verschwinden wenn Sie sollen.
Und dann, wenn man die Gadgets wieder aktiv macht erscheinen diese nicht mehr.
Ausser wenn man die Gadgets mit der Maus anklickt.
Wo mach ich einen Fehler?
Oder ist mein Programm falsch aufgebaut?
Für Hilfe währe ich Dankbar.
Gruß Wolfgang
Code: Alles auswählen
; ****************************************************
; * Widerstand-Farbcode *
; * von *
; * Wolfgang Drescher *
; * Version 1.0 vom 01.03.2009 *
; ****************************************************
;
schwarz = RGB(10,10,10)
braun = RGB(128,60,0)
rot = RGB(255,0,0)
orange = RGB(255,130,0)
gelb = RGB(255,255,0)
gruen = RGB(0,128,0)
blau = RGB(0,0,255)
violet = RGB(160,18,95)
grau = RGB(128,128,128)
weiss = RGB(255,255,255)
silber = RGB(192,192,192)
gold = RGB(128,128,0)
hg = RGB(50,220,200) ; Widerstands Grundfarbe
r1 = braun ; Startausgabe für 100 Ohm ausgeben
r2 = schwarz
r3 = braun
r4 = hg
r5 = gold
start = 1
LoadFont(0, "Arial", 100)
wertr1$="1"
wertr2$="0"
multi$="000"
kohm.f=0
mohm.f=0
tol$="+/- 5%"
If OpenWindow(0, 100, 200, 400, 350, "Widerstands-Farbcode", #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
; StartDrawing(ImageOutput(0))
;DrawingMode(0)
; BackColor(RGB(0,0,0)) ; Change the text back and front colour
; FrontColor(RGB(0,100,255))
;DrawingMode(0)
If CreateGadgetList(WindowID(0))
If LoadImage(10, "schwarz.bmp")
If LoadImage(11, "braun.bmp")
If LoadImage(12, "rot.bmp")
If LoadImage(13, "orange.bmp")
If LoadImage(14, "gelb.bmp")
If LoadImage(15, "gruen.bmp")
If LoadImage(16, "blau.bmp")
If LoadImage(17, "violet.bmp")
If LoadImage(18, "grau.bmp")
If LoadImage(19, "weiss.bmp")
If LoadImage(20, "silber.bmp")
If LoadImage(21, "gold.bmp")
If LoadImage(22, "farblos.bmp")
;
If CreateImage(0, 400, 350)
OptionGadget(1, 130, 20, 60, 20, "4-Ringe") : vierringe = 1
OptionGadget(2, 230, 20, 60, 20, "5-Ringe") : fuenfringe = 0
SetGadgetState(1, 1) ; erste Option als aktiv
;Erster Ring
;ButtonImageGadget(100, 40, 130, 50, 10, ImageID(10))
ButtonImageGadget(101, 50, 150, 50, 10, ImageID(11))
ButtonImageGadget(102, 50, 160, 50, 10, ImageID(12))
ButtonImageGadget(103, 50, 170, 50, 10, ImageID(13))
ButtonImageGadget(104, 50, 180, 50, 10, ImageID(14))
ButtonImageGadget(105, 50, 190, 50, 10, ImageID(15))
ButtonImageGadget(106, 50, 200, 50, 10, ImageID(16))
ButtonImageGadget(107, 50, 210, 50, 10, ImageID(17))
ButtonImageGadget(108, 50, 220, 50, 10, ImageID(18))
ButtonImageGadget(109, 50, 230, 50, 10, ImageID(19))
;Zweiter Ring
ButtonImageGadget(200, 110, 140, 50, 10, ImageID(10))
ButtonImageGadget(201, 110, 150, 50, 10, ImageID(11))
ButtonImageGadget(202, 110, 160, 50, 10, ImageID(12))
ButtonImageGadget(203, 110, 170, 50, 10, ImageID(13))
ButtonImageGadget(204, 110, 180, 50, 10, ImageID(14))
ButtonImageGadget(205, 110, 190, 50, 10, ImageID(15))
ButtonImageGadget(206, 110, 200, 50, 10, ImageID(16))
ButtonImageGadget(207, 110, 210, 50, 10, ImageID(17))
ButtonImageGadget(208, 110, 220, 50, 10, ImageID(18))
ButtonImageGadget(209, 110, 230, 50, 10, ImageID(19))
;Driter Ring
ButtonImageGadget(300, 170, 140, 50, 10, ImageID(10))
ButtonImageGadget(301, 170, 150, 50, 10, ImageID(11))
ButtonImageGadget(302, 170, 160, 50, 10, ImageID(12))
ButtonImageGadget(303, 170, 170, 50, 10, ImageID(13))
ButtonImageGadget(304, 170, 180, 50, 10, ImageID(14))
ButtonImageGadget(305, 170, 190, 50, 10, ImageID(15))
ButtonImageGadget(306, 170, 200, 50, 10, ImageID(16))
ButtonImageGadget(307, 170, 210, 50, 10, ImageID(17))
ButtonImageGadget(308, 170, 220, 50, 10, ImageID(18))
ButtonImageGadget(309, 170, 230, 50, 10, ImageID(19))
ButtonImageGadget(310, 170, 240, 50, 10, ImageID(20))
ButtonImageGadget(311, 170, 250, 50, 10, ImageID(21))
;vierter Ring
ButtonImageGadget(400, 230, 140, 50, 10, ImageID(10), #PB_Image_Border)
ButtonImageGadget(401, 230, 150, 50, 10, ImageID(11), #PB_Image_Border)
ButtonImageGadget(402, 230, 160, 50, 10, ImageID(12))
ButtonImageGadget(403, 230, 170, 50, 10, ImageID(13))
ButtonImageGadget(404, 230, 180, 50, 10, ImageID(14))
ButtonImageGadget(405, 230, 190, 50, 10, ImageID(15))
ButtonImageGadget(406, 230, 200, 50, 10, ImageID(16))
ButtonImageGadget(407, 230, 210, 50, 10, ImageID(17))
ButtonImageGadget(408, 230, 220, 50, 10, ImageID(18))
ButtonImageGadget(409, 230, 230, 50, 10, ImageID(19))
ButtonImageGadget(410, 230, 240, 50, 10, ImageID(20))
ButtonImageGadget(411, 230, 250, 50, 10, ImageID(21))
;fünfter Ring
;ButtonImageGadget(500, 320, 130, 50, 10, ImageID(10))
ButtonImageGadget(501, 320, 150, 50, 10, ImageID(11))
ButtonImageGadget(502, 320, 160, 50, 10, ImageID(12))
;ButtonImageGadget(503, 320, 170, 50, 10, ImageID(13))
;ButtonImageGadget(504, 320, 180, 50, 10, ImageID(14))
ButtonImageGadget(505, 320, 190, 50, 10, ImageID(15))
ButtonImageGadget(506, 320, 200, 50, 10, ImageID(16))
ButtonImageGadget(507, 320, 210, 50, 10, ImageID(17))
ButtonImageGadget(508, 320, 220, 50, 10, ImageID(18))
;ButtonImageGadget(509, 320, 230, 50, 10, ImageID(19))
ButtonImageGadget(510, 320, 240, 50, 10, ImageID(20))
ButtonImageGadget(511, 320, 250, 50, 10, ImageID(21))
ButtonImageGadget(512, 320, 260, 50, 10, ImageID(22))
;Box(150,20,20,20, RGB(0,255,0)) ; grün
;Box(150,40,20,20, RGB(255,0,0)) ;rot
;Box(150,60,20,20, RGB(0,0,255)) ; blau
;Box(150,80,20,20, RGB(255,255,0)) ; gelb
;Box(150,100,20,20, RGB(255,255,255)) ;weis
;Box(150,120,20,20, RGB(150,0,150)) ;violet
;Box(150,140,20,20, RGB(10,10,10)) ; schwarz
;Box(150,160,20,20, RGB(150,150,160)) ; grau
;Box(150,180,20,20, RGB(255,120,0)) ; orange
;Box(150,200,20,20, RGB(190,190,190)) ;silber
;Box(150,220,20,20, RGB(228,172,27)) ; gold
;Box(150,240,20,20, RGB(225,125,15)) ; braun
; Widerstand ausgeben
StartDrawing(ImageOutput(0))
;StartDrawing(WindowOutput(0))
;DrawingMode(0)
BackColor(RGB(0,0,0))
FrontColor(RGB(0,200,255))
DrawingMode(0)
Box(29, 84, 347, 4 ,RGB(255,255,255))
Box(29,86,347,2,RGB(120,120,120))
Box(99,59,217,62, RGB(255,255,255))
Box(99,62,214,59, RGB(120,120,120))
Box(102,62,212,57, RGB(50,220,200))
x.c=120
Box(x,62,15,57, r1) ; 1. Ring
Box(x+30,62,15,57, r2) ; 2. Ring
Box(x+60,62,15,57, r3) ; 3. Ring
Box(x+90,62,15,57, r4) ; 4. Ring
Box(x+160,62,15,57, r5) ; 5. Ring
StopDrawing()
;Gosub schreibe
;EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
;EndIf
;
;
CreateGadgetList(WindowID(0))
ImageGadget(0, 0, 0, 0, 0, ImageID(0))
;
Gosub schreibe
Repeat
EventID = WaitWindowEvent(#PB_Event_Gadget)
GadgetNummer = EventGadget()
If GetGadgetState(1) = 1 And vierringe = 1
;If vierringe = 1
;Debug vierringe
Gosub 4ringe
vierringe = 0
; EndIf
EndIf
If GetGadgetState(2) = 1 And vierringe = 0
;If vierringe = 0
;Debug vierringe
Gosub 5ringe
vierringe = 1
;EndIf
EndIf
If GadgetNummer = 101
r1=braun
wertr1$="1"
Gosub schreibe
EndIf
If GadgetNummer = 102
r1=rot
wertr1$="2"
Gosub schreibe
EndIf
If GadgetNummer = 103
r1=orange
wertr1$="3"
Gosub schreibe
EndIf
If GadgetNummer = 104
r1=gelb
wertr1$="4"
Gosub schreibe
EndIf
If GadgetNummer = 105
r1=gruen
wertr1$="5"
Gosub schreibe
EndIf
If GadgetNummer = 106
r1=blau
wertr1$="6"
Gosub schreibe
EndIf
If GadgetNummer = 107
r1=violet
wertr1$="7"
Gosub schreibe
EndIf
If GadgetNummer = 108
r1=grau
wertr1$="8"
Gosub schreibe
EndIf
If GadgetNummer = 109
r1=weiss
wertr1$="9"
Gosub schreibe
EndIf
; Zweiter Ring
If GadgetNummer = 200
r2=schwarz
wertr2$="0"
Gosub schreibe
EndIf
If GadgetNummer = 201
r2=braun
wertr2$="1"
Gosub schreibe
EndIf
If GadgetNummer = 202
r2=rot
wertr2$="2"
Gosub schreibe
EndIf
If GadgetNummer = 203
r2=orange
wertr2$="3"
Gosub schreibe
EndIf
If GadgetNummer = 204
r2=gelb
wertr2$="4"
Gosub schreibe
EndIf
If GadgetNummer = 205
r2=gruen
wertr2$="5"
Gosub schreibe
EndIf
If GadgetNummer = 206
r2=blau
wertr2$="6"
Gosub schreibe
EndIf
If GadgetNummer = 207
r2=violet
wertr2$="7"
Gosub schreibe
EndIf
If GadgetNummer = 208
r2=grau
wertr2$="8"
Gosub schreibe
EndIf
If GadgetNummer = 209
r2=weiss
wertr2$="9"
Gosub schreibe
EndIf
; Driter Ring
If GadgetNummer = 300 And vierringe = 0
r3=schwarz
multi$="10"
Gosub schreibe
ElseIf GadgetNummer = 300 And vierringe = 1
r3=schwarz
wertr3$="0"
Gosub schreibe
EndIf
If GadgetNummer = 301 And vierringe = 0
r3=braun
multi$="000"
Gosub schreibe
ElseIf GadgetNummer = 301 And vierringe = 1
r3=braun
wertr3$="1"
Gosub schreibe
EndIf
If GadgetNummer = 302 And vierringe = 0
r3=rot
multi$="0000"
Gosub schreibe
ElseIf GadgetNummer = 302 And vierringe = 1
r3=rot
wertr3$="2"
Gosub schreibe
EndIf
If GadgetNummer = 303 And vierringe = 0
r3=orange
multi$="00000"
Gosub schreibe
ElseIf GadgetNummer = 303 And vierringe = 1
r3=orange
wertr3$="3"
Gosub schreibe
EndIf
If GadgetNummer = 304 And vierringe = 0
r3=gelb
multi$="000000"
Gosub schreibe
ElseIf GadgetNummer = 304 And vierringe = 1
r3=gelb
wertr3$="4"
Gosub schreibe
EndIf
If GadgetNummer = 305 And vierringe = 0
r3=gruen
multi$="0000000"
Gosub schreibe
ElseIf GadgetNummer = 305 And vierringe = 1
r3=gruen
wertr3$="5"
Gosub schreibe
EndIf
If GadgetNummer = 306 And vierringe = 0
r3=blau
multi$="00000000"
Gosub schreibe
ElseIf GadgetNummer = 306 And vierringe = 1
r3=blau
wertr3$="6"
Gosub schreibe
EndIf
If GadgetNummer = 307 And vierringe = 0
r3=violet
multi$="000000000"
Gosub schreibe
ElseIf GadgetNummer = 307 And vierringe = 1
r3=violet
wertr3$="7"
Gosub schreibe
EndIf
If GadgetNummer = 308 And vierringe = 0
r3=grau
multi$="0000000000"
Gosub schreibe
ElseIf GadgetNummer = 308 And vierringe = 1
r3=grau
wertr3$="8"
Gosub schreibe
EndIf
If GadgetNummer = 309 And vierringe = 0
r3=weiss
multi$="00000000000"
Gosub schreibe
ElseIf GadgetNummer = 309 And vierringe = 1
r3=weiss
wertr3$="9"
Gosub schreibe
EndIf
If GadgetNummer = 310 And vierringe = 0
r3=silber
multi$=""
Gosub schreibe
EndIf
If GadgetNummer = 311 And vierringe = 0
r3=gold
multi$="0"
Gosub schreibe
EndIf
; Vierter Ring
If GadgetNummer = 400
r4=schwarz
multi$="00"
Gosub schreibe
EndIf
If GadgetNummer = 401
r4=braun
multi$="000"
Gosub schreibe
EndIf
If GadgetNummer = 402
r4=rot
multi$="0000"
Gosub schreibe
EndIf
If GadgetNummer = 403
r4=orange
multi$="00000"
Gosub schreibe
EndIf
If GadgetNummer = 404
r4=gelb
multi$="000000"
Gosub schreibe
EndIf
If GadgetNummer = 405
r4=gruen
multi$="0000000"
Gosub schreibe
EndIf
If GadgetNummer = 406
r4=blau
multi$="00000000"
Gosub schreibe
EndIf
If GadgetNummer = 407
r4=violet
multi$="000000000"
Gosub schreibe
EndIf
If GadgetNummer = 408
r4=grau
multi$="0000000000"
Gosub schreibe
EndIf
If GadgetNummer = 409
r4=weiss
multi$="00000000000"
Gosub schreibe
EndIf
If GadgetNummer = 410
r4=silber
multi$=""
Gosub schreibe
EndIf
If GadgetNummer = 411
r4=gold
multi$="0"
Gosub schreibe
EndIf
If GadgetNummer = 501
r5=braun
tol$="+/- 1%"
Gosub schreibe
EndIf
If GadgetNummer = 502
r5=rot
tol$="+/- 2%"
Gosub schreibe
EndIf
If GadgetNummer = 505
r5=gruen
tol$="+/- 0,5%"
Gosub schreibe
EndIf
If GadgetNummer = 506
r5=blau
tol$="+/- 0,25%"
Gosub schreibe
EndIf
If GadgetNummer = 507
r5=violet
tol$="+/- 0,1%"
Gosub schreibe
EndIf
If GadgetNummer = 508
r5=grau
tol$="+/- 0,05%"
Gosub schreibe
EndIf
If GadgetNummer = 510
r5=silber
tol$="+/- 10%"
Gosub schreibe
EndIf
If GadgetNummer = 511
r5=gold
tol$="+/- 5%"
Gosub schreibe
EndIf
If GadgetNummer = 512
r5=hg
tol$="+/- 20%"
Gosub schreibe
EndIf
Until EventID = #PB_Event_CloseWindow ; Wenn das Schliessen Button gedrückt wird, Programm beenden.
EndIf
EndIf
End ; Programm ende
4ringe:
HideGadget(400, 1)
HideGadget(401, 1)
HideGadget(402, 1)
HideGadget(403, 1)
HideGadget(404, 1)
HideGadget(405, 1)
HideGadget(406, 1)
HideGadget(407, 1)
HideGadget(408, 1)
HideGadget(409, 1)
HideGadget(410, 1)
HideGadget(411, 1)
; driter Ring
HideGadget(308, 1)
HideGadget(309, 1)
;ButtonImageGadget(310, 170, 240, 50, 10, ImageID(20))
;ButtonImageGadget(311, 170, 250, 50, 10, ImageID(21))
;If GetGadgetState(101) = 1
HideGadget(310, 0)
HideGadget(311, 0)
r4=hg ; Hindergrundfarbe vom 4. Ring
Return
5ringe:
;driter Ring
HideGadget(310, 1)
HideGadget(311, 1)
HideGadget(308, 0)
HideGadget(309, 0)
;vierter Ring
HideGadget(400, 0)
HideGadget(401, 0)
HideGadget(402, 0)
HideGadget(403, 0)
HideGadget(404, 0)
HideGadget(405, 0)
HideGadget(406, 0)
HideGadget(407, 0)
HideGadget(408, 1)
HideGadget(409, 1)
HideGadget(410, 0)
HideGadget(411, 0)
Return
schreibe:
StartDrawing(WindowOutput(0))
DrawingMode(0)
;
BackColor(RGB(0,0,0))
FrontColor(RGB(255,255,0))
DrawText(30,280,"Ohm")
DrawText(130,280,"Kiloohm")
DrawText(220,280,"Megaohm")
DrawText(310,280,"Tolleranz")
DrawText(310,300, " ")
If vierringe = 0 Or start = 1
wwert$=wertr1$+wertr2$+multi$
wwert.f=ValD(wwert$)
wwert=wwert/100
kohm.f= wwert.f/1000
mohm.f= kohm.f/1000
ohm$=StrF(wwert,1)
kohm$=StrF(kohm,3)
mohm$=StrF(mohm.f,6)
start = 0
EndIf
If vierringe = 1
wwert$=wertr1$+wertr2$+wertr3$+wertr4$+multi$
wwert.f=ValD(wwert$)
wwert=wwert/100
kohm.f= wwert.f/1000
mohm.f= kohm.f/1000
ohm$=StrF(wwert,1)
kohm$=StrF(kohm,3)
mohm$=StrF(mohm.f,6)
start = 0
EndIf
DrawText(30,300, " ")
DrawText(30,300, ohm$)
DrawText(130,300, kohm$)
DrawText(220,300, mohm$)
;DrawText(50,300, " ")
DrawText(310,300, tol$)
Box(x,62,15,57, r1) ; 1. Ring
Box(x+30,62,15,57, r2) ; 2. Ring
Box(x+60,62,15,57, r3) ; 3. Ring
Box(x+90,62,15,57, r4) ; 4. Ring
Box(x+160,62,15,57, r5) ; 5. Ring
StopDrawing()
Return
Gruß Wolfgang