Главная страница
    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.46 MB
Время: 0.007 c
3-64038
skiph
2003-02-27 09:39
2003.03.20
File not found


1-64150
_Split_
2003-03-07 14:38
2003.03.20
ПОМОГИТЕ СО ШРИФТАМИ И SCALE!


1-64102
Андрусь
2003-03-05 14:57
2003.03.20
регулировка FindFirst/Next/Close


3-63988
Ольга
2003-02-26 15:59
2003.03.20
как лучше создавать связанные таблицы


14-64292
Strumpf
2003-03-06 12:04
2003.03.20
ComponentDesigner - что за зверь?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский