Balloontip mit Inputfelder verknüpfen?

  • Hallo Leute,


    kann mir jemand dabei helfen einen Balloontip aus einer if abfrage mit dem zugehörigen inputfeld zu verknüpfen. ?(


    Habe in meinem Script 8 Inputfelder und einen button "Berechnen", nun will ich wenn ich auf den Button klicke, die Inputfelder ausgelesen werden und bei einer falscheingabe ein Balloontip Hilfe leistet welche Eingaben in diesem Input erlaubt sind....


    Spoiler anzeigen
    [autoit]


    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $FB
    $FB_read = GUICtrlRead($FB)
    If $FB_read < 405 Then ToolTip("Fensterbreite (FB) unter 405 mm nicht zulässig", Default, Default, Default, 1, 1)
    If $FB_read >= 405 Then ToolTip("")
    If $FB_read > 1600 Then ToolTip("Fensterbreite (FB) über 1600 mm nicht zulässig", Default, Default, Default, 1, 1)
    Case $FH
    $FH_read = GUICtrlRead($FH)
    If $FH_read < 520 Then ToolTip("Fensterhöhe (FH) unter 520 mm nicht zulässig", Default, Default, Default, 1, 1)
    If $FH_read >= 520 Then ToolTip("")
    If $FH_read > 2400 Then ToolTip("Fensterhöhe (FH) über 2400 mm nicht zulässig", Default, Default, Default, 1, 1)
    $minGH = GUICtrlRead($FH)
    $mingh3 = $minGH / 3
    $ghdata = Round($mingh3, 0)
    GUICtrlSetData($GH, $ghdata)
    Case $GH
    $GH_read = GUICtrlRead($GH)
    If $GH_read < 260 Then ToolTip("Griffhöhe (GH) unter 260 mm nicht zulässig", Default, Default, Default, 1, 1)
    If $GH_read >= 260 Then ToolTip("")
    If $GH_read < $FH_read / 3 Then ToolTip("(GH) muss mindestens 1/3 der (FH) sein", Default, Default, Default, 1, 1)
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Abbrechen
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Berechnen
    If $GH_read < $FH_read / 3 Then ToolTip("(GH) muss mindestens 1/3 der (FH) sein", Default, Default, Default, 1, 1)
    If $GH_read < 260 Then ToolTip("Griffhöhe (GH) unter 260 mm nicht zulässig", Default, Default, Default, 1, 1)
    If $GH_read >= 260 Then ToolTip("")
    If GUICtrlRead($FB) = "" Then MsgBox(64, "Fehler", "(FB) keine Maße zum berechnen!")
    If GUICtrlRead($FH) = "" Then MsgBox(64, "Fehler", "(FH) keine Maße zum berechnen!")
    If GUICtrlRead($GH) = "" Then MsgBox(64, "Fehler", "(GH) keine Maße zum berechnen!")
    rechnen ()
    eintragen ()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func rechnen()
    If GUICtrlRead($Einlassgetriebe) = $GUI_CHECKED Then
    $T1rech = GUICtrlRead($GH) - 222
    Else
    $T1rech = GUICtrlRead($GH) - 175
    EndIf
    If GUICtrlRead($Einlassgetriebe) = $GUI_CHECKED Then
    $T2rech = $FH_read - $GH_read - 222
    Else
    $T2rech = $FH_read - $GH_read - 175
    EndIf
    If GUICtrlRead($FB) < 600 Then $T3rech = $FB_read - 371
    If GUICtrlRead($FB) >= 600 Then $T3rech = $FB_read - 539
    $T4rech = $FH_read / 2 - 128
    $T5rech = $FB_read / 2 - 94
    $T1_1rech = $FH_read - 320
    EndFunc ;==>rechnen

    [/autoit] [autoit][/autoit] [autoit]

    Func eintragen()
    GUICtrlSetData($T1, $T1rech)
    GUICtrlSetData($T2, $T2rech)
    GUICtrlSetData($T3, $T3rech)
    GUICtrlSetData($T4, $T4rech)
    GUICtrlSetData($T5, $T5rech)
    GUICtrlSetData($T1_1, $T1_1rech)
    EndFunc ;==>eintragen

    [/autoit]


    Habe es bereits mit den CoordMod´s probiert, bekomme es leider trotzdem nicht hin :cursing: .


    Danke für eure Antworten, euer....


    Stinger2k

    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o

    2 Mal editiert, zuletzt von stinger2k (24. Februar 2010 um 01:43)

  • Das löst nicht mein problem, in meiner berechnung geht es um beschlagsteile von fenstern wobei z.B. die Griffhöhe angegeben werden muss und diese nicht weniger als 260mm sein darf bzw. auch nicht weniger als 1/3 der Fensterhöhe...


    das heißt bei 2300 mm FH muss GH mindestens 766 mm betragen (1/3 von FH)

    bei 760 mm FH muss GH mindestens 260 mm betragen (mindest Maß vom Beschlagsstück)


    und dies wäre sehr schön wenn ein balloontip auf das input-feld für die Griffhöhe (GH) zeigen würde...


    Trotzdem danke...

    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o

  • Schau mal hier:

    [autoit]

    Func _Check()
    If $inputGH < 260 Or $inputGH < Int($inputFH / 3) Then MsgBox(0, "Test", "zu klein")
    EndFunc

    [/autoit]

    ganz simpel. Und anstatt der MsgBox machst du dann halt deinen ToolTip in Form des Balloon Tips. Das Int rundet übrigens den 1/3 Wert ab, weil 2300 geteilt durch 3 sind 766,666..., weil dann würde er wenn GH 766 wäre schon meckern, aber du hast ja gesagt, dass das noch ok ist und erst darunter nicht ok ist.

    Achja damit der Balloon Tip am Control erscheint, müsstest du mit ControlGetPos erst die Position abfragen vom Control und dann die Werte an X und Y von dem ToolTip übergeben, und wenn du zu X die Breite des Controls mit angibst vom ControlGetPos und zu Y die Höhe, dann erscheint der Tip an der rechten unteren Ecke des Inputfeldes.

    Also so:

    [autoit]

    ToolTip("dein Text", $array[0] + $array[2], $array[1] + $array[3], "dein Titel", 3, 1)

    [/autoit]

    Einmal editiert, zuletzt von m-obi (23. Februar 2010 um 23:48)

  • Danke vielmals,


    habe es nun doch geschafft und zwar mit der Funktion

    [autoit]

    _GUICtrlEdit_ShowBalloonTip($GH, "Fehler", "Griffhöhe (GH) unter 260 mm nicht zulässig", $TTI_INFO)

    [/autoit]

    :thumbup:

    Manchmal nützt die Suchfunktion der Hilfe auch nichts, bin auch nur durch Zufall darauf gestossen da diese in einem Beispielscript der Hilfe verwendet wurde....


    Danke, das mit dem int habe ich auch eingebaut jetzt kann ich mir so meine

    [autoit]

    Round()

    [/autoit]

    funktionen sparen.

    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o

    Einmal editiert, zuletzt von stinger2k (24. Februar 2010 um 01:41)

  • Geht auch für Inputs ohne jegliche veränderungen, Tolle Sache :thumbup:


    [autoit]


    $GH = GUICtrlCreateInput("", 138, 177, 121, 21, $ES_NUMBER)

    Case $GH
    If GUICtrlRead($FH) - $GH - 175 < 0 Then
    _GUICtrlEdit_ShowBalloonTip($GH, "Fehler", "(GH) ist für diese (FH) nicht zulässig!", $TTI_ERROR)
    ContinueLoop
    EndIf
    If GUICtrlRead($GH) < 260 Then
    GUICtrlSetData($GH, "260")
    ;~ Send(@TAB)
    ContinueLoop
    EndIf
    If GUICtrlRead($GH) < 260 Then
    _GUICtrlEdit_ShowBalloonTip($GH, "Fehler", "Griffhöhe (GH) unter 260 mm nicht zulässig", $TTI_INFO)
    ContinueLoop
    EndIf
    If GUICtrlRead($GH) < Round(GUICtrlRead($FH) / 3, 0) Then
    _GUICtrlEdit_ShowBalloonTip($GH, "Fehler", "(GH) muss mindestens 1/3 der (FH) sein", $TTI_INFO)
    GUICtrlSetData($GH, "260")
    ContinueLoop
    EndIf
    GUICtrlSetState($Checkbox1, $GUI_UNCHECKED)
    GUICtrlSetState($Checkbox1, $GUI_DISABLE)

    [/autoit]
    Spoiler anzeigen
    Zitat

    Ich weiß wo dein Haus wohnt... 8o