Page 14 of 20

Re: Редактор TextEdit

Posted: Tue Aug 04, 2015 1:37 pm
by Leency
Я столкнулся со стремной проблемой из-за которой не все пункты меню добавлены.

Если раскомментировать абсолютно валидный код, то приложение падает. Не понимаю причины - компилируется нормально, а при запуске падает.
Не достаточно памяти?

t_menu.inc

Code: Select all

sz_main_menu_File db 'Файл', 0
sz_main_menu_File_New  db 'Новый', 0
sz_main_menu_File_Open db 'Открыть', 0
sz_main_menu_File_Save db 'Сохранить', 0
sz_main_menu_File_Exit db 'Выход', 0

sz_main_menu_Changes db 'Изменения', 0
sz_main_menu_Changes_Undo  db 'Отмена', 0
sz_main_menu_Changes_Redo  db 'Повтор', 0

sz_main_menu_Buf db 'Буфер', 0
sz_main_menu_Buf_Cut   db 'Вырезать', 0
sz_main_menu_Buf_Copy  db 'Копировать', 0
sz_main_menu_Buf_Paste db 'Вставить', 0

; sz_main_menu_Search db 'Поиск', 0                                                      ; <-- если раскомментировать - падает
; sz_main_menu_Search_Text  db 'Поиск по тексту', 0
; sz_main_menu_Search_Keywords db 'Поиск в ключевых словах', 0

sz_main_menu_View  db 'Вид', 0
sz_main_menu_Veiw_UseSyntax   db 'Использовать подсветку систаксиса', 0
sz_main_menu_Veiw_ChooseSyntax   db 'Выбрать подсветку синтаксиса', 0
sz_main_menu_Veiw_LineBreak   db 'Показывать символ переноса строки', 0

sz_main_menu_Encoding db 'Кодировка', 0
sz_main_menu_Encoding_1251to866  db 'CP1251 ',0x1A,' CP866', 0
sz_main_menu_Encoding_866to1251 db 'CP866 ',0x1A,' CP1251', 0

Re: Редактор TextEdit

Posted: Tue Aug 04, 2015 9:48 pm
by Pathoswithin
Если раскомментировать абсолютно валидный код
То-есть эти переменные нигде не используются?
Вроде все адреса относительные, меня настораживает только расположение метки stacktop:

Re: Редактор TextEdit

Posted: Thu Aug 27, 2015 2:02 pm
by punk_joker
Кроме подпунктов меню "Файл" ничего не работает, при нажатии на кнопки тулбара все нормально.

Re: Редактор TextEdit

Posted: Tue Nov 17, 2015 2:03 am
by IgorA
rev 5918
Заметил что не работало сохранение файлов после ревизии 5643. Исправлено, меню тут было не причем. Просто при убирании кода PathShow кое-кто удалил лишние строки.

Re: Редактор TextEdit

Posted: Sat Nov 21, 2015 10:30 pm
by Leency
> Просто при убирании кода PathShow кое-кто удалил лишние строки.
Если это был я, прошу прощения. :)

Re: Редактор TextEdit

Posted: Sat Nov 21, 2015 11:07 pm
by IgorA
Leency wrote:Если это был я, прошу прощения.
Ничего страшного, я сам только недавно заметил. А где исправить нашел почти сразу, так что долго искать не пришлось.

Re: Редактор TextEdit

Posted: Wed Jan 20, 2016 9:59 pm
by IgorA
rev 6086
1) Немного улучшена работа подсветки синтаксиса в элементе t_edit
2) Добавлено автоматическое открытие файла синтаксиса при запуске файла через командную строку (раньше оно работало только при открытии файлов через открытую программу). Настраивается в ini файле:

Code: Select all

...
[Options]
syntax_0=asm.syn
ext_0=asm
syntax_1=cpp_kol_dar.syn
ext_1=cpp
...
Пока что чувствительно к регистру расширения открываемых файлов. Например при открытии файла '111.CPP' подсветка синтаксиса меняться не будет, а при попытке открыть файл '222.cpp' подключится подсветка из файла 'cpp_kol_dar.syn'. Потому что 'cpp' совпадает с параметром ext_1

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 3:05 pm
by IgorA
Обнаружил что в поиске по ключевым словам не работает клавиатура. Т. е. при нажатии на список найденных слов курсоры не хотят двигать список. А если сделать в окне двойной клик мышью тогда клавиатура в списке начинает работать. И если опять потерять фокус то также для его возвращения двойной клик нужен.
Spoiler:
t_edit_key.png
t_edit_key.png (22.81 KiB)
Viewed 7459 times
Пока не знаю пока в чем причина.

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 3:11 pm
by punk_joker
Небольшая хотелка. Можно сделать, чтобы фокус на поле ввода выбирался сразу же как окно стало активным? Сейчас приходится выбрать окно, и затем дополнительно выбрать поле редактирования.

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 5:25 pm
by Leency
punk_joker wrote:Небольшая хотелка. Можно сделать, чтобы фокус на поле ввода выбирался сразу же как окно стало активным? Сейчас приходится выбрать окно, и затем дополнительно выбрать поле редактирования.
Хотелка удовлетворена #6254.
Кстати, мог бы и сам, это не сложное место.

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 7:11 pm
by Leency
По-моему это перебор http://prntscr.com/a5cb04
Почему бы не использовать шрифт 8х16 http://kolibri-n.org/inf/fonts/11_02_2016.png ?

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 7:16 pm
by IgorA
Leency wrote:По-моему это перебор http://prntscr.com/a5cb04
Почему бы не использовать шрифт 8х16 http://kolibri-n.org/inf/fonts/11_02_2016.png ?
Потому что этот шрифт не системный, т.е. не из сист. функции 4.
Для изменения шрифта нужно править в ини файле эти строки:

Code: Select all

symbol_w=14
symbol_h=20
font_s=1
Если font_s установить в 0, то будет шрифт 6*9, и под него symbol_w и symbol_h также надо уменьшать.

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 7:48 pm
by Leency
Шрифт 8х16 очень даже системный.
http://websvn.kolibrios.org/filedetails ... sfuncr.txt

Code: Select all

======================================================================
================ Функция 4 - нарисовать строку текста. ===============
======================================================================
Параметры:
  * eax = 4 - номер функции
  * ebx = X*65536+Y, координаты в окне или буфере
  * ecx = 0xXXRRGGBB, где
    * RR, GG, BB задают цвет текста
    * XX=ABFFCSSS (биты):
      * A=1 - рисуемая строка заканчивается нулём
      * B=1 - закрашивать фон (цвет = edi)
      * FF задает шрифт и кодировку:
        0 = 6x9  cp866
        1 = 8x16 cp866 <-------------------------------------------
        2 = 8x16 UTF-16LE <-------------------------------------------
        3 = 8x16 UTF-8 <-------------------------------------------
      * C=0 - рисовать в окно,
        С=1 - рисовать в буфер (edi)
      * SSS = (множитель размера)-1, то-есть 0 = x1, 7 = x8
  * edx = указатель на начало строки
  * esi = для A=0 длина строки, для A=1 игнорируется
  * edi = если B=1 - цвет для закраски фона,
          если C=1 - указатель на буфер
 

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 7:53 pm
by Leency
См. скрин

Re: Редактор TextEdit

Posted: Fri Feb 19, 2016 8:25 pm
by Pathoswithin
Он не только системный, а уже в заголовках окон используется. Ещё можно задействовать функцию 48.11.