Войти

Показать полную графическую версию : [решено] Текст строк разного цвета в GUICtrlCreateEdit


FlatX007
25-06-2009, 19:17
Как мне сделать строки разного цвета в GUICtrlCreateEdit инфа добавляется через _GUICtrlEdit_AppendText ... если вообще можно ...

т.е. это всё для этого (типа хвалюсь :spy: )

proxy
25-06-2009, 19:38
в этом GUICtrlCreateEdit », скорее всего ни как, но можно использовать RichText (http://www.autoitscript.com/forum/index.php?showtopic=79600&hl=RichEdit)

А для разноцветных label-ов, вот это (http://forum.ru-board.com/topic.cgi?forum=5&topic=29240&start=1430&limit=1&m=1#1)...

FlatX007
25-06-2009, 19:42
О круто .... значит всётаки можно, и исходный код программы не много коверкать. :kiss:

Creat0R
26-06-2009, 00:33
для разноцветных label-ов, вот это »
Да кстати, я UDF подправил, см. подробнее тут (http://www.autoitscript.com/forum/index.php?showtopic=96986).

FlatX007
09-07-2009, 14:44
А как через RichText поставить другой шрифт ... ошибку выдаёт

Creat0R
09-07-2009, 15:01
ошибку выдаёт »
Какую, и как пробовал?

FlatX007
09-07-2009, 15:26
#Include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <GuiRichEdit.au3>

$GUI = GUICreate("bye",700,500)

$hRichText = RichText_Create($GUI, 0, 0, 700, 500)
RichText_InsertText($hRichText, "Hello everybody")

GUISetState()

RichText_SetSel($hRichText, 6, 11); Pos 6 to 11 is 'every'
RichText_SetColor($hRichText, 0x0000FF, True); True = colorize selection, False = colorize all. !!! Color codes is BGR !!!
RichText_SetSel($hRichText, 0, 0); Set the selection to 0-0
RichText_SetFont($hRichText, "Comic Sans MS", $iSelec = True)
While 1
If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd

AutoIt\1.au3(15,56) : ERROR: $iSelec: undeclared global variable.
RichText_SetFont($hRichText, "Comic Sans MS", $iSelec =

proxy
09-07-2009, 15:29
это:
RichText_SetFont($hRichText, "Comic Sans MS", $iSelec = True)
замени на это:
RichText_SetFont($hRichText, "Comic Sans MS", true)


А ошибка, т.к. в функцию RichText_SetFont передаешь переменную $iSelec, и тут же присваиваешь ей значение True:
RichText_SetFont($hRichText, "Comic Sans MS", $iSelec = True) что AutoIt делать не умеет.

Т.е передовать необходимо либо переменную $iSelec:
RichText_SetFont($hRichText, "Comic Sans MS", $iSelec)
либо конкретное значение:
RichText_SetFont($hRichText, "Comic Sans MS", true)

Creat0R
09-07-2009, 15:36
FlatX007, Ты это серъёзно? :o

RichText_SetFont($hRichText, "Comic Sans MS", $iSelec = True)

Разве не заметно в чём тут проблема (подсказака: что-то лишнее в последнем параметре)?

FlatX007
09-07-2009, 15:39
proxy »

Ты думаеш я так непробовал :) (некто незапрещал методом Русского тыка)
пишу так :

RichText_SetFont($hRichText, "Comic Sans MS", True) - от этого шрифт в окне не меняется, как впрочем и так RichText_SetFont($hRichText, "Arial Black", True)

Creat0R
09-07-2009, 15:42
что AutoIt делать не умеет. »
Вообще-то умеет, в этом случае будет передан результат сравнения переменной $iSelec со значением True, но так как переменная не объявлена (в этом случае она просто взята из примера синтаксисиа :) ), будет вызвана ошибка.

И ещё, для того тобы шрифт присвоился выделенной части текста, эта строчку нужно поместить перед RichText_SetSel, а не после.

Ты думаеш я так непробовал »
А зачем тогда писать об ошибке? Если проблема в присвоении шрифта, то именно об этом и нужно спрашивать, а не о глупой ошибке которую заранее сам знаешь как решить.

FlatX007
16-08-2009, 23:42
Ну вот вроде я и до этого добрался , но всё равно ничего непонятно.

Вот функция , при добавлении текста последняя строчка оказывается с верху ... а мне нужно с низу и с автоскролом.
И с троки неполучаются разного цвета, все сразу окрашиваются в последний цвет... что надо сделать?

#Include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <GuiRichEdit.au3>

$GUI = GUICreate("bye",300,200)
$hRichText = RichText_Create($GUI, 0, 0, 300, 200)

GUISetState()

_Mu("11111111111111111" & @CRLF, 0x0000FF, "Arial Black")
Sleep(1000)
_Mu("22222222222222222" & @CRLF, 0xFF0000, "Arial Black")

While 1
If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
WEnd

Func _Mu($Text = 1, $Color = 1, $Font = 1)

RichText_InsertText($hRichText, $Text)
RichText_SetReadOnly($hRichText)
RichText_BkColor($hRichText, 0x000000)
RichText_SetSel($hRichText, 0, 1000)
RichText_SetColor($hRichText, $Color, True)
RichText_SetFont($hRichText, $Font, True)
RichText_SetSel($hRichText, 0, 0)

EndFunc

Creat0R
17-08-2009, 00:07
что надо сделать? »

#include <WindowsConstants.au3>
#include <GuiConstantsEx.au3>
#include <GuiRichEdit.au3>
;

$GUI = GUICreate("bye", 300, 200)
$hRichText = RichText_Create($GUI, 0, 0, 300, 200)

RichText_SetReadOnly($hRichText)
RichText_BkColor($hRichText, 0x000000)

GUISetState()

_Mu("11111111111111111" & @CRLF, 0x0000FF, "Arial Black")
Sleep(1000)
_Mu("22222222222222222" & @CRLF, 0xFF0000, "Arial Black")
Sleep(1000)
_Mu("33333333333333333" & @CRLF, 0x00FF00, "Arial Black")

While GUIGetMsg() <> $GUI_EVENT_CLOSE
WEnd

Func _Mu($sText = 1, $nColor = 1, $nFont = 1)
Local $iStart_Sel = StringLen(RichText_GetText($hRichText))
Local $iEnd_Sel = $iStart_Sel + StringLen($sText)

RichText_AppendText($hRichText, $sText)

RichText_SetSel($hRichText, $iStart_Sel, $iEnd_Sel)

RichText_SetColor($hRichText, $nColor, True)
RichText_SetFont($hRichText, $nFont, True)

RichText_SetSel($hRichText, $iEnd_Sel, $iEnd_Sel)
EndFunc

Yashied
17-08-2009, 02:17
...




© OSzone.net 2001-2012