![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 ставил?