Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1379946304
никита2013
2013-09-23 18:25
2014.08.10
Сортировка StringGrid по колонке с датой


2-1380012157
Новичок90
2013-09-24 12:42
2014.08.10
Подключение к серверу Mysql


15-1389817803
Юрий
2014-01-16 00:30
2014.08.10
С днем рождения ! 16 января 2014 четверг


15-1389685377
Eleon
2014-01-14 11:42
2014.08.10
Internet Explorer


2-1380031523
Гырым
2013-09-24 18:05
2014.08.10
Отладчик, отлов событий





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский