![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Красивое оформление [Delphi, Windows]
Cash © (2004-02-25 12:25:00)DelphiX
У меня есть некая строка, нужно ее показать, но не с помощьюTexOut, а при помощи битмэпных щрифтов. Как это сделать, и мжно ли в виде спрайта.
Cash (2004-03-05 16:01:00) [1]cyborg © (25.02.04 15:06) [3]: Ok, ясненько.
Я ваще имел ввиду:TText = Class(TImageSprite).
Но потом всеже сделал именно так.
ВСЕМ СПАСИБО.
TButton (2004-02-26 20:26:00) [2]всю жизнь спрайтами текст выводил, пока мне про WinApiшные функции (для етих целей) не сказали :))))))
Darthman (2004-02-26 15:28:00) [3]У меня собственный модуль под это дело был... могу поискать, если надо.
Thor (2004-02-26 15:26:00) [4]специально для DelphiX есть компанент под шрифт битмапный.
вроде есть вместе с UnDelphiX
cyborg (2004-02-25 15:06:00) [5]Создай спрайт со шрифтом, например по 32 символа в строке, делается это просто, во Фрипаскале, возможно даже и в Турбопаскале в меню есть показать таблицу символов, делается скриншот экрана и уаля :), шрифт готов, какой размер нужен, такой шрифт окну и поставь.
Выводить примерно так, я тут немного кастрировал, может чего не заработает :)
Procedure ShowText(X,Y : Longint; Text : String; Center : Boolean);
Var
I,L,CX,CY : Longint;
B : Byte;
begin
L:=Length(Text); //Длина строки
if Center then X:=X-((L*ширина_символа) shr 1);
For I:=1 to L do
begin
B:=Byte(Text[i]);
CY:=(B shr 5) * высота_символа;
CX:=(B-((B shr 5) shl 5)) * ширина_символа;
SetRect(TRect,CX,CY,CX+ширина_символа,CY+высота_символа);
тут выводиш функцией BltFast прямоугольник TRect из поверхности шрифта на экран с координатами X,Y
Inc(X,ширина символа);
end;
end;
Можно конечно пооптимизировать немного, но и так сойдёт ;)
Cash (2004-02-25 12:38:00) [6]А че, в виде спрайта не получится?
Anatoly Podgoretsky (2004-02-25 12:32:00) [7]Font and Text Functions из WinApi