Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.08.10;
Скачать: CL | DM;

Вниз

ветка начинающим   Найти похожие ветки 

 
Мимо проходивший   (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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.006 c
15-1389879208
Пит
2014-01-16 17:33
2014.08.10
Потому что все так считают


3-1298803163
Moiseev S.
2011-02-27 13:39
2014.08.10
Проблема перехода с D2007 на D2009


15-1389990605
Юрий
2014-01-18 00:30
2014.08.10
С днем рождения ! 18 января 2014 суббота


15-1389752194
REP
2014-01-15 06:16
2014.08.10
Работа в Перми


15-1389778585
teleroot
2014-01-15 13:36
2014.08.10
Задача нахождения ближайшей сходной цепочки (?)