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

Вниз

Bitmap на форме   Найти похожие ветки 

 
ShurikM   (2003-03-09 00:37) [0]

Поскажите пожалуйста, что здесь не так.
в обработчике события FormCreate для формы, на которой есть Panel1:

var FCanvas : TCanvas;
...
begin
FCanvas:=TCanvas.Create;
try
FCanvas.Handle:=GetDC(Panel1.Handle);
try
FCanvas.Draw(0,0,BM);
finally
ReleaseDC(Panel1.Handle,FCanvas.Handle);
FCanvas.Handle:=0;
end;
finally
FCanvas.Free;
end;
...

При этом битмэп не появляется. Если тот же код напр. в обработчике нажатия кнопки, то все нормально.


 
Anatoly Podgoretsky ©   (2003-03-09 00:57) [1]

Он появляется, только форма к этому моменту еще невидимая


 
MAN-In-RED ©   (2003-03-09 01:02) [2]

А при появлении, канва панели перерисовывается и стает чистой...


 
ShurikM   (2003-03-09 15:53) [3]

Как же тогда сделать, чтобы канва отрисовывалась с битмэпом ?


 
Song ©   (2003-03-09 17:40) [4]

onShow


 
ShurikM   (2003-03-09 18:33) [5]

2 Song ©

Не получается ни OnShow, ни OnPaint :-(


 
Song ©   (2003-03-09 19:54) [6]

Значит в BM у тебя ничего нет.
Кроме того мне не понятна строчка FCanvas.Handle:=0;


 
ShurikM   (2003-03-09 21:07) [7]

2 Song © (09.03.03 19:54)

Есть BM ! Ведь если тот же код напр. в обработчике нажатия кнопки (на этой форме), то все нормально. BM создан до работы с формой.
FCanvas.Handle:=0; - это естественно, артефакт. К сути вопроса не относится.

Очень прошу помочь ! Может такой способ в принципе не подходит ?


 
Shadow ©   (2003-03-09 21:56) [8]

В таймер засунь


 
Song ©   (2003-03-10 10:13) [9]

А на onActivate ?


 
Набережных С.   (2003-03-10 14:53) [10]


procedure TForm1.FormCreate(Sender: TObject);
begin
BM:=TBitmap.Create;
BM.LoadFromFile(...);
FOldPanelPrc:=Panel1.WindowProc;
Panel1.WindowProc:=PanelWndPrc;
end;

type
TXPanel = class(TPanel);

procedure TForm1.PanelWndPrc(var Message: TMessage);
begin
if Assigned(FOldPanelPrc) then FOldPanelPrc(Message);
if Message.Msg = WM_PAINT then TXPanel(Panel1).Canvas.Draw(0, 0, BM);
end;


 
Anatoly Podgoretsky ©   (2003-03-10 14:57) [11]

ShurikM (09.03.03 21:07)
Пошли себе определенное сообщение и уже по нему отрисовывай


 
ShurikM   (2003-03-10 20:33) [12]

Всем спасибо !
2 Song © (10.03.03 10:13) Нет.
2 Anatoly Podgoretsky © (10.03.03 14:57) Непонятно когда посылать.
2 Набережных С.
Большое спасибо ! Идея понравилась ! Работает !



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

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

Наверх




Память: 0.49 MB
Время: 0.02 c
7-64416
Acidy
2003-01-18 13:24
2003.03.20
md5 .......


7-64415
Dionis
2003-01-26 20:04
2003.03.20
LPT порт


1-64160
Igor Kashtanov
2003-03-07 01:45
2003.03.20
PopUp Menu,


14-64383
Black_Angel
2003-03-05 20:41
2003.03.20
Что америкосы продают...


1-64121
snake1977
2003-03-07 09:59
2003.03.20
FileListBox