Hallo liebe Gemeinde,
mein aktuelles Script:
Spoiler anzeigen
#include <GuiConstantsEX.au3>
#include <GuiToolTip.au3>
#include <GuiEdit.au3>
#include <GuiComboBox.au3>
#include <GuiConstants.au3>
#include <EditConstants.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
#include <ListboxConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>
#include <IE.au3>
#Include <Misc.au3>
#Include <Array.au3>
#include <INet.au3>
Opt("GUIDataSeparatorChar", "#")
[/autoit] [autoit][/autoit] [autoit]$msg = GUICreate("Party-Screen.de - SpeedAnswer©", 440, 370)
[/autoit] [autoit][/autoit] [autoit]$b = GUICtrlCreateButton("", 20, 110, 25, 25)
$i = GUICtrlCreateButton("", 46, 110, 25, 25)
$u = GUICtrlCreateButton("", 72, 110, 25, 25)
$d = GUICtrlCreateButton("[-]", 98, 110, 25, 25)
$schrift = GUICtrlCreateCombo("Schriftfarbe", 126, 112, 100, 25)
$color = 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", "")
$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)
GUICtrlSetFont(-1, 11, 600, 0, "MS Sans Serif")
$allTag = GUICtrlCreateButton("x", 202, 162, 35, 25)
GUICtrlSetFont(-1, 11, 600, 0, "MS Sans Serif")
GUICtrlCreateLabel("Aktuelles Tag schließen", 58, 168, Default, 15)
GUICtrlCreateLabel("Alle Tags schließen", 240, 168, Default, 15)
Dim $text = GUICtrlCreateEdit("", 20, 190, 400, 139, $ES_WANTRETURN)
$ok = GUICtrlCreateButton("Eintragen", 20, 331, 90, 25)
GUISetState()
GUISetState(@SW_SHOW)
main()
[/autoit] [autoit][/autoit] [autoit]Func main()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $schrift
$textcolorfenster = GUICreate("Texteingabe für Färbung:", 350, 120)
GUICtrlCreateLabel("Geben sie den gefärbten Text ein.", 30, 20)
$textcolor = GUICtrlCreateInput("", 30, 45, 290, 23)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
$OKcolor = GUICtrlCreateButton("OK", 90, 80, 75, 25)
$AbbrechenColor = GUICtrlCreateButton("Abbrechen", 175, 80, 75, 25)
GUISetState(@SW_SHOW, $textcolorfenster)
While 1
$textcolorfenster = GUIGetMsg()
Switch $textcolorfenster
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
ExitLoop
Case $OKcolor
$schrift_OK = GUICtrlRead($schrift)
GUICtrlSetData($text, GUICtrlread($text) & '[color="' & $schrift_OK & '"]' & GUICtrlread($textcolor) & '[/color]')
GUISetState(@SW_HIDE)
ExitLoop
Case $AbbrechenColor
GUISetState(@SW_HIDE)
ExitLoop
EndSwitch
WEnd
Case $b
GUICtrlSetData($text, GUICtrlread($text) & "[b]")
Case $i
GUICtrlSetData($text, GUICtrlread($text) & "[i]")
Case $u
GUICtrlSetData($text, GUICtrlread($text) & "[u]")
Case $d
GUICtrlSetData($text, GUICtrlread($text) & "[-]")
Case $http
global $text_http_fenster = GUICreate("URL des Links:", 350, 120)
GUICtrlCreateLabel("Geben sie bitte die URL des Links ein.", 30, 20)
$text_url = GUICtrlCreateInput("", 30, 45, 290, 23)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
$OK_url = GUICtrlCreateButton("OK", 90, 80, 75, 25)
$Abbrechen_URL = GUICtrlCreateButton("Abbrechen", 175, 80, 75, 25)
GUISetState(@SW_SHOW, $text_http_fenster)
While 1
$text_http_fenster = GUIGetMsg()
Switch $text_http_fenster
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
ExitLoop
Case $OK_url
GUISetState(@SW_HIDE)
global $text_http_fenster_2 = GUICreate("Name des Links:", 350, 120)
GUICtrlCreateLabel("Geben sie bitte den Namen des Links ein.", 30, 20)
$text_url_2 = GUICtrlCreateInput("", 30, 45, 290, 23)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
$OK_url_2 = GUICtrlCreateButton("OK", 90, 80, 75, 25)
$Abbrechen_URL_2 = GUICtrlCreateButton("Abbrechen", 175, 80, 75, 25)
GUISetState(@SW_SHOW, $text_http_fenster_2)
While 2
$text_http_fenster_2 = GUIGetMsg()
Switch $text_http_fenster_2
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
ExitLoop "2"
Case $OK_url_2
GUICtrlSetData($text, GUICtrlread($text) & '' & GUICtrlread($text_url_2) & '')
GUISetState(@SW_HIDE)
ExitLoop "2"
Case $Abbrechen_URL_2
GUISetState(@SW_HIDE)
ExitLoop "2"
EndSwitch
WEnd
Case $Abbrechen_URL
GUISetState(@SW_HIDE)
ExitLoop
EndSwitch
WEnd
Case $at
global $text_at_fenster = GUICreate("Eingabe der Mailadresse:", 350, 120)
GUICtrlCreateLabel("Geben sie bitte die Mailadresse ein.", 30, 20)
$text_at = GUICtrlCreateInput("", 30, 45, 290, 23)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
$OK_at = GUICtrlCreateButton("OK", 90, 80, 75, 25)
$Abbrechen_at = GUICtrlCreateButton("Abbrechen", 175, 80, 75, 25)
GUISetState(@SW_SHOW, $text_at_fenster)
While 1
$text_at_fenster = GUIGetMsg()
Switch $text_at_fenster
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
ExitLoop
Case $OK_at
GUISetState(@SW_HIDE)
global $text_at_fenster_2 = GUICreate("Name der Mailadresse:", 350, 120)
GUICtrlCreateLabel("Geben sie bitte den Namen der Mailadresse ein.", 30, 20)
$text_at_2 = GUICtrlCreateInput("", 30, 45, 290, 23)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
$OK_at_2 = GUICtrlCreateButton("OK", 90, 80, 75, 25)
$Abbrechen_at_2 = GUICtrlCreateButton("Abbrechen", 175, 80, 75, 25)
GUISetState(@SW_SHOW, $text_at_fenster_2)
While 2
$text_at_fenster_2 = GUIGetMsg()
Switch $text_at_fenster_2
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
ExitLoop "2"
Case $OK_at_2
GUICtrlSetData($text, GUICtrlread($text) & '[mail="' & GUICtrlread($text_at) & '"]' & GUICtrlread($text_at_2) & '[/mail]')
GUISetState(@SW_HIDE)
ExitLoop "2"
Case $Abbrechen_at_2
GUISetState(@SW_HIDE)
ExitLoop "2"
EndSwitch
WEnd
Case $Abbrechen_at
GUISetState(@SW_HIDE)
ExitLoop
EndSwitch
WEnd
Case $img
global $text_img_fenster = GUICreate("URL des Bildes:", 350, 120)
GUICtrlCreateLabel("Geben sie bitte die URL des Bildes ein.", 30, 20)
$text_img = GUICtrlCreateInput("", 30, 45, 290, 23)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
$OK_img = GUICtrlCreateButton("OK", 90, 80, 75, 25)
$Abbrechen_img = GUICtrlCreateButton("Abbrechen", 175, 80, 75, 25)
GUISetState(@SW_SHOW, $text_img_fenster)
While 1
$text_img_fenster = GUIGetMsg()
Switch $text_img_fenster
Case $GUI_EVENT_CLOSE
GUISetState(@SW_HIDE)
ExitLoop
Case $OK_img
GUICtrlSetData($text, GUICtrlread($text) & '')
GUISetState(@SW_HIDE)
ExitLoop
Case $Abbrechen_img
GUISetState(@SW_HIDE)
ExitLoop
EndSwitch
WEnd
Case $code
GUICtrlSetData($text, GUICtrlread($text) & "
") Case $quote GUICtrlSetData($text, GUICtrlread($text) & "[quote]") Case $video global $text_video_fenster = GUICreate("URL des Videos:", 600, 120) GUICtrlCreateLabel("Geben sie die Adresse des Videos an. (Verfügbar für www.you-tube.com, www.myvideo.de und www.clipfish.de)", 30, 20) $text_video = GUICtrlCreateInput("", 30, 45, 540, 23) GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif") $OK_video = GUICtrlCreateButton("OK", 220, 80, 75, 25) $Abbrechen_video = GUICtrlCreateButton("Abbrechen", 300, 80, 75, 25) GUISetState(@SW_SHOW, $text_video_fenster) While 1 $text_video_fenster = GUIGetMsg() Switch $text_video_fenster Case $GUI_EVENT_CLOSE GUISetState(@SW_HIDE) ExitLoop Case $OK_video GUICtrlSetData($text, GUICtrlread($text) & '[video]' & GUICtrlread($text_video) & '[/video]') GUISetState(@SW_HIDE) ExitLoop Case $Abbrechen_video GUISetState(@SW_HIDE) ExitLoop EndSwitch WEnd Case $aktuTag ;GUICtrlSetData($text, GUICtrlread($text) & "") MsgBox(64, "Noch außer Funktion", "Die Funktion ist noch nicht im Script eingebunden." & @CRLF & "Ich bitte Sie um ein wenig gedult," & @CRLF & "ein Update wird so schnell es geht folgen.") Case $allTag $text_for_allTag = GUICtrlRead($text) $exist_b = StringRegExp($text_for_allTag, '\[b\]', 3) For $x = 0 to UBound($exist_b)-1 GUICtrlSetData($text, GUICtrlread($text) & "[/b]") Next $exist_i = StringRegExp($text_for_allTag, '\[i\]', 3) For $x = 0 to UBound($exist_i)-1 GUICtrlSetData($text, GUICtrlread($text) & "[/i]") Next $exist_u = StringRegExp($text_for_allTag, '\[u\]', 3) For $x = 0 to UBound($exist_u)-1 GUICtrlSetData($text, GUICtrlread($text) & "[/u]") Next $exist_d = StringRegExp($text_for_allTag, '\[-\]', 3) For $x = 0 to UBound($exist_d)-1 GUICtrlSetData($text, GUICtrlread($text) & "[/-]") Next $exist_code = StringRegExp($text_for_allTag, '\[code\]', 3) For $x = 0 to UBound($exist_code)-1 GUICtrlSetData($text, GUICtrlread($text) & "
[autoit]")
Next
$exist_quote = StringRegExp($text_for_allTag, '\[quote\]', 3)
For $x = 0 to UBound($exist_quote)-1
GUICtrlSetData($text, GUICtrlread($text) & "[/quote]")
Next
case $ok
[/autoit] [autoit][/autoit] [autoit] GUIctrlSetState($ok, $GUI_DISABLE)
GUIctrlSetState($text, $GUI_DISABLE)
;bla bla
exit
EndSwitch
WEnd
EndFunc
mein Problem ist nun das das Script zwar mittlerweile sogar die Anzahl der offenen Tags feststellt und dann nach drücken eines buttons alle entsprechenden tags zum schießen einsetzt jedoch ein erneutes drücken des Buttons macht das selbe wieder (zB: in der edit box steht ["b"] durch den Button "Alle Tags schließen" wird ein ["/b"] eingefügt
Fazit:
das Script muss nicht nur feststellen wie viele "Eröffnungstags" sich in der edit befinden, sondern auch wie viele von diesen schon geschlossen wurden
ich hoffe mein Problem wurde erkannt
wie kann ich das realisieren, oder würdet ihr es ganz anders machen?