Ich habe nicht ganz verstanden was Du genau willst aber ich glaube ich kann dir mit den was ich an Source hereinstelle dir eine Möglichkeit aufzeigen wie man es machen könnte, bezüglich deinen Vorgaben.
Code: Alles auswählen
;Ultimate Prozentrechner
Enumeration
#Window
#btn_pWert
#btn_pSatz
#btn_gWert
#btn_Info
#btn_Calc
#lvw_Werte
#str_Daten
#pbr_Calc
#key_Enter
EndEnumeration
Procedure Menue_Klick(Value.l)
Protected Daten.s
If (Value=#key_Enter)
a.s = GetGadgetText(#str_Daten)
Select 1
Case GetGadgetState(#btn_pWert)
Daten = " pw"
SetGadgetState(#btn_pWert, 0)
Case GetGadgetState(#btn_pSatz)
Daten = " %"
SetGadgetState(#btn_pSatz, 0)
Case GetGadgetState(#btn_gWert)
Daten = " gw"
SetGadgetState(#btn_gWert, 0)
EndSelect
If (Daten<>"") And (GetGadgetText(#str_Daten)<>"")
AddGadgetItem(#lvw_Werte, -1, GetGadgetText(#str_Daten)+Daten)
EndIf
EndIf
SetGadgetText(#str_Daten,"")
EndProcedure
Procedure.s Calculation(Value.l)
Protected W.d, P.d, G.d, Result.d
Wert01.s = GetGadgetItemText(#lvw_Werte, Value , 0)
Wert02.s = GetGadgetItemText(#lvw_Werte, Value-1, 0)
If FindString(Wert01,"pw", 1)
W = ValD(ReplaceString(Wert01, "pw", ""))
ElseIf FindString(Wert01,"%", 1)
P = ValD(ReplaceString(Wert01, "%", ""))
ElseIf FindString(Wert01,"gw", 1)
G = ValD(ReplaceString(Wert01, "gw", ""))
EndIf
If FindString(Wert02,"pw", 1)
W = ValD(ReplaceString(Wert02, "pw", ""))
ElseIf FindString(Wert02,"%", 1)
P = ValD(ReplaceString(Wert02, "%", ""))
ElseIf FindString(Wert02,"gw", 1)
G = ValD(ReplaceString(Wert02, "gw", ""))
EndIf
Select 0
Case W: Result = G*P/100
Case P: Result = W*100/G
Case G: Result = W*100/P
EndSelect
ProcedureReturn StrD(Result, 2)
EndProcedure
If OpenWindow(#Window,512,380,400,220,"Ultimate Prozentrechner")
If CreateGadgetList(WindowID(#Window))
ButtonGadget (#btn_pWert , 020, 020, 100, 020, "Prozentwert", #PB_Button_Toggle)
ButtonGadget (#btn_pSatz , 020, 080, 100, 020, "Prozentsatz", #PB_Button_Toggle)
ButtonGadget (#btn_gWert , 020, 140, 100, 020, "Grundwert" , #PB_Button_Toggle)
ButtonGadget (#btn_Info , 380, 200, 020, 020, "I")
ListViewGadget (#lvw_Werte , 150, 020, 220, 140)
StringGadget (#str_Daten , 020, 175, 100, 020, "")
ButtonGadget (#btn_Calc , 150, 175, 100, 020, "Rechnen")
ProgressBarGadget(#pbr_Calc , 270, 175, 100, 020, 1, 10000)
EndIf
AddKeyboardShortcut(#Window, #PB_Shortcut_Return, #key_Enter)
SetActiveGadget(#str_Daten)
EndIf
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_CloseWindow: Quit.b = 1
Case #PB_Event_Gadget
Select EventGadget()
Case #btn_pWert: SetGadgetState(#btn_pSatz, 0): SetGadgetState(#btn_gWert, 0):SetActiveGadget(#str_Daten)
Case #btn_pSatz: SetGadgetState(#btn_pWert, 0): SetGadgetState(#btn_gWert, 0):SetActiveGadget(#str_Daten)
Case #btn_gWert: SetGadgetState(#btn_pWert, 0): SetGadgetState(#btn_pSatz, 0):SetActiveGadget(#str_Daten)
Case #btn_Info : MessageRequester("About","Ultimate Prozentrechner created by C4rizz.",0)
Case #btn_Calc
If (CountGadgetItems(#lvw_Werte)>1)
AddGadgetItem(#lvw_Werte, -1, "=")
AddGadgetItem(#lvw_Werte, -1, Calculation(CountGadgetItems(#lvw_Werte)-2))
EndIf
Case #lvw_Werte
If EventType()=#PB_EventType_LeftDoubleClick: ClearGadgetItemList(#lvw_Werte): EndIf
EndSelect
Case #PB_Event_Menu: Menue_Klick(EventMenu())
EndSelect
Until Quit=1
End