Obraz bmp jako tło Form1
Napisane: sobota, 19 sierpnia 2017, 17:50
Witam!
Chciałbym "wtopić" w tło formy obraz w formacie bmp. Próbowałem zrobić to według przepisu podanego poniżej ale nie bardzo chce działać.
http://programowanie.cal.pl/cyfbar/grafika.html#graf7
W kodzie który jest na stronie zamieniłem Image1 na Form1, tak jak poniżej:
Gdy wczytuję obrazek do obiektu Image1, to wszystko działa jak należy. Jeśli wczytuję do Form1, to mam szare, standardowe tło :[
Obrazek jest sprawdzony pod kątem głębi i rozszerzenia - bmp 24bit.
Zainstalowałem C++ Builder XE2.
/Edit
Ten sposób działa...ale...tylko jeśli umieszczę go w zdarzeniu OnPaint dla Form1. Tak to wygląda:
Mam jeszcze pytanie: dlaczego nie chce działać dla innych zdarzeń tj.: OnCreate albo OnShow?
Chciałbym "wtopić" w tło formy obraz w formacie bmp. Próbowałem zrobić to według przepisu podanego poniżej ale nie bardzo chce działać.
http://programowanie.cal.pl/cyfbar/grafika.html#graf7
W kodzie który jest na stronie zamieniłem Image1 na Form1, tak jak poniżej:
KOD cpp: UKRYJ
void __fastcall TForm1::FormShow(TObject *Sender)
{
bmp = new Graphics::TBitmap;
bmp->LoadFromFile("nazwa_pliku");
Form1->Canvas->Brush->Bitmap = bmp;
Form1->Canvas->FillRect(Rect(0,0,Width,Height));
}
{
bmp = new Graphics::TBitmap;
bmp->LoadFromFile("nazwa_pliku");
Form1->Canvas->Brush->Bitmap = bmp;
Form1->Canvas->FillRect(Rect(0,0,Width,Height));
}
Gdy wczytuję obrazek do obiektu Image1, to wszystko działa jak należy. Jeśli wczytuję do Form1, to mam szare, standardowe tło :[
Obrazek jest sprawdzony pod kątem głębi i rozszerzenia - bmp 24bit.
Zainstalowałem C++ Builder XE2.
/Edit
Ten sposób działa...ale...tylko jeśli umieszczę go w zdarzeniu OnPaint dla Form1. Tak to wygląda:
KOD cpp: UKRYJ
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Graphics::TBitmap *bmp = new Graphics::TBitmap;
try
{
BrushBmp->LoadFromFile("test.bmp");
Canvas->Brush->Bitmap = bmp;
TRect rect;
rect.Left = 0;
rect.Top = 0;
rect.Right = ClientWidth;
rect.Bottom = ClientHeight;
//Canvas->StretchDraw(rect, bmp);
Canvas->FillRect(rect);
}
__finally
{
Canvas->Brush->Bitmap = NULL;
delete bmp;
}
}
{
Graphics::TBitmap *bmp = new Graphics::TBitmap;
try
{
BrushBmp->LoadFromFile("test.bmp");
Canvas->Brush->Bitmap = bmp;
TRect rect;
rect.Left = 0;
rect.Top = 0;
rect.Right = ClientWidth;
rect.Bottom = ClientHeight;
//Canvas->StretchDraw(rect, bmp);
Canvas->FillRect(rect);
}
__finally
{
Canvas->Brush->Bitmap = NULL;
delete bmp;
}
}
Mam jeszcze pytanie: dlaczego nie chce działać dla innych zdarzeń tj.: OnCreate albo OnShow?