OSDev http://osdev.su/ |
|
Программы http://osdev.su/viewtopic.php?f=26&t=616 |
Страница 1 из 1 |
Автор: | Станислав [ 18 авг 2012, 16:18 ] |
Заголовок сообщения: | Программы |
Написал компонент для набора текста, по нажатии на кнопку выводятся буквы, каждая буква это объект с инфой о шрифте размере цвете, с обработчиком сообщений, по наведении на букву соотсветственно курсор свой, по клику она становится текущей и её можно удалить или печатать текст после неё. Курсор ещё не мигает, осталось только это доделать. Буквы находятся в цепочке у неё есть следующая буква и предыдущач, основная работа по написании этого компанента была в настройке связей с цепочкой. Бинарник обнавил и в Блокноте по правому клику запускается прога с этим компонентом. |
Автор: | Nable [ 18 авг 2012, 17:57 ] |
Заголовок сообщения: | Re: Программы |
И сколько оно отожрёт на более-менее внятном объёме текста? Не говоря уж про то как тормозить будет (особенно если нужно вывести участок текста не с начала). Если уж ваять такое, то что-то типа DOM. |
Автор: | Станислав [ 18 авг 2012, 19:04 ] |
Заголовок сообщения: | Re: Программы |
По поводу скорости, буквы не попавшие в поле вывода не рисуются, если они перебераются то на скоторсть это не влияет. Есть два типа редакторов текста, первый это вывод одной большой страницы с ограничением на размер и редактор с страницами в каждой из которых своё начало цепочки, но помимо этого цепочки должны начинаться с каждого нового абзаца, в этом случае будет удачнее, и помимо дополнительных объектов страниц нужно делать ещё слой объектов абзац. Для простых редакторов для небольших сообщений пойдёт и первый. Памяти на каждую букву у меня 48байл, т.е. можно выделить для 1000 букв и не париться, если нужно будет ещё то добавить, вообще это смешной объём по сравнению со всеми другими задачами(музыка, фильмы), понятно, что можно сделать на букву 2 байта и все буквы будут одного размера и шрифта, цвета, идти только одна за другой, без обработки событий ... |
Автор: | Станислав [ 19 авг 2012, 11:43 ] |
Заголовок сообщения: | Re: Программы |
Сделал тот же движок для программы редактора линий простым переносом кода для добавления и удаления точки, с исправлением отрисовки буквы на линию и получил то что хотел, добавил отрисовку линии бизье и дописал вывод своей фирменной линии с прямыми и округлыми вершинами. Для добавлении прямой точки нужно нажимать на левую кнопку, а для округлой на правую. Получился полноценный редактор моей линии которой рисую свои шрифты. Я писал на Delphi редактор, но его средствами получалось корявый код и перенос точки мог делать только перебором всех точек, а в своей ОС точка как объект обрабатывает движение сама и это очень правильный метод, вообще получилось очень круто и с минимальным размером кода(я был поражен тем, что современные средства мне этой возможности не давали). Бинарник обнавил, смотрите в его QEMU. Вложение: Безымянный.jpg [ 11.59 КБ | Просмотров: 8111 ] |
Автор: | Станислав [ 20 авг 2012, 16:07 ] |
Заголовок сообщения: | Re: Программы |
Доделал выделение точки у линии и добавление точек между точками после выделенной, и в текстовом редакторе сделал мигающий курсор. Бинарник обнавил. Сам редактор получился удачнее чем тот в котором рисовал шрифты, написанный на дельфи, попробую наставить кнопок и функций открытия и сохранения. Кстати редактор линий идентичет редактору текста, те же функции добавление объекта к последниму в цепочку или между, или удаление. |
Автор: | Станислав [ 23 авг 2012, 05:25 ] |
Заголовок сообщения: | Re: Программы |
Поставил на некоторые формы кнопки, получилось очень легко ставить компоненты, для этого нужно просто добавить в модуль тело объекта и при старте добавить две строчки. Вот пример для кнопки: Код: 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. Вообще я думаю перевести систему в страничную адресацию, для её полноценной работы и потом уже писать побольше компонентов, кодеков, протоколов и драйверов. |
Автор: | Станислав [ 25 авг 2012, 18:59 ] |
Заголовок сообщения: | Re: Программы |
У моего ноута в видео режиме PowerExpres подтормаживает прорисовка, а в более старом dGPUMode летает без малейших тормозов, странно т.к. драйвер та же веса. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |