ich habe mal versucht ein kleines altes Programm von mir auf SpiderBasic umzuschreiben, um ein besseres Gefühl für Spider zu bekommen. Es hat etwas gedauert bis ich das Fenster endlich darstellen konnte aber zu guter Letzt habe ich es hinbekommen. Die Funktionsweise des Programms konnte ich jedoch nicht aktivieren. Irgendwo habe ich mich zu weit aus dem Fenster gelegt und Spider ist noch nicht so weit oder ich weiß nicht weiter ......
Code: Alles auswählen
Procedure.a IsNumber(Value.s)
Protected pResult.a = #True
Protected *pCharAsc = @Value
If (PeekC(*pCharAsc)=43) Or (PeekC(*pCharAsc)=45): *pCharAsc+1: EndIf
While Not (PeekC(*pCharAsc)=0)
If (PeekC(*pCharAsc)<44) Or (PeekC(*pCharAsc)=45) Or (PeekC(*pCharAsc)=47) Or (PeekC(*pCharAsc)>57)
pResult = #False
Break
EndIf
*pCharAsc + 1
Wend
ProcedureReturn (pResult)
EndProcedure
Procedure.s Ergebnis()
Protected n.i, Result.s
Protected L0.f, Ag.f, A.f, Lx.f
For n=1 To 4
SetGadgetText(n, ReplaceString(GetGadgetText(n), ",", "."))
Next n
L0 = ValF(GetGadgetText(#String_0))
Ag = ValF(GetGadgetText(#String_1))
A = ValF(GetGadgetText(#String_2))
Lx = ValF(GetGadgetText(#String_3))
If L0 And Ag And A And Lx
Result = StrF((A*L0-(L0-Lx)*Ag)/Lx, 2)
Else
Result = "0.00"
EndIf
ProcedureReturn Result + " %"
EndProcedure
Procedure MainWindow_Create()
Protected n.i, pValue.s
If OpenWindow(#Window_0, 500, 200, #WindowWidth, #WindowHeight, "A Konvertierung") ;, #PB_Window_BorderLess)
StringGadget (#String_0, 90, 010, 060, 25, #NULL$): GadgetToolTip(#String_0, "Messlänge")
StringGadget (#String_1, 90, 040, 060, 25, #NULL$): GadgetToolTip(#String_1, "Gleichmaßdehnung")
StringGadget (#String_2, 90, 070, 060, 25, #NULL$): GadgetToolTip(#String_2, "Dehnung")
StringGadget (#String_3, 90, 100, 060, 25, #NULL$): GadgetToolTip(#String_3, "Neue Messlänge")
StringGadget (#String_4, 10, 150, 140, 30, "0.00 %", #PB_Text_Center | #PB_String_ReadOnly)
GadgetToolTip(#String_4, "(A * L0 - (L0 - Lx) * AG) / Lx")
TextGadget (#Text_0 , 10, 010, 070, 20, "L0(mm)")
TextGadget (#Text_1 , 10, 040, 070, 20, "Ag(%)")
TextGadget (#Text_2 , 10, 070, 070, 20, "A (%)")
TextGadget (#Text_3 , 10, 100, 070, 20, "Lx(mm)")
ButtonGadget (#Button_0, 30, 200, 100, 30, "Berechnen")
SetActiveGadget(#String_0)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Return, #Taste_Return)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Escape, #Taste_Escape)
EndIf
EndProcedure
Procedure GadgetClick()
Select EventGadget()
Case #String_0
If (EventType() = #PB_EventType_Change)
If (IsNumber(GetGadgetText(#String_0))=#False): SetGadgetText(#String_0, #NULL$): EndIf
EndIf
Case #String_1
If (EventType() = #PB_EventType_Change)
If (IsNumber(GetGadgetText(#String_1))=#False): SetGadgetText(#String_1, #NULL$): EndIf
EndIf
Case #String_2
If (EventType() = #PB_EventType_Change)
If (IsNumber(GetGadgetText(#String_2))=#False): SetGadgetText(#String_2, #NULL$): EndIf
EndIf
Case #String_3
If (EventType() = #PB_EventType_Change)
If (IsNumber(GetGadgetText(#String_3))=#False): SetGadgetText(#String_3, #NULL$): EndIf
EndIf
Case #Button_0
SetGadgetText(#String_4, Ergebnis())
EndSelect
EndProcedure
Procedure MenueClick()
Protected n.i
Select EventMenu()
Case #Taste_Return
For n=1 To 4
If (GetActiveGadget()=GadgetID(n))
If (n=4)
SetGadgetText(#String_4, Ergebnis())
SetActiveGadget(#String_0)
Else
SetActiveGadget(n+1)
Break
EndIf
EndIf
Next n
Case #Taste_Escape
ProcedureReturn
EndSelect
EndProcedure
Vielleicht kann mir ja jemand von Euch sagen wo mein Fehler liegt.