Fragen

  • Weiß jemand ob man in einer Edit-Feld nur die Schriftfarbe einer bestimten Zeile ändern kann, und nicht im gannzen Edit-Feld? Und auch die Hintergrundfarbe?
    Beispiel:
     Zeile 1
    Zeile 2
    Zeile 3

    mfg. Jam00

  • Wie schon gesagt, du brauchst ein RichEdit. Hab dir mal eine Beispiel-Funktion geschrieben: Für die Hintergrundfarbe musst du es genau so machen, nur dafür _GUICtrlRichEdit_SetBkColor verwenden

    Spoiler anzeigen
    [autoit]


    #include <GuiRichEdit.au3>

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

    $hgui = GUICreate("Rich Edit Example", 500, 550)

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

    $h_RichEdit = _GUICtrlRichEdit_Create($hgui, 10, 10, 480, 420, BitOR($ES_WANTRETURN, $WS_HSCROLL, $ES_SUNKEN, $ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))

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

    $lResult = _SendMessage($h_RichEdit, $EM_SETEVENTMASK, 0, BitOR($ENM_REQUESTRESIZE, $ENM_LINK, $ENM_DROPFILES, $ENM_KEYEVENTS, $ENM_MOUSEEVENTS))

    $button = GUICtrlCreateButton("Exit", 100, 460, 100, 25)

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

    _GUICtrlRichEdit_SetText($h_RichEdit,"Hi!" & @CRLF & "Line2" & @CRLF & "Line3")
    GUISetState()

    _GUICtrlRichEdit_SetSel($h_RichEdit, 7, 12)

    _GUICtrlRichEdit_SetLineColor($h_RichEdit,0xFF0000,0)
    _GUICtrlRichEdit_SetLineColor($h_RichEdit,0x00FF00,1)
    _GUICtrlRichEdit_SetLineColor($h_RichEdit,0x0000FF,2)

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

    While 1
    $msg = GUIGetMsg()

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

    Select

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

    Case $msg = $GUI_EVENT_CLOSE Or $msg = $button ; controls commands don't work here if using wm_command
    Exit
    EndSelect
    WEnd

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

    ;Prog@ndy
    Func _GUICtrlRichEdit_SetLineColor($h_RichEdit,$Color,$Line=-1)
    ; Start der Zeile holen
    Local $LineStart = _GUICtrlRichEdit_LineIndex($h_RichEdit,$Line)
    ; Länge der Zeile holen
    Local $LineLength = _GUICtrlRichEdit_LineLength($h_RichEdit,$LineStart)
    ; alte Markierung speichern
    Local $OldSel = _GUICtrlRichEdit_GetSelection($h_RichEdit)
    ; Zeile markieren
    _GUICtrlRichEdit_SetSel($h_RichEdit,$LineStart,$LineStart+$LineLength,1)
    ; Farbe für Markierung setzen
    _GUICtrlRichEdit_SetFontColor($h_RichEdit,__GCR_ColorConvert($Color),True)
    ; alte markierung wieder herstellen
    _GUICtrlRichEdit_SetSel($h_RichEdit,$OldSel[0],$OldSel[1],0)
    EndFunc

    [/autoit]