Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Front с прозрачным фоном на Canvas-e


pasha676 ©   (2003-07-08 15:57:00) 

Сел на якорь на таком простом вопросе. Как не пишу (OutText) на канвасе - все одно белый фон текста. Как его сделать прозрачным?


MBo   (2003-07-08 17:11:00) [1]

для VCL-TCanvas в большинстве случаев достаточно Brush.Style:=bsClear, а вообще к device context - API-функция SetBKMode


pasha676   (2003-07-08 17:09:00) [2]

Спасибо нашел. Я думал это свойство битмапа или канваса, а это функция API


Дмитрий Мыльников   (2003-07-08 17:04:00) [3]

А для изменения цвета фона используется функция SetBkColor(HDC, Color)
Кстати, эти же функции влияют и на прозрачность/непрозрачность и цвет фона в заливках контуров (свойство Canvas.Brush.Style, когда оно не bsClear или bsSolid, а какой-нибудь узор). Причём об этом толком нигде нет, я сам в своё время искал методом "научного тыка".


iXuSs   (2003-07-08 16:58:00) [4]

Не стал мудрить, вот из FAQ:

procedure TForm1.Button1Click(Sender: TObject);
var
OldBkMode : integer;
begin
Image1.Picture.Bitmap.Canvas.Font.Color := clBlue;
OldBkMode := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,TRANSPARENT);
Image1.Picture.Bitmap.Canvas.TextOut(10, 10, "Hello");
SetBkMode(Image1.Picture.Bitmap.Canvas.Handle,OldBkMode);
end;

Полагаю, ты без труда переделаешь под свои нужды.


pasha676   (2003-07-08 16:46:00) [5]

Нет. Вот такую ерунду по хэлпу писал

TrassaBmp.Transparent:=true;
TrassaBmp.TransparentColor:=$00FFFFFF;
TrassaBmp.TransparentMode:=tmAuto;

ну и потом TrassaBmp.Canvas.TextOut(25,150,"бла-бла бла");

Что есть за свойство SetBKMode и где оно находиться?


MBo   (2003-07-08 16:09:00) [6]

SetBKMode Transparent ставил?


Наверх

Титульная страница Поиск, карта сайта Написать письмо