Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс апр 23, 2017 4:44 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 229 сообщений ]  На страницу 1 2 3 4 516 След.
Автор Сообщение
 Заголовок сообщения: Редактор TextEdit
СообщениеДобавлено: Пт фев 13, 2009 11:33 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
Решил создать программу для работы с текстовыми файлами.
Думаю, что будет как альтернативная программа к TinyPad.

Преимущество по сравнению с TinyPad в том что есть многократный Повтор/Отмена действий.

Можно работать с файлами больше 65 Кб. Скроллинга пока нет так что на большие файлы можно не надеяться. Недостатков пока намного больше, потому что многое не сделано. Версия тестовая, так что просьба с "серйозными" файлами пока не работать.


Последний раз редактировалось IgorA Сб фев 14, 2009 2:35 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Пт фев 13, 2009 11:37 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
здОрово) конкуренция нужная вещь) // [offtop]Leency, а может и сделаю браузер ;) не знаю пока.[/offtop]

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Пт фев 13, 2009 11:47 pm 
Не в сети

Зарегистрирован: Чт янв 26, 2006 8:47 pm
Сообщения: 284
Это конечно хорошо, но хочу немного критики.. вынеси элементы в разные процедуры и например по нажатию клавиши перерисовывай не все окно а только вызывай нужную функцию и тогда перерисовку почти не будет видно)


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 12:55 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
Veliant
Цитата:
по нажатию клавиши перерисовывай не все окно а только вызывай нужную функцию и тогда перерисовку почти не будет видно

На форуме я подобные предложения видел, но пока перерисовать часть окна у меня почему-то не удавалось. Может я что-то еще не знаю об работе системы :(
Например я пишу процедуру:
Код:
Red_MainWnd:
  push eax ebx
  mcall 12,1 ;готовлюсь к рисованию

  xor eax,eax
  mov ebx,10*65536+460
  mov ecx,10*65536+230
  mov edx,[sc.work]
  or  edx,0x73000000
  mov edi,hed
  mcall ;прорисовываю контур окна

  call draw_main_win ;прорисовываю в отдельной функции измененную часть окна

  mcall 12,2 ;кидаю из контекста на экран
  pop ebx eax
  ret ;возвращаюсь обратно в вызвавшую функцию

И оно не работает. По идее, на сколько я понимаю должно работать, или я что-то упустил ?


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 6:16 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1070
То, что ты выложил - это только начало, гораздо важнее при изменении какой-то области вызывать не полностью Red_MainWnd, а, например, ту самую draw_main_win, в которой не рисуется ничего лишнего, а только то, что нужно в данный момент, причем чем больше таких подфункций, тем меньшие участки можно перерисовывать. Вообще функцию Red_MainWnd стоит вызывать только при старте программы и как реакцию на системную перерисовку окна, во всех остальных случаях использовать подфункции.


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 12:30 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
Понял я в чем была проблема. Дополнительную функцию перерисовки я поставил сразу за основной, перед входом в главный цикл, потому и глючило. А я подумал что может как в Виндовсе контекст какой для рисования нужно готовить, а оказывается все проще чем я думал, сразу рисую что надо ... :D .

Мигать стало меньше.


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 1:37 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
IgorA писал(а):
можно работать с файлами больше 65 Кб

Только что открыл файл размером 700КБ (12000+ строк). Что я делаю не так? Или это замечание к Tinypad'у не относится?..

P.S.: Кроме undo/redo я пока что не вижу причин начинать что-то новое (легче добавить в Tinypad). Есть что-то ещё, о чём ты не говоришь?

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 2:35 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
Дело в том что один файл у меня есть 360Кб, при открытии которого у меня глючит ОС.
Раз дело не в размере, то я подправлю свое сообщение.


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 2:47 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн ноя 28, 2005 8:00 pm
Сообщения: 1601
Цитата:
Дело в том что один файл у меня есть 360Кб, при открытии которого у меня глючит ОС.

Даже на легендарном ЛОРе телепатов никому не удаётся заставить работать, они постоянно в отпуске, а здесь их вообще отродясь не было...
В последнем дистре это проявляется? Скопировать файл в файловых менеджерах удаётся (желательно попробовать все)? Как именно начинает глючить? Глючит только tinypad или kfar'овский редактор тоже?

_________________
Ушёл к умным, знающим и культурным людям.


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Сб фев 14, 2009 2:51 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
Напиши в личку, что значит "глючит ОС", разберёмся...

_________________
in code we trust


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Пн фев 16, 2009 4:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
diamond
Глюк был в том что при открытии этого файла пропадал курсор, и я не мог двигать окна без курсора. Повторить глюк у меня не получилось, но раньше он несколько раз был.
Файл копируется удачно, думаю наверно что-то было не то в системе, TinyPad тут не причем, а я подумал на него потому что при открытии файла глючило. Наверное какая-нибудь программа портила память, как результат на других программах вылазило.

Немного обновил TextEdit
1) мерцать стало меньше, но все же еще можно оптимизировать
2) добавил прокрутку по строкам (для вертикального скролинга заготовил 2 кнопки, а так по клавиатуре PageUp PageDown)
3) меняются размеры окна с текстом в зависимости от procinfo.client_box
4) убрал один глюк


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Пн фев 16, 2009 4:57 pm 
IgorA
Весьма рекомендую обратить внимание на тему:
viewtopic.php?f=2&t=1220
То что там заявлено не шутка и если ты не будешь торопится, то немалую часть работы по коду можно будет не делать.
Разумеется это лишь в том случае, если это не очередная поделка на пару недель, а потом забили на это дело...


