Главная страница
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.022 c
3-63956
Alander
2003-03-04 08:21
2003.03.20
Компонент abcDBTreeView


1-64081
Кулешов
2003-03-09 20:43
2003.03.20
Как в TEdit вводить только числа?


14-64288
Arcada
2003-03-06 12:46
2003.03.20
Поиск файла


1-64165
ДмирийК
2003-03-06 17:46
2003.03.20
Разница между обычным и консольным приложением


14-64356
DimonXP
2003-03-05 10:12
2003.03.20
Прога комилится, но не запускается