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

Вниз

Вывод графического текста Как лучше и правильнее?   Найти похожие ветки 

 
Borissv ©   (2004-05-13 11:30) [0]

Использую DelphiX...

Задача:
- Вывод графического (в виде картинки) текста...

1. Забомбил небольшую процедуру которая переводит строку текста в картинку
с этим текстом:
Procedure DIBFont(Text:String; var ADIB: TDIB);

2. есть элемент в DXImageList, допустим с названием "dibText"

 его Picture при старте программы - пустое...
 далее в run-time"е я Assign"ую полученую картинку, но спрайт(c картинкой dibText) который я создаю после этого всё равно не имеет картинки и я знаю почему (не буду расписывать). Значит нужно искать другое решение...
В общем как вообще лучше и правильнее выводить графический текст?
Для каждой буквы свой спрайт чтоли делать? По моему это тоже не выход...

Или неужели прийдётся выводить через Canvas...

Подскажите решение плз...


 
Borissv ©   (2004-05-13 12:19) [1]

Закрыто!
Вопрос снят, я нашёл решение....


 
zeqfreed ©   (2004-05-13 18:18) [2]

Хоть бы поделился :)


 
Borissv ©   (2004-05-13 19:21) [3]

например:


Procedure DIBFont(Text:String; var ADIB: TDIB);
var
 TBMPFont: TBitmap;
 TextLen,
 i,
 X,
 FontSize: Integer;
Begin
 FontSize:=16;
 TextLen:= Length(Text);
 Text:= UpperCase(Text);
 TBMPFont:= TBitmap.Create;
 TBMPFont.LoadFromFile("Font.bmp");

 ADIB.SetSize(FontSize*TextLen,FontSize,24);
 for i:= 1 To TextLen Do
 Begin
   X:= (Ord(Text[i])-32)*FontSize;
   BitBlt(ADIB.Canvas.Handle,(i-1)*FontSize,0,16,16,TBMPFont.Canvas.Handle,X,0,SRCCOPY);
 End;
 TBMPFont.Free;
End;

Procedure SetText(var PCI:TPictureCollectionItem;Text:String);
var
 FDIB: TDIB;
begin
 FDIB:= TDIB.Create;
 DIBFont(Text,FDIB);
 PCI.Picture.Assign(FDIB);
 FDIB.Free;
 PCI.Restore;
End;


что то вроде этого...

Можно ещё и вообще без спрайтов, используя второй DXDrawSurface, но пока ещё не разбирался....

В MirGames есть примеры с описанием



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

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.049 c
1-1092200671
Незнайка
2004-08-11 09:04
2004.08.29
Уважаемые мастера подскажите как средствами Delphi создавать PDF


14-1091971686
Cerberus
2004-08-08 17:28
2004.08.29
Опрос


1-1092216937
Denis
2004-08-11 13:35
2004.08.29
В каком случае выполняется событие OnShow при создании формы?


3-1091834330
yozh_programmer
2004-08-07 03:18
2004.08.29
Извлечение данных из готового набора!


3-1091693682
Sirruf
2004-08-05 12:14
2004.08.29
BLOB-поля по-простому