информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Delphi, Вывод прозрачного текста на битмап 18.09.03 20:36  
Автор: Cyril <sc> Статус: Member
<"чистая" ссылка>
Решил я по быстрому слепить программу которая будет выводить на
битмап текстовую строку. И все бы хорошо, но столкнулся со следующим
глюком(привожу два фрагмента) в первом текст выводится непрозрачным
во втором все нормально, если кто догадался в чем дело, то очень хотелось бы услышать объяснение(компилилось все на D5)

(Фрагмент 1, не работает)
procedure TForm1.SaveAlToBitmapClick(Sender: TObject);
var
i : integer;
FBitmap : TBitmap;
myText : string;
begin
ListBox.Items.LoadFromFile('c:\users\cyril\cards\names.txt');
FBitmap := TBitmap.Create;
try
for i := 0 to ListBox.Items.Count-1 do begin
myText := ListBox.Items[i];
FBitmap.LoadFromFile('c:\users\cyril\cards\template.bmp');
FBitmap.Canvas.Font.Assign(FontDialog.Font);
SetBkMode(FBitmap.Canvas.Handle, TRANSPARENT);
FBitmap.Canvas.TextOut(0,0 , {myText}ListBox.Items[i]);
^^^^^^^^^^^^^^^^
FBitmap.SaveToFile('image'+inttostr(i)+'.bmp');
end;
finally
FBitmap.Free;
end;
end;

(Фрагмент 2, все работает как надо)
procedure TForm1.SaveAlToBitmapClick(Sender: TObject);
var
i : integer;
FBitmap : TBitmap;
myText : string;
begin
ListBox.Items.LoadFromFile('c:\users\cyril\cards\names.txt');
FBitmap := TBitmap.Create;
try
for i := 0 to ListBox.Items.Count-1 do begin
myText := ListBox.Items[i];
FBitmap.LoadFromFile('c:\users\cyril\cards\template.bmp');
FBitmap.Canvas.Font.Assign(FontDialog.Font);
SetBkMode(FBitmap.Canvas.Handle, TRANSPARENT);
FBitmap.Canvas.TextOut(0,0 , myText]);
^^^^^^^^
FBitmap.SaveToFile('image'+inttostr(i)+'.bmp');
end;
finally
FBitmap.Free;
end;
end;
[Win32] Delphi, Вывод прозрачного текста на битмап 18.09.03 21:35  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
посмотри в сторону TCanvas::TextFlags и TCanvas::Brush::Style
а эти твои глюки возможно связаны с тем как компилятор генерит код. если уж юзаешь апи тогда и юзай их при выводе текста (TextOut есть и как простая апи ф-я)
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach