Форум: "Прочее";
Текущий архив: 2014.08.10;
Скачать: [xml.tar.bz2];
Внизветка начинающим Найти похожие ветки
← →
Мимо проходивший (2014-01-11 02:01) [0]Андмины вышлите на мыло дамб базы форума "начинающим", у меня там вопрос не могу посмотреть.
← →
antonn © (2014-01-11 12:15) [1]туда никто зайти не может, значит ответов нет :)
← →
Dimka Maslov © (2014-01-11 14:50) [2]Я написал там, что надо читать про GDI (Graphic Device Interface)
← →
DVM © (2014-01-11 15:11) [3]Фень Юаня читай про GDI.
← →
antonn © (2014-01-11 15:21) [4]это вопрос про графический редактор на канвасе? :)
← →
Pavia © (2014-01-11 16:32) [5]
> Фень Юаня читай про GDI.
???
← →
DVM © (2014-01-11 16:42) [6]
> Pavia © (11.01.14 16:32) [5]
>
> > Фень Юаня читай про GDI.
>
> ???
Что непонятно? http://www.ozon.ru/context/detail/id/963992/
← →
Pavia © (2014-01-11 16:51) [7]
> Что непонятно?
Эта книжка про внутреннее устройство виндоуса 2000 и к программированию имеют малое отношение. Чем конкретно она может быть полезна автору да и кому любому другому?
← →
DVM © (2014-01-11 17:08) [8]
> Pavia © (11.01.14 16:51) [7]
> Эта книжка про внутреннее устройство виндоуса 2000 и к программированию
> имеют малое отношение
Ты часом ничего не путаешь? Эта книга как раз про программирование графики в Windows. Кому она бесполезна пусть читает Фленова.
← →
Signal (2014-01-13 10:41) [9]Так что все ветки начинающим хамба?
← →
Мимо прогодивший (2014-01-13 10:41) [10]>>Фень Юаня читай про GDI.
2002 год издания. А будет ли она актуальная для W7, W8?
← →
DVM © (2014-01-13 11:09) [11]
> Мимо прогодивший (13.01.14 10:41) [10]
> А будет ли она актуальная для W7, W8?
В части GDI будет. Оно не изменилось. Да и DirectDraw тоже вобщем то.
Но дело даже не в технологиях. GDI - хороший образец для изучения того как вообще происходит работа с графикой, какие есть графические примитивы, какие преобразования над ними выполняются и как и т.д. Книга Юаня пожалуй лучшая в этом плане, разобраны многие вещи, о которых даже в MSDN нет ничего.
В Delphi же сама работа с графикой мертворожденная и класс Canvas тому подтверждение. Поэтому изучать надо первоисточник.
Сейчас, конечно, есть разные другие технологии: GDI+ (кстати тоже советую посмотреть книги по ней), Direct3d, OpenGL, WPF(в C#) и Firemonkey (в Delphi), но на самом низком уровне все равно многое (но не все) сводится к GDI.
← →
Мимо прогодивший (2014-01-13 12:01) [12]>> мертворожденная и класс Canvas тому подтверждение
Это как?
Меня пока заинтересовал один вопрос: как происходит отрисовка шрифтов в текстовых редакторах "в самом низу"
Я так понимаю, что класс Canvas просто использует API через какие то DLL, так что там может быть не так?
← →
DVM © (2014-01-13 12:18) [13]
> Мимо прогодивший (13.01.14 12:01) [12]
> Это как?
Недоработанная местами. Многие вещи можно было бы сделать намного более удобными в использовании и более производительными. Не просто так же появилось множество библиотек для работы с графикой типа Graphics32 и т.д.
Но что есть то есть.
> Меня пока заинтересовал один вопрос: как происходит отрисовка
> шрифтов в текстовых редакторах "в самом низу"
Если текстовый редактор использует GDI (а 99% вероятности, что использует), то следует читать про соответствующие функции GDI либо в книге, что я привел либо на MSDN. Правда не совсем понятно, что имеется в виду под "самым нижним уровнем".
Для прикладных программ - самый нижний уровень - это GDI, но сама по себе отрисовка шрифтов сложная вещь, есть библиотеки, которые не используют возможности предоставляемые операционной системой по отрисовке шрифтов, а реализуют его сами.
> Я так понимаю, что класс Canvas просто использует API через
> какие то DLL
в VCL - это библиотеки GDI в основном (gdi32.dll и.т.д.)
> так что там может быть не так?
Ты о чем? Исходный вопрос не доступен я не помню о чем там речь была.
← →
antonn © (2014-01-13 13:03) [14]если речь все таки о "редакторе своими руками" - то Фень Юань тут как курс сопромата для механика заменяющего колодки на Москвиче. Да полезно, но основные сложности будут не в графике. В свое время осилил лишь Edit в битмапе (да и то со своей кареткой не анимированной и без контекстного меню), до Memo как до Луны (многострочность, скролбары). Вроде где-то видел компоненты с полностью своей отрисовкой, но там свои нюансы были...
А если речь про рендер векторных шрифтов, то вроде бы надо что-то более специализированное
← →
Мимо прогодивший (2014-01-13 13:52) [15]>> если речь все таки о "редакторе своими руками"
Именно об этом.
>>Edit в битмапе
А я пытался на основе PaintBox-a через TextOut, даже добил редактирование, но только при моноширном шрифте, т.к. без теор. базы не знал как вычислять позицию курсора(мигал по таймеру:) ) сделал зеленого цвета выделения мышкой текста. Но мороки уйма: нужно все делать руками, танцую от свойств (ширины высоты шрифта).
Можно сказать, что даже что-то получилось, но так как все логику отрисовки запер в OnPaint PaintBox все работает с определенными тормозами,
← →
antonn © (2014-01-13 14:16) [16]Не надо в paintbox, рисуй в буферный битмап, выводи его после всех обновлений через bitblt(). У меня вроде бы несколько проще было в одном варианте - шрифт графический и ширина символов была известна, не приходилось canvas.textwidth() постоянно дергать, но расстояния м/у символами конечно плыли. Делал и на "канвасном" движке, в принципе было нормально для эдита, вот нарыл что-то из этого http://antonn.com/fh/store/8gszn2cz.rar (там кастомконтрол, но по сути все в битмапе, отрисовка смещена, но поменять ее не сложно, а так выделение, вставка, замена и буфер обмена есть. во всяком случае для слоеных окон вариантов нет)
← →
DVM © (2014-01-13 14:26) [17]
> Мимо прогодивший (13.01.14 13:52) [15]
> Именно об этом.
А зачем это нужно? Чтоб никто не смог просто так выдернуть содержимое?
Или это для Layered Windows?
← →
SKIPtr © (2014-01-13 18:08) [18]а когда ветка начинающим оживет
← →
Мимо прогодивший (2014-01-13 18:54) [19]>>DVM © (13.01.14 14:26) [17]
подсветка синтаксиса
← →
Pavia © (2014-01-13 19:51) [20]Для подсветки синтаксиса есть специальные компоненты.
К примеру SynEdit.
> Недоработанная местами. Многие вещи можно было бы сделать
> намного более удобными в использовании и более производительными.
> Не просто так же появилось множество библиотек для работы
> с графикой типа Graphics32 и т.д.
Ну не надо. Canvas это обёртка над GDI. Graphics32 появилась из-за того что GDI многие вещи небыли реализованы корректно.
> Можно сказать, что даже что-то получилось, но так как все
> логику отрисовки запер в OnPaint PaintBox все работает с
> определенными тормозами,
Это вопрос оптимизации. Что да где тормозило.
Надо посмотреть тоже когдато свой Memo на paintBox делал.
← →
Мимо проходивший (2014-01-13 21:26) [21]
> Для подсветки синтаксиса есть специальные компоненты.
> К примеру SynEdit.
> Надо посмотреть тоже когдато свой Memo на paintBox делал.
Для мемо есть, К примеру TMemo TRichEdit
)
← →
brother © (2014-01-14 07:22) [22]> дамб базы
дамП базы...
← →
Игорь Шевченко © (2014-01-15 12:33) [23]Починилось
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2014.08.10;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.002 c