1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. AutoTim

Beiträge von AutoTim

  • _ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

    • AutoTim
    • 13. März 2015 um 23:56

    Wow, danke für die schnelle Hilfe !!!
    Ich werde das direkt probieren.

    Kannst du mir die Return $GUI_RUNDEFMSG erläutern ?

    Tim

  • _ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

    • AutoTim
    • 13. März 2015 um 23:42

    Danke für deine Antwort und deine Mühe! Ich würde mich sehr über eine Antwort von dir freuen, da ich an dieser Stelle überfordert bin. Da kann ich machen was ich will..
    Ich freue mich schon rießig auf deine Erkenntnisse !

    Grüße Tim

  • _ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

    • AutoTim
    • 13. März 2015 um 23:25

    Danke, ich freue mich schon auf deine Antwort !

    LG

  • _ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

    • AutoTim
    • 13. März 2015 um 23:16

    Hier im Anhang noch die Syntax.ini, hatte ich vergessen.
    Bitte aus .txt -> .ini machen

  • _ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

    • AutoTim
    • 13. März 2015 um 23:05

    Danke,
    dein Beispiel funktioniert super. Wenn ich es in mein Script rein kopiere, geht es nicht mehr...
    Hier mein Script. Meine Version ist die 3.3.12.

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=SQL.ico
    #AutoIt3Wrapper_Outfile=SQL Highlighter.exe
    #AutoIt3Wrapper_Res_Fileversion=2.0.0.13
    #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #comments-start
    TODO:

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

    #comments-end

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

    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include <array.au3>
    #include <misc.au3>

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

    global $count = 0
    global $iCpStart = 200
    global $merker = 0
    global $size
    global $inhalt
    global $titel = "SQL Syntax Highlighter"
    global $sBuffer
    global $laengeWort
    global $ininame = "syntax.ini"
    global $inipfad = @TempDir&"\"&$ininame
    global $version = FileGetVersion(@ScriptFullPath)

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

    FileInstall("syntax.ini",$inipfad,1)

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

    if not FileExists(@TempDir&"\"&$ininame) then
    msgbox(16,"Fehler","Die Initialisierungsdatei konnte nicht gefunden werden:"&@CRLF&$inipfad)
    Exit
    EndIf

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

    Global $Inisectionnames = IniReadSectionNames($inipfad)

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

    $sektion1 = IniReadSection ($inipfad, $Inisectionnames[1] )
    $sektion2 = IniReadSection ($inipfad, $Inisectionnames[2] )
    $sektion3 = IniReadSection ($inipfad, $Inisectionnames[3] )
    $sektion4 = IniReadSection ($inipfad, $Inisectionnames[4] )
    $sektion5 = IniReadSection ($inipfad, $Inisectionnames[5] )
    $sektion6 = IniReadSection ($inipfad, $Inisectionnames[6] )
    $sektion7 = IniReadSection ($inipfad, $Inisectionnames[7] )
    $sektion8 = IniReadSection ($inipfad, $Inisectionnames[8] )
    $sektion9 = IniReadSection ($inipfad, $Inisectionnames[9] )
    $sektion10 = IniReadSection ($inipfad,$Inisectionnames[10] )

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

    global $syn1[$sektion1[0][0]]
    for $durch = 0 to $sektion1[0][0]-1
    $syn1[$durch] = $sektion1[$durch+1][1]
    Next
    global $syn2[$sektion2[0][0]]
    for $durch = 0 to $sektion2[0][0]-1
    $syn2[$durch] = $sektion2[$durch+1][1]
    Next
    global $syn3[$sektion3[0][0]]
    for $durch = 0 to $sektion3[0][0]-1
    $syn3[$durch] = $sektion3[$durch+1][1]
    Next
    global $syn4[$sektion4[0][0]]
    for $durch = 0 to $sektion4[0][0]-1
    $syn4[$durch] = $sektion4[$durch+1][1]
    Next
    global $syn5[$sektion5[0][0]]
    for $durch = 0 to $sektion5[0][0]-1
    $syn5[$durch] = $sektion5[$durch+1][1]
    Next
    global $syn6[$sektion6[0][0]]
    for $durch = 0 to $sektion6[0][0]-1
    $syn6[$durch] = $sektion6[$durch+1][1]
    Next
    global $syn7[$sektion7[0][0]]
    for $durch = 0 to $sektion7[0][0]-1
    $syn7[$durch] = $sektion7[$durch+1][1]
    Next
    global $syn8[$sektion8[0][0]]
    for $durch = 0 to $sektion8[0][0]-1
    $syn8[$durch] = $sektion8[$durch+1][1]
    Next
    global $syn9[$sektion9[0][0]]
    for $durch = 0 to $sektion9[0][0]-1
    $syn9[$durch] = $sektion9[$durch+1][1]
    Next
    global $syn10[$sektion10[0][0]]
    for $durch = 0 to $sektion10[0][0]-1
    $syn10[$durch] = $sektion10[$durch+1][1]
    Next

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

    $hMainGUI = GUICreate($titel, 700, 400, -1, -1,$WS_SIZEBOX + $WS_SYSMENU)
    $filemenu = GUICtrlCreateMenu("&Datei")
    $fileitem_offnen = GUICtrlCreateMenuitem("Ö&ffnen", $filemenu)
    $fileitem_save = GUICtrlCreateMenuitem("&Speichern", $filemenu)
    $highlightingmenu = GUICtrlCreateMenu("Highlighting")
    $fileitem_check = GUICtrlCreateMenuitem("Aktualisieren", $highlightingmenu)
    $fileitem_showsyntax = GuictrlCreateMenuItem("Schlüsselwörter",$highlightingmenu)
    $infomenu = GUICtrlCreateMenu("Hilfe")
    $fileitem_info = GUICtrlCreateMenuitem("Über SQL Highlighter", $infomenu)
    $hRichEdit = _GUICtrlRichEdit_Create($hMainGUI, "", 0, 0, 700, 380, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    GUIRegisterMsg($WM_SIZE,"WM_SIZE")
    GUISetState()

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

    While True

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

    $aktuelle_l = StringLen(_GUICtrlRichEdit_GetText($hRichEdit))
    sleep(50)
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    $aktuelle_2 = StringLen(_GUICtrlRichEdit_GetText($hRichEdit))
    if $aktuelle_l <> $aktuelle_2 then space()

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

    $iMsg = GUIGetMsg()
    Select
    Case $iMsg = $GUI_EVENT_CLOSE
    _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes
    Exit
    Case $iMsg = $fileitem_save
    save()
    Case $iMsg = $fileitem_offnen
    open()
    Case $iMsg = $fileitem_check
    prufung(1)
    Case $iMsg = $fileitem_info
    about()
    Case $iMsg = $fileitem_showsyntax
    showsyn()
    EndSelect
    WEnd

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

    func space()

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

    If WinGetState($titel) = 15 then

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

    $arr = _GUICtrlRichEdit_GetSel($hRichEdit) ;schauen ob nichts mrkiert ist
    if $arr[0] == $arr[1] then
    $letztes = $arr[0]

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

    $iCpStart = _GUICtrlRichEdit_GetCharPosOfPreviousWord($hRichEdit, $letztes) ;gibt startposition meines letztes wortes aus
    ;~ ConsoleWrite($iCpStart&"-"&$arr&@CRLF)
    $wort = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $iCpStart, $letztes) ;text in der position auslesen

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

    ;=Überprüfungen um die Abfrage zu verkürzen
    $laengeWort = stringlen($wort)

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

    ;======Wenn erster Buchstabe ein ' dann nur den Text verändern
    $ersterBuchstabe = StringLeft($wort,1)
    if ($ersterBuchstabe ="'") and ($laengeWort > 1) then
    $wort = StringRight($wort,$laengeWort-1)
    $iCpStart = $iCpStart + 1
    endif
    ;======Wenn erster Buchstabe ein ' dann nur den Text verändern

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

    $wort = StringReplace($wort," ","")
    $wort = StringReplace($wort,");",";")
    $wort = StringReplace($wort,"';",";")
    $wort = StringReplace($wort,'";',";")
    $wort = StringReplace($wort,'")',")")
    $wort = StringReplace($wort,",'","'")
    ;~ MsgBox(0,"",$wort)
    ConsoleWrite($wort&@CRLF)

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

    ;===================================================================================
    If $laengeWort < 20 then ;abfrage wann überhaupt gehighlightet wird

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

    if _ArraySearch($syn1,$wort) <> -1 Then ;Ob das Wort in liste synb ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn1[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn2,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn2[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn3,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn3[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn4,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn4[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn5,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn5[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif StringIsDigit($wort) Then ;Obb das Wort eine Zahl ist
    ;~ MsgBox(0,"","asd")
    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn6[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn7,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn7[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn8,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn8[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn9,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn9[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    elseif _ArraySearch($syn10,$wort) <> -1 Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $syn10[0]) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1

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

    else;wenn das wort nicht drinnen ist, wird wieder zurück geschrieben
    if $merker == 0 then
    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, 0x000000) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    EndIf
    endif
    ;~ MsgBox(0,"","nochmal")
    EndIf ;Ende der Abfrage ob gehighlightet wird
    $merker = 0 ;zurücksetzten bevor es erneut durch geht
    ;===================================================================================

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

    Else ; = error meldung wenn etwas markiert
    MsgBox(16,"not","Muss das sein ?"&@CRLF&"Fehlernummer: 0x01")
    endif

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

    EndIf
    EndFunc

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

    Func prufung($quelle)
    if $quelle = 1 then $inhalt = _GUICtrlRichEdit_GetText($hRichEdit)

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

    $zeichenzahl = StringLen($inhalt)
    ;~ MsgBox(0,"",$zeichenzahl)

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

    for $zahler = 0 to $zeichenzahl

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $zahler,$zahler) ;text anfang setzten
    $zeichen = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $zahler,$zahler+1)
    ConsoleWrite($zeichen)
    if $zeichen <> " " then space() ;Wenn das Zeichen ein Leerzeichen ist, wird nicht geprüft
    Next

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

    EndFunc

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

    Func dataopen()

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

    ;==========Daten rein laden
    _GUICtrlRichEdit_SetText($hRichEdit,$inhalt)
    _GUICtrlRichEdit_SetSel($hRichEdit, 0,-1) ;text markieren
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    ;==========Daten rein laden

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

    prufung(0)

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

    EndFunc

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

    Func about()
    MsgBox(64,"Über " & $titel,"Autor:"&@TAB&"Tim Erler"&@CRLF&"Erstellt:"&@TAB&"11.03.2015"&@CRLF&"Version:"&@TAB&$version&@CRLF&@CRLF&"Info:"&@CRLF&$titel&" bietet die Möglichkeit die SQL Syntax farblich hervorzuheben um Code komfortabler zu schreiben und Fehler schneller zu erkennen.");

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

    EndFunc

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

    func WM_SIZE($hWnd, $iMsg, $wParam, $lParam)
    local $iWidth = _WinAPI_LoWord($lParam)
    local $iHeight = _WinAPI_HiWord($lParam)
    if WinGetState($titel) = 15 then _WinAPI_MoveWindow($hRichEdit, 2, 2, $iWidth-4,$iHeight - 4)
    Return 0
    EndFunc

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

    func save()
    $path = FileSaveDialog("Speicherort wählen",@DesktopDir,"SQL Script (*.sql)")
    if @error then
    Else
    if (FileWrite($path&".sql",_GUICtrlRichEdit_GetText($hRichEdit)) == 0) then
    MsgBox(16,"Fehler","Es ist ein Fehler beim Speichern der Datei aufgetreten!")
    Else
    MsgBox(64,"Speichern","SQL-Datei wurde erfolgreich gespeichert.")
    Endif
    EndIf
    EndFunc

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

    func open()
    $path = FileOpenDialog("Datei öffnen",@DesktopDir,"SQL Script (*.sql)|Text Datei (*.txt)")
    if @error then
    Else
    $inhalt = FileRead($path)
    if @error then
    MsgBox(16,"Fehler","Es ist ein Fehler beim Speichern der Datei aufgetreten!")
    Else
    dataopen()
    Endif
    EndIf
    EndFunc

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

    func showsyn()

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

    Local $completearray[28][10]

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

    for $i1 = 0 to UBound($syn1)-1
    $completearray[$i1][0] = $syn1[$i1]
    Next

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

    for $i1 = 0 to UBound($syn2)-1
    $completearray[$i1][1] = $syn2[$i1]
    Next

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

    for $i1 = 0 to UBound($syn3)-1
    $completearray[$i1][2] = $syn3[$i1]
    Next

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

    for $i1 = 0 to UBound($syn4)-1
    $completearray[$i1][3] = $syn4[$i1]
    Next

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

    _ArrayDisplay($aArr,"Schlüsselwörter",Default,32,Default,$Inisectionnames[1]&"|"&$Inisectionnames[2]&"|"&$Inisectionnames[3]&"|"&$Inisectionnames[4])

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

    EndFunc

    [/autoit]
  • _ArrayDisplay -> Warum ist die Darstellung so schrecklich ?

    • AutoTim
    • 13. März 2015 um 22:33

    Hallo,
    ich habe ein Problem mit _ArrayDisplay.

    Mein Aufruf sieht so aus:

    [autoit]

    _ArrayDisplay($completearray,"Schlüsselwörter",Default,32,Default,"text1|text2|text3|text4"

    [/autoit]


    und meine Ausgabe so: [Blockierte Grafik: http://img4.fotos-hochladen.net/thumbnail/array8n1j4eghky_thumb.jpg]

    könnt Ihr mir sagen was ich falsch mache ? Ich würde gerne die das Listenelement auf der ganzen GUI sehen, und nicht nur 100x100 Pixel :)

    Grüße

  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 20:22

    Das Script welches ich geschrieben habe funktioniert soweit schon nicht ganz schlecht ;)
    Nur würde ich es gerne beim Einlesen noch etwas geschwindigkeitsoptimiert haben wollen, aber dafür bin ich wohl zu doof :)

    Einen Bug den ich nicht rausbekomme, der aber manchmal da ist, ist wenn ich mit enter in eine neue Zeile gehe, dann ist meine Schrift plötzlich wieder kleiner und nicht wie ich sie von anfang an gesetzt habe. Das verwirrt mich. Es passiert eben nur manchmal.. Das Highlighting geht dann aber dennoch..

    Spoiler anzeigen
    [autoit]

    #comments-start
    TODO:

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

    #comments-end

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

    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>
    #include <WinAPI.au3>
    #include <array.au3>
    #include <misc.au3>

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

    global $count = 0
    global $iCpStart = 200
    global $merker = 0
    global $size = 6
    global $inhalt
    global $titel = "SQL Syntax Highlighter"
    global $sBuffer

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

    global $color1 = 0xc6178a
    global $syn1[$size]
    $syn1[0] = "SELECT"
    $syn1[1] = "FROM"
    $syn1[2] = "WHERE"
    $syn1[3] = "ORDER"
    $syn1[4] = "BY"

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

    global $color2 = 0x66c051
    global $syn2[$size]
    $syn2[0] = "OR"
    $syn2[1] = "AND"
    $syn2[2] = "NOT"

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

    global $color3 = 0xde635a
    global $syn3[$size]
    $syn3[0] = "IN"
    $syn3[1] = "OUTER"
    $syn3[2] = "INNER"
    $syn3[3] = "JOIN"
    $syn3[4] = "LIKE"
    $syn3[5] = "BETWEEN"

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

    global $color4 = 0x636363
    global $syn4[$size]
    $syn4[0] = "IS"
    $syn4[1] = "NULL"
    $syn4[2] = "="
    $syn4[3] = "<"
    $syn4[4] = ">"

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

    global $color5 = 0x0034f6
    global $syn5[$size]
    $syn5[0] = "("
    $syn5[1] = ")"
    $syn5[2] = ";"
    $syn5[3] = '"'
    $syn5[4] = "'"

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

    $hGui = GUICreate($titel, 700, 460, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 680, 400, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    $save = GUICtrlCreateButton("&Speichern",10,420,100,30)
    $open = GUICtrlCreateButton("Ö&ffnen",120,420,100,30)
    $labeltim = GUICtrlCreateLabel("(c) Tim Erler",630,430,80,20)
    GUISetState()

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

    ;~ HotKeySet(" ","space")

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

    While True

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

    $aktuelle_l = StringLen(_GUICtrlRichEdit_GetText($hRichEdit))
    sleep(50)
    $aktuelle_2 = StringLen(_GUICtrlRichEdit_GetText($hRichEdit))
    if $aktuelle_l <> $aktuelle_2 then space()

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

    $iMsg = GUIGetMsg()
    Select
    Case $iMsg = $GUI_EVENT_CLOSE
    _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes

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

    Exit
    Case $iMsg = $save
    if FileWrite(FileOpenDialog("Speicherort wählen",@DesktopDir,"Textdateien (*.txt)")&".txt",_GUICtrlRichEdit_GetText($hRichEdit)) Then
    MsgBox(0,"Speichern","Wurde erfolgreich gespeichert")
    Else
    MsgBox(0,"Speichern","Fehler beim Speichern")
    EndIf
    Case $iMsg = $open
    $inhalt = FileRead(FileOpenDialog("Datei öffnen",@DesktopDir,"Textdateien (*.txt)"))
    if @error = 1 Then
    MsgBox(0,"Speichern","Fehler beim Öffnen")
    Else
    dataopen()
    EndIf
    EndSelect
    WEnd

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

    func space()

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

    If WinGetState($titel) = 15 then

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

    $arr = _GUICtrlRichEdit_GetSel($hRichEdit) ;schauen ob nichts mrkiert ist
    if $arr[0] == $arr[1] then
    $letztes = $arr[0]

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

    $iCpStart = _GUICtrlRichEdit_GetCharPosOfPreviousWord($hRichEdit, $letztes) ;gibt startposition meines letztes wortes aus
    ConsoleWrite($iCpStart&"-"&$arr&@CRLF)
    $wort = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $iCpStart, $letztes) ;text in der position auslesen
    $wort = StringReplace($wort," ","")
    $wort = StringReplace($wort,");",";")
    $wort = StringReplace($wort,"';",";")
    $wort = StringReplace($wort,'";',";")
    ;~ MsgBox(0,"",$wort)
    ConsoleWrite($wort&@CRLF)

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

    ;===================================================================================
    for $counter = 0 to $size-1 ;Eines minus weil array bei 0 beginnt
    if $wort = $syn1[$counter] Then ;Ob das Wort in liste synb ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $color1) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1
    ExitLoop
    elseif $wort = $syn2[$counter] Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $color2) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1
    ExitLoop
    elseif $wort = $syn3[$counter] Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $color3) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1
    ExitLoop
    elseif $wort = $syn4[$counter] Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $color4) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1
    ExitLoop
    elseif $wort = $syn5[$counter] Then ;Obb das Wort in liste synr ist
    ;~ MsgBox(0,"","asd")

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $color5) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    ;~ MsgBox(0,"","fertig")
    $merker = 1
    ExitLoop
    else;wenn das wort nicht drinnen ist, wird wieder zurück geschrieben
    if $merker == 0 then
    ;~ MsgBox(0,"","neu")
    _GUICtrlRichEdit_SetSel($hRichEdit, $iCpStart, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, 0x000000) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    _GUICtrlRichEdit_SetSel($hRichEdit, $letztes+1, $letztes+1) ;text markieren
    EndIf
    endif
    ;~ MsgBox(0,"","nochmal")
    next
    $merker = 0 ;zurücksetzten bevor es erneut durch geht
    ;===================================================================================

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

    Else ; = error meldung wenn etwas markiert
    MsgBox(16,"not","kot")
    endif

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

    Else ;wenn das Fenster nicht im Vordergrund ist
    HotKeySet(" ")
    Send("{SPACE}")
    HotKeySet(" ","space")
    EndIf
    EndFunc

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

    Func dataopen()

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

    ;==========Daten rein laden
    _GUICtrlRichEdit_SetText($hRichEdit,$inhalt)
    _GUICtrlRichEdit_SetSel($hRichEdit, 0,-1) ;text markieren
    _GUICtrlRichEdit_SetFont($hRichEdit, 15, "CALIBRI")
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    ;==========Daten rein laden

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

    $zeichenzahl = StringLen($inhalt)
    ;~ MsgBox(0,"",$zeichenzahl)

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

    for $zahler = 0 to $zeichenzahl

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

    _GUICtrlRichEdit_SetSel($hRichEdit, $zahler,$zahler) ;text anfang setzten
    $zeichen = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $zahler,$zahler+1)
    ConsoleWrite($zeichen)
    space()
    Next

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

    EndFunc

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

    Noch eine getrennte Frage für sich. Kann ich die Textfarbe ändern, ohne den Text markieren zu müssen ?

    [autoit]

    _GUICtrlRichEdit_SetSel($hRichEdit, $erstes, $letztes) ;text markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, $color1) ;die Farbe verändern

    [/autoit]
  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 19:43

    Danke für die schnelle Antwort!

    Nun kann ich das Script ausführen :)
    Aber wenn ich autoit eingebe, bekomme ich keinen highlight ;(
    Bei mir ist die ganze Schrift schwarz.

    Tim

  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 19:32

    Danke für eure Antwort ! Wird Zeit das ich mir die aktuelle besorgen :)
    So, noch eine Sache, dann müsste es laufen.

    ERROR: RichBox_WndProc() called by a previous line with 0 arg(s). Min = 4. First previous line calling this Func is 9

    Tim

  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 19:13

    Danke, habe ich gemacht. Es gibt noch Syntaxfehler in Zeile 30 und 47. Was meinst du in Zeile 47 mit[0] ?

  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 19:04

    Danke für eure Antworten. Ich habe scheinbar keine WinAPIConstants.au3
    Könnte die jemand uploaden ? Google spukt mir nichts aus ;(

    Tim

  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 17:54

    Ich bin noch dabei einen eigenen Editor mit Syntaxhighlightung zu schreiben, und würde die Funktion zur Überprüfung ob ein Wort nun gehighlightet wird nach der Eingabe ausführen.
    zurzeit habe ich nur die Leertaste. Aber das ist nicht ganz perfekt so, weil es möglich ist die Syntax ohne Leerzeichen zu schreiben.

    Tim

  • Funktion auführen, egal welche Taste gedrückt wird

    • AutoTim
    • 10. März 2015 um 17:45

    Hallo,
    ich würde gerne eine Funktion aufrufen, wenn irgendeine Taste der Tastatur gedrückt wird.
    Diese Taste möchte ich der Funktion noch mit übergeben.
    Es spielt keine Frage ob es klein oder groß geschrieben ist.

    Nun könnte ich zich Hotkeys setzten oder _IsPressed abfragen aufbauen.

    Gibt es eine elegantere Lösung ?


    So stelle ich mir das vor:

    Spoiler anzeigen
    [autoit]


    while 1
    ;hier die unbekannte funktion
    wend

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

    func aufruf($key)
    ...
    endfunc

    [/autoit]

    Grüße Tim

  • Eigene Syntax Highlighting

    • AutoTim
    • 10. März 2015 um 17:40

    Danke euch beiden !

    Mittlerweile habe ich eine gute Lösung gefunden. Ich poste hier noch den fertigen Code, sobald das Projekt fertig ist. Jetzt gibt es ertmal noch eine andere Frage :)

    Grüße

  • Buch

    • AutoTim
    • 10. März 2015 um 13:03

    DANKE :)

  • Eigene Syntax Highlighting

    • AutoTim
    • 10. März 2015 um 12:44

    Hey, das ist ja super. Habe mich eben ein wenig damit befasst.
    Das Problem das ich habe, das die meisten Funktionen auf Markierungen reagieren. Gibt es die Möglichkeit, die Markierungen zu umgehen ?

    Ich habe hier einmal ein Code Beispiel geschrieben, dass mir das Wort 'test' blau einfärben soll.
    Würde mich freuen wenn ihr mir einen Tipp geben könntet:

    [autoit]

    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $hGui = GUICreate("HL", 700, 500, -1, -1)
    $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 10, 10, 680, 400, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    GUISetState()

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

    While True
    $iMsg = GUIGetMsg()
    Select
    Case $iMsg = $GUI_EVENT_CLOSE
    _GUICtrlRichEdit_Destroy($hRichEdit) ; needed unless script crashes
    Exit

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

    EndSelect

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

    $suchwort = "test"
    $inhalt = _GUICtrlRichEdit_GetText($hRichEdit) ;Inhalt auslesen
    $position = StringInStr($inhalt,$suchwort) ;das Suchwort suchen

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

    ;~ MsgBox(0,"",$position)
    if $position > 0 then ;wenn ein Suchwort gefunden ist
    _GUICtrlRichEdit_SetSel($hRichEdit, $position-1, StringLen($suchwort)+$position-1) ;das Wort markieren
    _GUICtrlRichEdit_SetCharColor($hRichEdit, 0xFF0000) ;die Farbe verändern
    _GUICtrlRichEdit_Deselect($hRichEdit) ; die Markierung aufheben
    EndIf

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

    WEnd

    [/autoit]
  • Eigene Syntax Highlighting

    • AutoTim
    • 10. März 2015 um 11:40

    Hallo Ihr Lieben,

    ich würde gerne ein kleines Script schreiben, in dem ein Inputfeld vorhanden ist, welches vorher definierte Wörter farblich hervorhebt.
    Soweit ich weis gibt es aber keine Möglichkeit einzelne Wörter zu formatieren sondern nur der gesamte Text, wie mit z.B. Guictrlfont...

    Wie kann ich mein Vorhaben umsetzten ? GDI ?

    Danke für Ideen :)

    Tim

  • "Lebensanzeige" aus Spiel auslesen - vibrierende Tastatur :)

    • AutoTim
    • 2. März 2015 um 18:59

    Hallo Ihr Lieben,

    ich würde gerne aus einem Spiel das aktuelle Leben auslesen. Es handelt sich um "Creativerse". Es gibt eine rote Lebensanzeige, allerdings würde ich viel lieber direkt auf die Werte zugreifen.

    Nein, ich will da nichts beschreiben oder pfuschen, ich will meine Tastatur aufrüsten, und dieser die Fähigkeit geben zu vibrieren wenn ich im Spiel Schaden nehme.
    Hardwaremäßig ist das kein Problem für mich, nur müsste ich irgendwie an die Lebensdaten kommen.

    Das spiel basiert auf Visual C++ und Microsoft Net Framework 4.5. Kann man damit schon etwas anfangen ?

    Vielen Dank für kreative Antworten!

    Grüße Tim

  • Buch

    • AutoTim
    • 2. März 2015 um 18:53

    Leider sind die Links down. Gibt es die Bücher noch ?

    Grüße

  • _GUICtrlStatusBar_SetBkColor Funktioniert nicht

    • AutoTim
    • 19. Januar 2015 um 00:01

    Vielen Dank. Schade das man es über diesen "Umweg" machen muss.

    Einen Schönen Abend !

    Grüße Tim

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™