BB-Code Verhalten simulieren (gelöst mit _GUICtrlEdit_ReplaceSel)

  • Guten Morgen liebe Community,

    ich arbeite gerade an einem BB-Code - zu - HTML-Konverter.
    Nur bekomme ich mit der Textinput leider ein Verhalten nicht hin: Denn sobald der Text markiert wird und dann z.B. auf ein Fett-Knopf gedrückt wird, wird der ganze markierte Text gelöscht mit "[ B ][/ B ]" statt wie gewünscht mit "[ B ]Markierter Text[ / B ]". Ich habe mich mit einer vorherigen Input-Anfrage abgeholfen, wobei das natürlich leider nicht so bequem ist.
    Ich befürchte leider, dass man mit Autoit die Markierung in Textinput / Editfeld nicht abfragen kann?

    Gruß

    Einmal editiert, zuletzt von mille86 (6. Juli 2010 um 02:50)

  • ups... hier ist der Quellcode

    Danke, schau ich mir an und gebe mein Feedback sobald ich wie gelöst habe :D

    EDIT: rauseditiert, da nicht relevant

    Einmal editiert, zuletzt von mille86 (6. Juli 2010 um 02:50)

  • hallo mille86

    schön das du zu einer lösung gekommen bist
    wie ich das so lese arbeitest du anscheiend an einem ähnlichen projekt wie ich
    zumindest was das einbringen an tags wie fett kursiv usw in eine editbox angeht
    oder lieg ich da falsch?
    wenn es dir nichts ausmacht kannst du ja mal dein script posten..
    gibt da bei mir auch noch kleine buggs
    vllt bringt es mir auch was
    wie gesagt nur wenn du möchtest

    gruß Inferior

  • Hi,

    nee du liegst richtig. Hier ist der Part für die beliebige Ersetzung ($text ist bei mir die ControlID!):

    [autoit]


    $tempAr = _GUICtrlEdit_GetSel($text)
    $tmp = StringMid(GUICtrlRead($text), $tempAr[0] + 1, $tempAr[1] - $tempAr[0])
    _GUICtrlEdit_ReplaceSel($text, '' & $tmp & '')

    [/autoit]


    Bei Smiley (also wo nur ein Emoticon durch ein Bild ersetzt werden soll), verwende ich das

    [autoit]


    GUICtrlSetData($text, ':) ', ' ')

    [/autoit]


    Wichtig ist hier das Leerzeichen am Ende!

    Die Funktion wird schließlich so aufgerufen

    1. als Knopf machen:

    [autoit]


    $pic_smile = GUICtrlCreatePic(@ScriptDir & '\smile.gif', 420, 95, 0, 0)

    [/autoit]

    2. In der GUIGetMsg schleife nach dem Status abfragen:

    [autoit]


    Case $pic_smile

    [/autoit]

    gruß :)