Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Вниз

текст в ддроу   Найти похожие ветки 

 
Green_Templar ©   (2005-06-26 00:58) [0]

Как выбрать шрифт, которым пишешь на канве у ддроу?


 
Кефир87 ©   (2005-06-26 01:07) [1]

Прям ДиректХ или ДелфиХ?
А то в делфиХ савсем просто:
DXDraw.Surface.Canvas.Font.Name = "Courier";
а ДирекХ я не знаю 8(


 
злобная танька   (2005-06-26 08:44) [2]

нету у него канвы..
:(


 
cyborg ©   (2005-06-26 08:44) [3]



Var
 Surface : IDirectDrawSurface7;
 LF: TLogFont;
 Font : HFont;
 DC : HDC;

...

 FillChar(LF, SizeOf(LF), 0);
 with LF do
   begin
     lfHeight := 14; //размер шрифта
     lfWeight := fw_Normal; //fw_Normal - нормальный, FW_BOLD - жирный
     lfUnderline:=1; //Подчёркнутый
     lfItalic:=1; //Наклонный

     lfCharSet:= RUSSIAN_CHARSET;

     lfFaceName:="Arial"; //Название шрифта
   end;
 Font := CreateFontIndirect(@LF);

 //Захват контекста поверхности (требуется для Windows API функции вывода текста)
 if Surface.GetDC(DC)=0 then //Если удалось получить контекст поверхности
 begin
   SelectObject(DC,Font);

   SetTextColor(DC,TextColor); //Установить цвет выводимого текста
   SetBkMode(DC, TRANSPARENT); //Установить прозрачный фон выводимого текста

   TextOut(DC, 0, 0, PChar(Text), Length(Text)); //Тут выводишь текст

   //Освобождение контекста поверхности (обязательно после захвата контекста!)
   Surface.ReleaseDC(DC);
 end; //if Surface.GetDC(DC)=0

  DeleteObject(Font); // Удаляем ненужный шрифт.



Самое главное не забывай освобождать ресурсы!
Surface.ReleaseDC
DeleteObject(Font);

К тому же этот вариант очень медленный. Делай свой спрайтовый шрифт.


 
Green_Templar ©   (2005-06-27 00:33) [4]

Получил исчерпывающие ответы, спасибо :) Неужели спрайтовый шрифт быстрее обычного?
Я пишу пока на дэлфиХ (на ней быстрее), но потом переведу или на чистый ДХ, или на его компонент.
Как называются шрифты с постоянной шириной символов, является ли Ариал таким шрифтом, и есть ли шрифты, где можно делать жёлыте буквы с чёрным контуром?


 
Grell ©   (2005-06-27 02:26) [5]


>  Неужели спрайтовый шрифт быстрее обычного?

Вообще все методы GDI медленны для DirectDraw, а спрайтовый шрифт - это просто блиттинг отдельных символов на поверхность, поэтому он и быстрее!


 
Sphinx ©   (2005-06-27 06:43) [6]

>есть ли шрифты, где можно делать жёлыте буквы с чёрным контуром?
Фотошоп и лубой шрифт :)


 
NikeOLD ©   (2005-06-27 10:50) [7]


> Green_Templar ©   (27.06.05 00:33) [4]

Шрифты с постоянной шириной называются МОНОШИРИННЫМИ.
Arial и Times к таким шрифтам не относятся. Стандартный моноширинный шрифт в Винде - Courier



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2005.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
3-1127554610
hooky-mars
2005-09-24 13:36
2005.11.13
Access как сервер


3-1128259959
alpine
2005-10-02 17:32
2005.11.13
Вопрос по SQL запросу


14-1130164522
Igorek
2005-10-24 18:35
2005.11.13
Много ли вы печатаете на работе?


4-1126085594
jeka_t
2005-09-07 13:33
2005.11.13
Как открывать документы при помощи CreateProcess


2-1129550865
Yurij-7
2005-10-17 16:07
2005.11.13
Query и вызов соотвествующей записи





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский