Verfasst: 17.10.2005 21:46
Ist doch nicht schwer, Du hast das Programm doch geschrieben (sehr unübersichtlich
)
Ich hoffe das Problem ist gelöst und ich habe Menschenleben gerettet 

Code: Alles auswählen
Procedure.s MakeTimeString(tdec.f)
Protected time.l, dd.w, hh.w, ii.w, ss.w, hs.w, out.s
time = Round(tdec * 360000, 1)
hs = time % 100 : time / 100
ss = time % 60 : time / 60
ii = time % 60 : time / 60
hh = time % 24 : time / 24
dd = Int(time)
out = RSet(Str(dd), 2, "0") + " Tage "
out + RSet(Str(hh), 2, "0") + " h "
out + RSet(Str(ii), 2, "0") + " min "
out + RSet(Str(ss), 2, "0") + " sec "
ProcedureReturn out
EndProcedure
If OpenWindow(0, 216, 0, 400, 300, #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_WindowCentered , "Medcal")
AddKeyboardShortcut(0, #PB_Shortcut_Return, 0)
If CreateMenu(0, WindowID())
MenuTitle("Programme")
MenuItem(1, "Conzcalc")
MenuItem(2, "Doseconv")
MenuBar()
MenuItem(3, "Ende")
MenuTitle("Hilfe")
MenuItem(4, "Conzcalc")
MenuItem(5, "Doseconv")
MenuBar()
MenuItem(6, "Visit Website")
MenuItem(7, "About")
EndIf
If CreateGadgetList(WindowID())
Frame3DGadget(2, 10, 10, 380, 30, "", #PB_Frame3D_Single)
Frame3DGadget(0, -5, -5, 410, 310, "")
Frame3DGadget(1, 10, 50, 380, 220, "")
ProgressBarGadget(3, 20, 157, 360, 10, 1, 5000, #PB_ProgressBar_Smooth)
TextGadget(12, 170, 18, 60, 20, "Conzcalc", #PB_Text_Center)
TextGadget(20, 60, 70, 140, 20, "Gewünschte Menge:")
TextGadget(4, 60, 100, 140, 20, "Ausgangskonzentration:")
TextGadget(5, 60, 130, 140, 20, "Gewünschte Konzentration:")
StringGadget(6, 240, 67, 70, 20, "", #PB_Text_Right)
StringGadget(7, 240, 97, 70, 20, "", #PB_Text_Right)
StringGadget(8, 240, 127, 70, 20, "", #PB_Text_Right)
TextGadget(9, 315, 100, 30, 20, "in %")
TextGadget(10, 315, 130, 30, 20, "in %")
TextGadget(11, 315, 70, 30, 20, "in ml")
TextGadget(13, 60, 180, 170, 20, "Menge der Ausgangskonzentration:")
TextGadget(14, 60, 210, 160, 20, "Menge des Lösungsmittels:")
ButtonGadget(15, 160, 240, 80, 20, "Berechnen", #PB_Button_Default)
TextGadget(16, 315, 180, 20, 20, "ml")
TextGadget(17, 315, 210, 20, 20, "ml")
TextGadget(18, 240, 177, 70, 20, "", #PB_Text_Right | #PB_Text_Border)
TextGadget(19, 240, 207, 70, 20, "", #PB_Text_Right | #PB_Text_Border)
TextGadget(21, 170, 18, 60, 20, "Doseconv", #PB_Text_Center)
TextGadget(22, 60, 70, 140, 20, "Körpergewicht:")
TextGadget(23, 60, 100, 140, 20, "Gewünschte Dosierung:")
TextGadget(24, 60, 130, 140, 20, "Medikamentenkonzentration:")
StringGadget(25, 240, 67, 70, 20, "", #PB_Text_Right)
StringGadget(26, 240, 97, 70, 20, "", #PB_Text_Right)
StringGadget(27, 240, 127, 40, 20, "", #PB_Text_Right)
StringGadget(28, 310, 127, 40, 20, "", #PB_Text_Right)
TextGadget(29, 315, 70, 30, 20, "kg")
TextGadget(30, 315, 100, 65, 20, "µg/kgKG/min")
TextGadget(31, 285, 130, 25, 20, "mg/")
TextGadget(32, 355, 130, 20, 20, "ml")
TextGadget(33, 60, 180, 170, 20, "Flußrate:")
TextGadget(34, 60, 210, 70, 20, "Infusionsdauer")
TextGadget(45, 132, 210, 93, 20, "")
TextGadget(46, 235, 210, 15, 20, "")
TextGadget(35, 235, 180, 25, 20, "ml/h")
TextGadget(36, 335, 180, 25, 20, "mg/h")
TextGadget(37, 355, 210, 25, 20, "")
TextGadget(38, 170, 177, 60, 20, "", #PB_Text_Right | #PB_Text_Border)
TextGadget(39, 270, 177, 60, 20, "", #PB_Text_Right | #PB_Text_Border)
TextGadget(40, 235, 210, 135, 20, "")
ButtonGadget(41, 160, 240, 80, 20, "Berechnen", #PB_Button_Default)
TextGadget(42, 130, 18, 140, 20, "Bitte Programm auswählen:", #PB_Text_Center)
ButtonGadget(43, 70, 140, 100, 30, "Conzcalc", #PB_Button_Default)
ButtonGadget(44, 230, 140, 100, 30, "Doseconv")
EndIf
For a=3 To 41
HideGadget(a,1)
Next
HideGadget(45,1)
HideGadget(46,1)
ActivateGadget(43)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow
Quit = 1
ElseIf EventID = #PB_EventMenu
If EventMenuID() = 0
Select GetFocus_()
Case GadgetID(43)
SetGadgetText(6,"")
SetGadgetText(7,"")
SetGadgetText(8,"")
SetGadgetText(18,"")
SetGadgetText(19,"")
SetGadgetText(25,"")
SetGadgetText(26,"")
SetGadgetText(27,"")
SetGadgetText(28,"")
SetGadgetText(45,"")
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
For a=3 To 20
HideGadget(a,0)
Next
For a=21 To 46
HideGadget(a,1)
Next
ActivateGadget(15)
Case GadgetID(44)
SetGadgetText(6,"")
SetGadgetText(7,"")
SetGadgetText(8,"")
SetGadgetText(18,"")
SetGadgetText(19,"")
SetGadgetText(25,"")
SetGadgetText(26,"")
SetGadgetText(27,"")
SetGadgetText(28,"")
SetGadgetText(45,"")
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
HideGadget(3,0)
For a=4 To 20
HideGadget(a,1)
Next
For a=21 To 46
HideGadget(a,0)
Next
For a=42 To 44
HideGadget(a,1)
Next
ActivateGadget(41)
EndSelect
EndIf
If EventMenuID()=6
RunProgram("http://www.marcotorskyj.com")
EndIf
If EventMenuID()=4
MessageRequester("Über Conzcalc","Conzcalc - Conzentration-Calculator" + Chr(10) + Chr(10) + "Dieser Rechner hilft beim Umrechnen von Lösungen mit höheren Konzentrationen" + Chr(10) + "zu Lösungen mit niedrigeren Konzentrationen." + Chr(10) + Chr(10) + "Beispiel:" + Chr(10) + "Ein 2 prozentiges Medikament soll in eine 1,5 prozentige Lösung umgewandelt werden." + Chr(10) + "Die gewünschte Menge der 1,5 prozentigen Lösung soll 50ml betragen." + Chr(10) + Chr(10) + "Wieviel ml benötigt man von der 2 prozentigen Lösung und wieviel Lösungsmittel" + Chr(10) + "wird benötigt um eine 1,5 prozentige - 50ml Lösung herzustellen?", #MB_ICONASTERISK)
EndIf
If EventMenuID()=5
MessageRequester("Über Doseconv","Doseconv - Dose-Converter" + Chr(10) + Chr(10) + "Dieser Rechner hilft beim Umrechnen von µg/kgKG/min in ml/h bzw. in mg/h." +Chr(10) + "Es wird auch die Dauer der Infusion ausgerechnet.", #MB_ICONASTERISK)
EndIf
If EventMenuID()=7
MessageRequester("Thanks...", "for using Medcal v1.00" + Chr(10) + Chr(10) + "Written by Marco TORSKYJ" + Chr(10) + Chr(10) + "Supported by Dr. Andreas MAYER" + Chr(10) + "and Dr. Karl-Heinz STADLBAUER" + Chr(10) + Chr(10) + "Copyright © 2005 Marco TORSKYJ" + Chr(10) + "All rights reserved.", #MB_ICONASTERISK)
EndIf
If EventMenuID()=3
Quit = 1
EndIf
If EventMenuID()=1
SetGadgetText(6,"")
SetGadgetText(7,"")
SetGadgetText(8,"")
SetGadgetText(18,"")
SetGadgetText(19,"")
SetGadgetText(25,"")
SetGadgetText(26,"")
SetGadgetText(27,"")
SetGadgetText(28,"")
SetGadgetText(45,"")
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
For a=3 To 20
HideGadget(a,0)
Next
For a=21 To 46
HideGadget(a,1)
Next
ActivateGadget(15)
EndIf
If EventMenuID()=2
SetGadgetText(6,"")
SetGadgetText(7,"")
SetGadgetText(8,"")
SetGadgetText(18,"")
SetGadgetText(19,"")
SetGadgetText(25,"")
SetGadgetText(26,"")
SetGadgetText(27,"")
SetGadgetText(28,"")
SetGadgetText(45,"")
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
HideGadget(3,0)
For a=4 To 20
HideGadget(a,1)
Next
For a=21 To 46
HideGadget(a,0)
Next
For a=42 To 44
HideGadget(a,1)
Next
ActivateGadget(41)
EndIf
EndIf
If EventID = #PB_Event_Gadget
If EventGadgetID()=43
SetGadgetText(6,"")
SetGadgetText(7,"")
SetGadgetText(8,"")
SetGadgetText(18,"")
SetGadgetText(19,"")
SetGadgetText(25,"")
SetGadgetText(26,"")
SetGadgetText(27,"")
SetGadgetText(28,"")
SetGadgetText(45,"")
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
For a=3 To 20
HideGadget(a,0)
Next
For a=21 To 46
HideGadget(a,1)
Next
ActivateGadget(15)
EndIf
If EventGadgetID()=44
SetGadgetText(6,"")
SetGadgetText(7,"")
SetGadgetText(8,"")
SetGadgetText(18,"")
SetGadgetText(19,"")
SetGadgetText(25,"")
SetGadgetText(26,"")
SetGadgetText(27,"")
SetGadgetText(28,"")
SetGadgetText(45,"")
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
HideGadget(3,0)
For a=4 To 20
HideGadget(a,1)
Next
For a=21 To 46
HideGadget(a,0)
Next
For a=42 To 44
HideGadget(a,1)
Next
ActivateGadget(41)
EndIf
If EventGadgetID()=15
SetGadgetText(18,"")
SetGadgetText(19,"")
gm.f = ValF(ReplaceString(GetGadgetText(6), ",", ".", 2))
ak.f = ValF(ReplaceString(GetGadgetText(7), ",", ".", 2))
gk.f = ValF(ReplaceString(GetGadgetText(8), ",", ".", 2))
If gm = 0
MessageRequester("Achtung!","Keine Angabe der gewünschten Menge!", #MB_ICONEXCLAMATION)
ElseIf ak = 0
MessageRequester("Achtung!","Keine Angabe der Ausgangskonzentration!", #MB_ICONEXCLAMATION)
ElseIf ak >= 100
MessageRequester("Achtung!","Ausgangskonzentration muß kleiner als 100 sein!", #MB_ICONEXCLAMATION)
ElseIf gk = 0
MessageRequester("Achtung!","Keine Angabe der gewünschten Konzentration!", #MB_ICONEXCLAMATION)
ElseIf gk > ak
MessageRequester("Achtung!","Gewünschte Konzentration muß kleiner sein!", #MB_ICONEXCLAMATION)
Else
mdak.f = (gm * gk) / ak
mdlm.f = gm - mdak
result1$ = ReplaceString(StrF(mdak,2), ".", ",", 2)
result2$ = ReplaceString(StrF(mdlm,2), ".", ",", 2)
For a=1 To 5000
SetGadgetState(3,a)
Next
SetGadgetText(18,result1$)
SetGadgetText(19,result2$)
EndIf
EndIf
If EventGadgetID()=41
SetGadgetText(38,"")
SetGadgetText(39,"")
SetGadgetText(40,"")
kg.f = ValF(ReplaceString(GetGadgetText(25), ",", ".", 2))
gd.f = ValF(ReplaceString(GetGadgetText(26), ",", ".", 2))
mkmg.f = ValF(ReplaceString(GetGadgetText(27), ",", ".", 2))
mkml.f = ValF(ReplaceString(GetGadgetText(28), ",", ".", 2))
If kg = 0
MessageRequester("Achtung!","Keine Angabe des Körpergewichtes!", #MB_ICONEXCLAMATION)
ElseIf gd = 0
MessageRequester("Achtung!","Keine Angabe der gewünschten Dosierung!", #MB_ICONEXCLAMATION)
ElseIf mkmg = 0
MessageRequester("Achtung!","Keine Angabe der Medikamentenkonzentration (mg)!", #MB_ICONEXCLAMATION)
ElseIf mkml = 0
MessageRequester("Achtung!","Keine Angabe der Medikamentenkonzentration (ml)!", #MB_ICONEXCLAMATION)
Else
frmlh.f = (kg * gd * 0.06) / (mkmg / mkml)
frmgh.f = (mkmg / mkml) * frmlh
rz.f = mkml / frmlh
m.f = mkml
result3$ = ReplaceString(StrF(frmlh,2), ".", ",", 2)
result4$ = ReplaceString(StrF(frmgh,2), ".", ",", 2)
; result5$ = ReplaceString(StrF(rz,2), ".", ",", 2)
; result5$ = FormatDate("%dd Tage %hh h %ii min %ss sec", Round(rz * 3600, 1))
result6$ = ReplaceString(StrF(m,2), ".", ",", 2)
For a=1 To 5000
SetGadgetState(3,a)
Next
SetGadgetText(38,result3$)
SetGadgetText(39,result4$)
SetGadgetText(40, MakeTimeString(rz))
SetGadgetText(45,"mit " + result6$ + " ml:")
EndIf
EndIf
EndIf
Until Quit=1
EndIf
End
