forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PureBasic (http://forum.boolean.name/forumdisplay.php?f=90)
-   -   Редактор (http://forum.boolean.name/showthread.php?t=3987)

Пётр 23.07.2007 13:16

Редактор
 
Как можно быстро подсвечивать синтаксис в текстовом редакторе.Я использовал такой подход:Сначала выделяю слово, а затем изменяю его цвет с помоцью процедур
Код:

Procedure EditorGadgetLocate(Gadget,x,y,length)  ; Set cursor position
REG = GadgetID(Gadget)
CharIdx = SendMessage_(REG,#EM_LINEINDEX,y-1,0)
LLength = SendMessage_(REG,#EM_LINELENGTH,CharIdx,0)
If LLength >= x-1
CharIdx + x-1
EndIf
Range.CHARRANGE
Range\cpMin = CharIdx
Range\cpMax = CharIdx+length
SendMessage_(REG,#EM_EXSETSEL,0,Range)
EndProcedure

Procedure EditorGadgetColor(Gadget, Color.l)
format.CHARFORMAT
format\cbSize = SizeOf(CHARFORMAT)
format\dwMask = #CFM_COLOR
format\crTextColor = Color
SendMessage_(GadgetID(Gadget), #EM_SETCHARFORMAT, #SCF_SELECTION, format)
EndProcedure

Этот способ работает, но есть несколько недостатков.Во первых, скорость подсвечивания низкая.Во вторых, текст начинает дрожать по горизонтали, если длина строки превышает ширину редактора.Может кто знает, как правильно подсвечивать синтаксис, ведь как-то это сделали в редакторе PB.

Chrono Syndrome 23.07.2007 16:26

Re: Редактор
 
Цитата:

Может кто знает, как правильно подсвечивать синтаксис, ведь как-то это сделали в редакторе PB.
Там, вообще-то, Scintilla используется. Стандартный RTE не предназначен для подобных задач.

Chrono Syndrome 23.07.2007 21:49

Re: Редактор
 
http://www.scintilla.org/

Пётр 26.10.2007 23:48

Re: Редактор
 
А где можно найти простой пример подсветки синтаксиса на этой Scintilla? (имеится в виду ДЛЛка Scintilla.dll из пурика).

С самой ДЛЛкой разобрался, даже сделал простой текстовый редактор на её основе.

Chrono Syndrome 28.10.2007 11:05

Re: Редактор
 
Единственное, что могу посоветовать: глянь исходники JaPBe.

Пётр 28.10.2007 16:05

Re: Редактор
 
Да смотрел я на них уже, от туда использовал файл "Scintilla.pbi" для своего редактора, но дальше дело не продвинулось.
Там слишком много файлов, запутался я в них.

Chrono Syndrome 02.11.2007 11:01

Re: Редактор
 
Цитата:

Сообщение от Пётр
Да смотрел я на них уже, от туда использовал файл "Scintilla.pbi" для своего редактора, но дальше дело не продвинулось.
Там слишком много файлов, запутался я в них.

Ну, попробуй спросить у автора.

Пётр 23.11.2007 15:27

Re: Редактор
 
Примеры можно найти здесь: http://pbasic.spb.ru/phpBB2/viewtopic.php?t=236

Chrono Syndrome 23.11.2007 15:30

Re: Редактор
 
Последовал моему совету или сам дошел) ?

Пётр 23.11.2007 16:48

Re: Редактор
 
Нашёл один пример, немного подумал и понял как это делается.

rodego 10.01.2008 15:54

Re: Редактор
 
"Лучше своё писать, чем другое ковырять" - если время и знания есть... Опыт то на дороге не валяеться...

Пётр 10.02.2008 14:15

Ответ: Редактор
 
Цитата:

"Лучше своё писать, чем другое ковырять" - если время и знания есть... Опыт то на дороге не валяеться
Согласитесь какой смысл писать сам редактор с нуля т. е. изобретать велостипед если есть неплохой готовый редактор в виде Dll-ки. Scintilla.dll . Кстати именно он используется в качестве редактора для пурика.
Я уже почти закончил прогу на его основе, получилось очень даже прилично, по крайней мере аналогов с русским интерфейсом нет.

gost6681 03.02.2009 06:24

Ответ: Редактор
 
Скажите пожайлуста, на ПуреБейсике ява-игры можно делать?

johnk 03.02.2009 13:15

Ответ: Редактор
 
Цитата:

Сообщение от gost6681 (Сообщение 96724)
Скажите пожайлуста, на ПуреБейсике ява-игры можно делать?

О боже, в перлы. Нет, нельзя.


Часовой пояс GMT +4, время: 06:27.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot