OSDev

для всех
Текущее время: 27 апр 2024, 18:09

Часовой пояс: UTC + 3 часа




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Программы
СообщениеДобавлено: 18 авг 2012, 16:18 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Написал компонент для набора текста, по нажатии на кнопку выводятся буквы, каждая буква это объект с инфой о шрифте размере цвете, с обработчиком сообщений, по наведении на букву соотсветственно курсор свой, по клику она становится текущей и её можно удалить или печатать текст после неё.
Курсор ещё не мигает, осталось только это доделать. Буквы находятся в цепочке у неё есть следующая буква и предыдущач, основная работа по написании этого компанента была в настройке связей с цепочкой.
Бинарник обнавил и в Блокноте по правому клику запускается прога с этим компонентом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы
СообщениеДобавлено: 18 авг 2012, 17:57 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
И сколько оно отожрёт на более-менее внятном объёме текста? Не говоря уж про то как тормозить будет (особенно если нужно вывести участок текста не с начала).

Если уж ваять такое, то что-то типа DOM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы
СообщениеДобавлено: 18 авг 2012, 19:04 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
По поводу скорости, буквы не попавшие в поле вывода не рисуются, если они перебераются то на скоторсть это не влияет.
Есть два типа редакторов текста, первый это вывод одной большой страницы с ограничением на размер и редактор с страницами в каждой из которых своё начало цепочки, но помимо этого цепочки должны начинаться с каждого нового абзаца, в этом случае будет удачнее, и помимо дополнительных объектов страниц нужно делать ещё слой объектов абзац. Для простых редакторов для небольших сообщений пойдёт и первый. Памяти на каждую букву у меня 48байл, т.е. можно выделить для 1000 букв и не париться, если нужно будет ещё то добавить, вообще это смешной объём по сравнению со всеми другими задачами(музыка, фильмы), понятно, что можно сделать на букву 2 байта и все буквы будут одного размера и шрифта, цвета, идти только одна за другой, без обработки событий ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы
СообщениеДобавлено: 19 авг 2012, 11:43 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Сделал тот же движок для программы редактора линий простым переносом кода для добавления и удаления точки, с исправлением отрисовки буквы на линию и получил то что хотел, добавил отрисовку линии бизье и дописал вывод своей фирменной линии с прямыми и округлыми вершинами. Для добавлении прямой точки нужно нажимать на левую кнопку, а для округлой на правую. Получился полноценный редактор моей линии которой рисую свои шрифты.
Я писал на Delphi редактор, но его средствами получалось корявый код и перенос точки мог делать только перебором всех точек, а в своей ОС точка как объект обрабатывает движение сама и это очень правильный метод, вообще получилось очень круто и с минимальным размером кода(я был поражен тем, что современные средства мне этой возможности не давали).
Бинарник обнавил, смотрите в его QEMU.
Вложение:
Безымянный.jpg
Безымянный.jpg [ 11.59 КБ | Просмотров: 7812 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы
СообщениеДобавлено: 20 авг 2012, 16:07 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Доделал выделение точки у линии и добавление точек между точками после выделенной, и в текстовом редакторе сделал мигающий курсор. Бинарник обнавил.
Сам редактор получился удачнее чем тот в котором рисовал шрифты, написанный на дельфи, попробую наставить кнопок и функций открытия и сохранения.
Кстати редактор линий идентичет редактору текста, те же функции добавление объекта к последниму в цепочку или между, или удаление.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы
СообщениеДобавлено: 23 авг 2012, 05:25 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Поставил на некоторые формы кнопки, получилось очень легко ставить компоненты, для этого нужно просто добавить в модуль тело объекта и при старте добавить две строчки.
Вот пример для кнопки:
Код:
btn_10   dd   cur4
   dd   0
   dd   btn_screen   ;адрес отрисовки   8
   dd   btn_events   ;адрес сообшений   12
   dd   btnn      ;адрес картинки      16
   dd   0
   dw   32      ;         24
   dw   32      ;         26
   dw   370      ;x  для текста      28
   dw   110      ;y  для текста      30

   dd   frm_lin      ;вверх к хозяину   32
   dd   0      ;вниз         36
   dd   0      ;след         40
   dd   0      ;пред         44
и
mov ebp,btn_10
call dword[ebp+8]

После запуска в окошке будет нарисована кнопка и по нажатию будет запускать любую функцию, которую поставим по смещению 36.

Вообще я думаю перевести систему в страничную адресацию, для её полноценной работы и потом уже писать побольше компонентов, кодеков, протоколов и драйверов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программы
СообщениеДобавлено: 25 авг 2012, 18:59 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
У моего ноута в видео режиме PowerExpres подтормаживает прорисовка, а в более старом dGPUMode летает без малейших тормозов, странно т.к. драйвер та же веса.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


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

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


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

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