|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.09.2010, 19:40 | #1 |
Пользователь
Регистрация: 19.09.2010
Сообщений: 20
|
Почему не пишет создаваемым шрифтом
Конструкция вида:
procedure TForm1.N15Click(Sender: TObject); var F:TFont; LF: TLogFont; R: TRect; begin R:=Rect(20,20,120,120); image1.Canvas.Font.Name:='Arial'; image1.Canvas.Font.Size:=18; f:=TFont.Create; f.Assign(form1.Image1.Canvas.Font); GetObject(image1.Canvas.Font.Handle ,sizeof(LF),@LF); LF.lfEscapement:=300; LF.lfOrientation:=300; f.Handle:=CreateFontIndirect(LF); form1.Image1.Canvas.Font.Assign(f); image1.Canvas.Font.Color:=clRed; DrawText(Image1.Canvas.Handle,'jhgg lgh',-1,R,DT_SINGLELINE or DT_VCENTER or DT_CENTER); end; ничего не выводит на поверхность ImageBoxа. Где я лоханулся? |
19.09.2010, 19:49 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
можно вопрос, а зачем смешивать VCL и API таким методом?
создайте нормально шрифт и его примените к контексту, потом рисуйте Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
19.09.2010, 19:54 | #3 |
Пользователь
Регистрация: 19.09.2010
Сообщений: 20
|
|
19.09.2010, 20:01 | #4 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
19.09.2010, 20:14 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
попробуйте избавится от всяких Assign, то есть типа так.
Код:
проверил рисует. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
19.09.2010, 20:31 | #6 |
Пользователь
Регистрация: 19.09.2010
Сообщений: 20
|
|
19.09.2010, 21:25 | #7 |
Пользователь
Регистрация: 31.12.2007
Сообщений: 37
|
Не забывайте уничтожать дескриптор шрифта после отрисовки.
А вообще можно попробовать наложить шрифт на контекст через SelectObject. Как-то так. |
19.09.2010, 21:28 | #8 |
Пользователь
Регистрация: 19.09.2010
Сообщений: 20
|
|
19.09.2010, 21:34 | #9 |
Пользователь
Регистрация: 31.12.2007
Сообщений: 37
|
|
19.09.2010, 21:34 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Exception, TFont его сам уничтожит.(поидее должен, в принципе можно проверить)
а насчет контекста, это значит уходить еще далее в АПИ. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему пишет "cannot set colsep"? | Dimon195-95 | SQL, базы данных | 1 | 17.03.2010 00:51 |
проблема с шрифтом | Demonmov | Microsoft Office Word | 7 | 06.11.2009 06:51 |
прога пишет ошибку при открытии файла (почему?) | nicky777 | Общие вопросы Delphi | 2 | 14.03.2008 17:56 |
Почему после компилиции не пишет кирилицей? | lionig28 | Общие вопросы C/C++ | 1 | 01.02.2008 21:33 |
Работа со шрифтом | Ray | Общие вопросы Delphi | 0 | 24.12.2006 13:02 |