codeschnippsel in eine edit-box einfügen

  • hallo liebe gemeinde,
    hab mir einen kleinen messager gebaut für eine regionale comunity.
    der grundaufbau ist da doch ich hab probleme die einzellnen button, die gewisse code-schnippel in die edit-box schreiben sollen, umzusetzen.
    also bei meiner konstruktion schreibt der button den jeweiligen code rein, jedoch verschwindet der zuvor eingegebene text und nach den klick in die edit-box ist der text wieder da, jedoch der code wieder weg.. was läuft da schief? ?( ?(

    Spoiler anzeigen
    [autoit]

    #include <GuiEdit.au3>
    #include <GUIConstants.au3>
    #include <ListboxConstants.au3>
    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <IE.au3>

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

    $gui = GUICreate("test", 440, 370)

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

    $b = GUICtrlCreateButton("[b]", 20, 110, 25, 25)
    $i = GUICtrlCreateButton("[i]", 46, 110, 25, 25)
    $u = GUICtrlCreateButton("[u]", 72, 110, 25, 25)
    $d = GUICtrlCreateButton("[-]", 98, 110, 25, 25)
    $http = GUICtrlCreateButton("http://", 20, 136, 51, 25)
    $at = GUICtrlCreateButton("@", 72, 136, 25, 25)
    $img = GUICtrlCreateButton("IMG", 98, 136, 51, 25)
    $code = GUICtrlCreateButton("Code", 150, 136, 51, 25)
    $quote = GUICtrlCreateButton("Quote", 202, 136, 51, 25)
    $video = GUICtrlCreateButton("Video", 254, 136, 51, 25)
    $aktuTag = GUICtrlCreateButton("X", 20, 162, 35, 25)
    $allTag = GUICtrlCreateButton("X", 202, 162, 35, 25)
    GUICtrlCreateLabel("Aktuelles Tag schließen", 58, 168, Default, 15)
    GUICtrlCreateLabel("Alle Tags schließen", 240, 168, Default, 15)

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

    Dim $text = GUICtrlCreateEdit("", 20, 190, 400, 145)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $ok = GUICtrlCreateButton("Eintragen", 165, 340, 90, 25)

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

    GUISetState(@SW_SHOW)

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

    schrift()

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

    Func schrift()

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

    GUICtrlCreateCombo("Schriftfarbe", 126, 112, 100, 25)
    GUICtrlSetData(-1, "skyblue|royalblue|blue|darkblue|orange|orangered|crimson|red|firebrick|darkred|green|limegreen|seagreen|deeppink|tomato|coral|purple|indigo|burlywood|sandybrown|sienna|chocolate|teal|silver", "")

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

    GUISetState()

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

    EndFunc

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

    LogIn()

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

    Func LogIn()

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

    While 1

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

    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $b
    $text = GUICtrlRead($text)
    Global $text2 = GUICtrlCreateEdit($text & "[b]", 20, 190, 400, 145)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
    $text2 = GUICtrlRead($text2)
    Global $text3 = GUICtrlCreateEdit($text2 & "", 20, 190, 400, 145)
    GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

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

    Case $i
    Global $text = GUICtrlCreateEdit($text & "[i]", 20, 190, 400, 145)
    Case $u
    Global $text = GUICtrlCreateEdit($text & "[u]", 20, 190, 400, 145)
    Case $d
    Global $text = GUICtrlCreateEdit($text & "[-]", 20, 190, 400, 145)
    Case $http
    Global $text = GUICtrlCreateEdit($text & "[url]", 20, 190, 400, 145)
    Case $at
    Global $text = GUICtrlCreateEdit($text & "[mail]", 20, 190, 400, 145)
    case $ok
    ;bla bla
    ExitLoop
    EndSwitch
    WEnd
    EndFunc

    [/autoit]

    am ende soll das so aussehn das ich beliebigen text in die edit-box schreiben kann und beim drücken eines buttons der text weiter bestehen bleibt und dahinter der jeweilige codeschnipsel für den button drangehängt wird:

    z.B.: Texteingabe dann button [b] gedrückt:

    in der edit-box muss stehn: "das ist ein schöner tag[b]"

  • hey danke,ideas2code!
    funktioniert klasse
    nun muss ich nur noch die beiden knöpfe $aktuTag und $allTag integrieren..

    der $aktuTag-button soll den aktuellen codeschnippsel schließen
    also wenn als letztes "[*b*]" gedrückt wurde soll er "[/*b*]" schreiben
    bzw bei "[*i]" eben "[*/i]" usw.

    der $allTag-button soll am ende alle noch offenen code-schnippsel schließen
    zB

    "[*b][*i]das ist ein text!"
    nun soll dieser button "[*/b][*/i]" anhängen

    wie kann ich die beiden button so flexibel machen
    wäre sehr dankbar für diese antwort

    PS: die sterne gehören nicht rein ist nur weil es sonst hier im forum nicht mehr angezeigt wird und es die schrift automatisch umwandelt in fett oder kursiv ;)

    5 Mal editiert, zuletzt von Inferior (30. Juni 2010 um 17:28)