Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.20;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
6-64270
waterfoll
2003-02-02 04:37
2003.03.20
Как можно определить IP адресс в локальной сети и когда выходишь


6-64243
bmai
2003-01-28 15:27
2003.03.20
Как отследить получение IP адреса?


14-64384
Igel
2003-03-05 13:38
2003.03.20
Компоненты для просмотра SLB-файлов.


1-64117
mmmh
2003-03-11 00:02
2003.03.20
как сделать так чтобы комбо бох не закрывался пока не сделан выбо


3-64004
Palladin
2003-02-28 16:10
2003.03.20
Многозапросные запросы :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский