Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Текст строк разного цвета в GUICtrlCreateEdit (http://forum.oszone.net/showthread.php?t=143493)

FlatX007 25-06-2009 19:17 1151671

Текст строк разного цвета в GUICtrlCreateEdit
 
Как мне сделать строки разного цвета в GUICtrlCreateEdit инфа добавляется через _GUICtrlEdit_AppendText ... если вообще можно ...

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

proxy 25-06-2009 19:38 1151691

в этом
Цитата:

Цитата FlatX007
GUICtrlCreateEdit »

, скорее всего ни как, но можно использовать RichText

А для разноцветных label-ов, вот это...

FlatX007 25-06-2009 19:42 1151696

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

Creat0R 26-06-2009 00:33 1151931

Цитата:

Цитата proxy
для разноцветных label-ов, вот это »

Да кстати, я UDF подправил, см. подробнее тут.

FlatX007 09-07-2009 14:44 1162986

А как через RichText поставить другой шрифт ... ошибку выдаёт

Creat0R 09-07-2009 15:01 1162998

Цитата:

Цитата FlatX007
ошибку выдаёт »

Какую, и как пробовал?

FlatX007 09-07-2009 15:26 1163012

Код:

#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 1163014

это:
Цитата:

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 1163017

FlatX007, Ты это серъёзно? :o

Код:

RichText_SetFont($hRichText, "Comic Sans MS", $iSelec = True)
Разве не заметно в чём тут проблема (подсказака: что-то лишнее в последнем параметре)?

FlatX007 09-07-2009 15:39 1163020

Цитата:

Цитата proxy
proxy »

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

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

Creat0R 09-07-2009 15:42 1163025

Цитата:

Цитата proxy
что AutoIt делать не умеет. »

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

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

Цитата:

Цитата FlatX007
Ты думаеш я так непробовал »

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

FlatX007 16-08-2009 23:42 1195210

Ну вот вроде я и до этого добрался , но всё равно ничего непонятно.

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

Код:

#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 1195229

Цитата:

Цитата FlatX007
что надо сделать? »

Код:

#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 1195287

...


Время: 23:39.

Время: 23:39.
© OSzone.net 2001-