StringReplace und dabei zeichen/buchstaben farbig unterlegen?

  • Ich möchte das StringReplace ein gewünschtes zeichen farbig unterlegt ( am besten gelb oder so)

    bis jezt:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    GUICreate("Test", 300, 200, 400, 200)
    GUICtrlCreateLabel("Text:", 10, 10, 50, 17)
    $Input = GUICtrlCreateInput("", 10, 30, 250, 20)
    GUICtrlCreateLabel("Buchstabe:", 10, 60, 60, 17)
    $Input2 = GUICtrlCreateInput("", 10, 80, 250, 20)
    $Button = GUICtrlCreateButton("Ok", 100, 150, 100, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    StringReplace( GUICtrlRead($Input), GUICtrlRead($Input2), ...???...) ;<== hier soll das zeichen farbig unterlegt werden...

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

    ; ...um dann hier im kompletten text farbig ausgegeben zu werden

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

    EndSwitch
    WEnd

    [/autoit]

    Wer kann mir helfen?

  • Ich weiß nicht, ob ich das richtig verstanden habe.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiRichEdit.au3>

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

    $hGui = GUICreate("Test", 300, 200, 400, 200)
    GUICtrlCreateLabel("Text:", 10, 10, 50, 17)
    ;~ $Input = GUICtrlCreateInput("", 10, 30, 250, 20)
    $Input = _GUICtrlRichEdit_Create($hGui, "", 10, 30, 250, 20)
    GUICtrlCreateLabel("Buchstabe:", 10, 60, 60, 17)
    $Input2 = GUICtrlCreateInput("", 10, 80, 250, 20)
    GUICtrlSetLimit(-1, 1)
    $Button = GUICtrlCreateButton("Ok", 100, 150, 100, 25)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _GUICtrlRichEdit_Destroy($Input)
    Exit
    Case $Button
    $pos = StringInStr(_GUICtrlRichEdit_GetText($Input), GUICtrlRead($Input2))
    _GuiCtrlRichEdit_SetSel($Input, $pos - 1, $pos)
    _GUICtrlRichEdit_SetCharColor($Input, 0xff)
    _GuiCtrlRichEdit_SetSel($Input, $pos - 1, $pos, True)
    EndSwitch
    WEnd

    [/autoit]
  • Willst du die Farbe des ganzen Input verändern?

    [autoit]

    GUICtrlSetColor(controlID, textcolor)

    [/autoit]

    RGB-Tabelle

    Lies dir Hilfe für "GUICtrlSetColor" durch. Für die "textcolor" (RGB) musst du aus der Tabelle die Hex Nummer nehmen und "0x" davorhängen. Also:

    CadetBlue: Hex: 5F9EA0
    Textcolor in AutoIt: 0x5F9EA0

    Wenn du einzeilnde Abschnitte markieren willst, bringt ein Input/Edit nichts. Hier brauchst du ein RichEdit. Die benutzerdefinierte Funktion _GUICtrlRichEdit_ Hilft hier:

    [autoit]

    _GUICtrlRichEdit_Create()
    _GUICtrlRichEdit_SetSel()
    _GUICtrlRichEdit_SetCharColor()

    [/autoit]

    MfG

  • funkey du hast es fast richtig verstanden ^^

    ich meinte eigentlich ob man den kompletten text wo der buchstabe oder so farbig gemacht wurde neu ausgeben kann in einer msgbox oder einem neuen gui und nicht in dem input feld ;)

    aber sonst nciht schlecht ;)