Вернуться к началу
   
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Пн фев 16, 2009 7:26 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
Mario
В том, что надо стремится все стандартизировать ты прав. Общие компоненты это хорошо.
Но дело в том что скролинги от andrew_programer я не взял по 2 причинам:
1) вертикальный и горизонтальный отличаются по оформлению, не красиво что один будет квадратный а другой скругленный
2) она (библиотека) давно не развивается и вроди не доделана до конца
А компонент EditBox я взял от Lrz. Он говорит, что хочет сделать стандартный скролинг, этого я не знал, спасибо тебе за ссылку.
В любом случае почти во всех программах, которые я видел, скролинги делались через кнопки системной функции 8 у меня пока нет другого выхода :?

Оффтопик: Открой код ZSea и может я из него возьму менюшку :wink: и для Lrz меньше работы будет (меню он тоже хочет добавить в box_lib.obj).


Вернуться к началу
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Пн фев 16, 2009 9:16 pm 
IgorA
Вообще то в теме обсуждалась BOX_LIB, а не LIBGUI и соответственно речь о компонентах от andrew_programer не шла.
Код zSea я открывать не буду, но вот макросы компонентов SCROLLBAR, DINAMIC BUTTON и MENU BAR будут интегрированы в BOX_LIB.
Использовать бибилотеку можно даже не имея исходников, но поскольку я не "собака на сене", то исходники данных компонентов будут выложены под лицензией аналогичной BSD.
Цитата:
и для Lrz меньше работы будет

Вообще то открою страшную тайну - речь шла о моих компонентах, поскольку написание аналогичных компонентов в приемлмые сроки для <Lrz> не реально (у него сейчас совсем другие жизненные трудности).

З.Ы. Еще раз повторяю, если плохо понятно - компоненты встроенные в загружаемый модуль (по другому библиотека) можно использовать и не имея исходника - достаточно иметь документацию и/или пример использования. Это замечательно демонстрируется на KFAR_ARC.OBJ и SORT.OBJ которые есть в архиве zSea и к исходникам которых я не притрагивался (да исходники есть, но раз соблюден принцип "черного ящика" то я с таким же успехом мог бы использовать их не имея исходников).


Вернуться к началу
   
 Заголовок сообщения: Re: текстовый редактор
СообщениеДобавлено: Ср фев 18, 2009 10:34 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 736
Сделал несколько доработок (версия 18.02.2009):
1) память под файл bmp выделяю через функции, в связи с чем размер программы уменьшился на 19 Кб
но теперь в KlbrInWin вместо кнопок черные квадраты
2) ввел режим замены символа (вкл. кнопкой Ins)
3) уменьшил мерцание (при движении курсора Вверх/Вниз внутри окна), Влево и Вправо - пока мигает
4) вертик. скролинг немного доработал, но скорее всего буду менять его на библиотечный, нижний пока не развиваю, жду готовых примеров использования библиотеки

---
Добавил файл readme, в котором можно еще кое что прочитать, особенно рекомендую прочитать раздел в нем: *** Некоторые недоработки ***
---
Файл ниже, а серое уже исправил ...


Последний раз редактировалось IgorA Ср фев 18, 2009 11:32 pm, всего редактировалось 1 раз.

Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 229 сообщений ]  На страницу 1 2 3 4 516 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB