seit Tagen versuche ich nun die paar Programmzeilen zum Laufen zu bringen - leider ohne Erfolg.
Zuerst strickte ich mir das Proggi in einem stinknormalen Fenster mit der kompletten Berechnung. Das läuft auch zu meiner vollsten Zufriedenheit. Es handelt sich hierbei um die Procedure "Open_Individuell()". Da ich es aber erweitern und dementsprechend den Bedürfnissen anpassen wollte, nahm ich die Vorlage "PanelGadget" aus der Hilfe. Nun habe ich das Problem, daß in Zeile 22 eigentlich "#Gadget_Frq" als StringGadget zur Anwendung kommen soll. Trage ich dies hier ein, so hängt sich das Proggi ohne Fehlermeldung auf und läßt sich nur im Editor beenden. Wird hier "#PB_Any" eingetragen, dann erscheint das Eingabefenster. Die Fenster in Zeile 27 u. 32 werden auch nicht angezeigt, aber das Proggi läuft weiter. Nun werden in Zeile 37 u. 42 wiederholt Fenster aufgerufen, die komischerweise angezeigt werden. Kann mir evtl. jemand dabei helfen. Habe ich etwas übersehen? Funktioniert dieses in einem PanelGadget nicht? Was könnte man ersatzweise hernehmen? Um Code-Zeilen zu sparen, wollte ich nur diese beiden Prozeduren für die Ein- / Ausgabefenster verwenden. Ist es evtl. hier besser, die Prozeduren über ein Menü aufzurufen?
Vielen Dank und Gruß
'DD'
Hier die paar Codezeilen meines Veruches #3:
Code: Alles auswählen
;
; Zeigt die Verwendung mehrerer Panels..
;.
; Berechnungsprogramm zum Bau von kleinen Kurzwellen-Antennen
;
Define WindowX=0, WindowY=0, WindowWidth=500, WindowHeight=400, lg=105, h=20
Enumeration
#Gadget_Frq
#Gadget_DZd
#Gadget_DZl
#Gadget_DSp
#Gadget_DDr
EndEnumeration
; Prozedur für erstes Panel "Frequenz (individuell)"
Procedure Open_Individuell(WindowX=5, WindowY=35, WindowWidth=500, WindowHeight=400, lg=105, h=20, abst=25)
; Eingabefenster Frequenz
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Frequenz")
StringGadget(#PB_Any, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric) ;soll #Gadget_Frq sein
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "kHz") ;hängt sich dann auf !!!
WindowY=WindowY+abst
; Eingabefenster Zylinder-Durchmesser
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Zylinder Ø")
StringGadget(#Gadget_DZd, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric) ;??? keine Anzeige
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
WindowY=WindowY+abst
; Eingabefenster Zylinder-Länge
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Zyl.-Länge")
StringGadget(#Gadget_DZl, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric) ;??? keine Anzeige
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
WindowY=WindowY+abst
; Eingabefenster Spule-Durchmesser
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Spule Ø")
StringGadget(#Gadget_DSp, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric)
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
WindowY=WindowY+abst
; Eingabefenster Draht-Durchmesser
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Draht Ø")
StringGadget(#Gadget_DDr, WindowX+100, WindowY-2, lg-62, h, "")
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
GadgetToolTip(#Gadget_DDr, "Dezimalpunkt statt Komma")
; Hier sollen noch die Ausgabefenster angehängt werden in welchen die Ergebnisse der Berechnung erscheinen
EndProcedure
; Prozedur für alle anderen Bänder mit Frequenzübergabe (Frequenz=12345)
Procedure Open_Band(WindowX=15, WindowY=35, WindowWidth=470, WindowHeight=360, lg=105, h=20, abst=25)
; Eingabefenster Zylinder-Durchmesser
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Zylinder Ø")
StringGadget(#Gadget_DZd, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric)
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
WindowY=WindowY+abst
; Eingabefenster Zylinder-Länge
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Zyl.-Länge")
StringGadget(#Gadget_DZl, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric)
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
WindowY=WindowY+abst
; Eingabefenster Spule-Durchmesser
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Spule Ø")
StringGadget(#Gadget_DSp, WindowX+100, WindowY-2, lg-62, h, "", #PB_String_Numeric)
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
WindowY=WindowY+abst
; Eingabefenster Draht-Durchmesser
TextGadget(#PB_Any, WindowX, WindowY, lg, h, "Draht Ø")
StringGadget(#Gadget_DDr, WindowX+100, WindowY-2, lg-62, h, "")
TextGadget(#PB_Any, WindowX+160, WindowY, lg-80, h, "mm")
GadgetToolTip(#Gadget_DDr, "Dezimalpunkt statt Komma")
; Hier sollen noch die Ausgabefenster angehängt werden in welchen die Ergebnisse der Berechnung erscheinen
EndProcedure
; Prozedur Berechnung mit Ausgabe in Ausgabefenster
Procedure Berechnung()
EndProcedure
If OpenWindow(0, WindowX, WindowY, WindowWidth, WindowHeight, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(#PB_Any, WindowX+5, WindowY+380, WindowWidth-5, 23, "© blabla",#PB_Text_Center)
PanelGadget (0, WindowX+8, WindowY+8, WindowWidth-16, WindowHeight-37)
AddGadgetItem (0, -1,"Frequenz")
TextGadget(#PB_Any, WindowX+5, WindowY+8, WindowWidth-32, 23, "Individuelle Frequenzeingabe",#PB_Text_Center)
Open_Individuell()
AddGadgetItem (0, -1, "10m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "28.000 - 29.700 MHz",#PB_Text_Center)
PanelGadget (1, WindowX+5, WindowY+25, WindowWidth-32, WindowHeight-94)
AddGadgetItem(1, -1, "28.000 - 28.190 MHz")
;Open_Band(freq=28100)
AddGadgetItem(1, -1, "28.320 - 29.200 MHz")
AddGadgetItem(1, -1, "29.520 - 29.700 MHz")
CloseGadgetList()
AddGadgetItem (0, -1,"11m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "26.565 - 27.405 MHz",#PB_Text_Center)
PanelGadget (2, WindowX+5, WindowY+25, WindowWidth-32, WindowHeight-94)
AddGadgetItem(2, -1, "28.000 - 28.190 MHz")
AddGadgetItem(2, -1, "28.320 - 29.200 MHz")
AddGadgetItem(2, -1, "29.520 - 29.700 MHz")
CloseGadgetList()
AddGadgetItem (0, -1,"12m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "24.890 - 24.990 MHz",#PB_Text_Center)
AddGadgetItem (0, -1,"15m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "21.000 - 21.450 MHz",#PB_Text_Center)
AddGadgetItem (0, -1,"17m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "18.068 - 18.168 MHz",#PB_Text_Center)
AddGadgetItem (0, -1,"20m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "14.000 - 14.350 MHz",#PB_Text_Center)
AddGadgetItem (0, -1,"30m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "10.100 - 10.150 MHz",#PB_Text_Center)
AddGadgetItem (0, -1,"40m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "7.000 - 7.200 MHz",#PB_Text_Center)
AddGadgetItem (0, -1,"80m")
TextGadget(#PB_Any, WindowX+8, WindowY+8, WindowWidth-16, 17, "3.500 - 3.800 MHz",#PB_Text_Center)
CloseGadgetList()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf