Главная страница
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.019 c
1-64218
KpeHgeJIb
2003-03-08 13:27
2003.03.20
Вопрос о TList


3-63953
Studentas
2003-03-03 12:35
2003.03.20
Autoincrenement ?


7-64399
Hopkins
2002-12-14 12:28
2003.03.20
Как из Delphi вносить изменения в окнах апплетов ?


3-64045
OlegKrt
2003-02-27 08:54
2003.03.20
OnMouseWheel в TDBLookupComboBox? не работает прокрутка


1-64075
ДмирийК
2003-03-07 08:59
2003.03.20
Размер exe файла.