fließkommazahl in zeitangabe umwandel?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ist doch nicht schwer, Du hast das Programm doch geschrieben (sehr unübersichtlich :wink: )

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
Ich hoffe das Problem ist gelöst und ich habe Menschenleben gerettet :D
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag von Zerosurf »

sorry ts-soft!

leider ist das der falsche button - button 15 bzw. 41 sollten mit return betätigt werden können.

ich hatte heute einen anstrengenden 12 stunden dienst und kann mich kaum mehr konzentrieren. werde mir morgen nochmal alles genau anschauen.

ich weiß, daß es sehr unübersichtlich ist, aber das ist jetzt mal mein erstes programm daß ich mir zusammen gebastelt habe.

es wäre sicher einfacher gewesen, wenn ich mehr Proceduren gemacht hätte, oder?

trotzdem macht es voll spass - dank super unterstützung!

gute nacht!

Zerosurf
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag von Zerosurf »

So - jetzt hab ich mich mal ausgeschlafen und das Ganze nochmal angeschaut, aber irgendwie komm ich auf keinen grünen Zweig.

Bitte um Hilfe!

mfg. Zerosurf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Dann arbeite Deinen Source mal so auf, das er Übersichtlich wird:

Konstanten verwenden
Select EndSelect verwenden

Das Geschehen, wenn Ereignis eintrifft in Prozeduren verlagern.

Bei dem Code würde ich auch schnell die Übersicht verlieren :wink:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag von Zerosurf »

Das ist mein erstes Programm was ich mir aus der Hilfe und den Tutorials zusammen gebastelt habe!

Wie das aufräumen geht muß ich mir noch erarbeiten.

Totzdem vielen Dank - vielleicht kannst du mir ja bei den Aufräumarbeiten behilflich sein ;-)

mfg. Zerosurf
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Zerosurf hat geschrieben: Totzdem vielen Dank - vielleicht kannst du mir ja bei den Aufräumarbeiten behilflich sein ;-)

mfg. Zerosurf
Dann lernste ja nichts dazu :wink: , mach mal schön selber, wenn es aufgeräumt ist und Du immer noch nicht zurande kommst, dann gucken wir nochmal :)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Zerosurf
Beiträge: 131
Registriert: 11.10.2005 15:46

Beitrag von Zerosurf »

Das problem liegt darin, daß AddKeyboardShortcut(0, #PB_Shortcut_Return, 0) nur die EventMenuID und nicht die EventGadgetID anspricht - in diesem Fall MenuItem(0).

Es sollte aber den ButtonGadget(15) und (41) "ansprechen".

Wie mach ich das?

mfg. Zerosurf
Benutzeravatar
Justy
Beiträge: 131
Registriert: 10.09.2004 13:31
Wohnort: Feldbach / Steiermark / Österreich
Kontaktdaten:

Beitrag von Justy »

Leider garnicht direkt, weil AddKeyboardShortcut eigentlich für Shortcuts in den Menüs gedacht ist (z.b. STRG+S für speichern oder STRG+C für kopieren).
Dir bleibt also nichts anderes übrig als auch die EventMenuID abzufragen und per GOTO oder künstlichem Event (ka. wie das geht) zum Code von Button 15 bzw. 41 zu springen!

mfg. Justy
Am Anfang erschuf der Mensch Gott.
Friedrich Nietzsche
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Justy hat geschrieben:Dir bleibt also nichts anderes übrig als auch die EventMenuID abzufragen und per GOTO oder künstlichem Event (ka. wie das geht) zum Code von Button 15 bzw. 41 zu springen!
Im folgendem Code geht Return für 2 Buttons und in einem
StringGadget. Wechseln kann man zwischen den 3 Gadgets
mit <TAB>.

Code: Alles auswählen

OpenWindow(0,0,0,300,200,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Return")
  CreateGadgetList(WindowID())
  AddKeyboardShortcut(0,#PB_Shortcut_Return,1000)
  ButtonGadget(15,190,10,100,20,"OK")
  ButtonGadget(41,190,35,100,20,"Cancel")
  StringGadget(78, 10,10,170,20,"")
  
  ActivateGadget(78)

Repeat
  Event = WaitWindowEvent()

  If Event = #PB_Event_CloseWindow
    Break
  ElseIf Event = #PB_Event_Gadget Or Event = #PB_Event_Menu
    If Event = #PB_Event_Menu And EventMenuID() = 1000
       Gadget = GetWindowLong_(GetFocus_(),#GWL_ID)
    Else
       Gadget = EventGadgetID()
    EndIf
    
    A$ = ""
    Select Gadget
      Case 15: A$ = "OK"
      Case 41: A$ = "Cancel"
      Case 78: If Event = #PB_Event_Menu
                A$ = "StringGadget"
              EndIf
    EndSelect

    If A$
      MessageRequester("INFO","Event for: "+A$)
      ActivateGadget(Gadget)
    EndIf
    
  EndIf
ForEver
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Justy hat geschrieben:Leider garnicht direkt, weil AddKeyboardShortcut eigentlich für Shortcuts in den Menüs gedacht ist (z.b. STRG+S für speichern oder STRG+C für kopieren).
Dir bleibt also nichts anderes übrig als auch die EventMenuID abzufragen und per GOTO oder künstlichem Event (ka. wie das geht) zum Code von Button 15 bzw. 41 zu springen!

mfg. Justy
Wie wärs wenn er als erstes
WaitWindowEvent() abfragt und in eine Vriable namens "EventID" packt.
Falls dann ein MenuEvent auftritt, kann er die EventID ja so verändern, dass es so aussieht, als wnen Button X gedrückt wurde.

Code: Alles auswählen

EventID = WaitWindowEvent()

If MenuID
 Select MenuID
  Case 1
   EventID = #Button_1
  Case 2
   EventID = #Button_2
 EndSelect
EndiIf

Select EventID
 Case = #Button_1
  (code)
 Case = #Button_2
  (code)
EndSelect

...
So kann man die EventID Manipulieren wie man möchte, ohne das Programm riesig groß umzuschreiben-habe jetzt gerade keinen Code da ums zu posten, aber die Idee sollte rübergekommen sein.

Gr33tz
DerMarc

P.S.: Justy: GOTOS SIND BÖÖSE!FINGER WECH! ;)
Editiert, weil wegen Code-Verbesserung und dem "P.S.". :)
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten