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

Вниз

DesignTime отрисовка   Найти похожие ветки 

 
SPeller   (2002-11-17 13:36) [0]

Всем доброго времени суток. У меня такая проблема. Зеркало моего компонента наследуется от TKOLPanel, и всё что мне требуется от зеркала - нарисовать на этой панельке битмап. Делаю так:

TKOLSPLPicture = class( TKOLPanel )
private
fBitmap: TBitmap;
procedure SetBitmap( const NV: TBitmap );
public
procedure Paint; override;
......
property Bitmap: TBitmap read fBitmap write SetBitmap;
end;

....

procedure TKOLSPLPicture.SetBitmap( const NV: TBitmap );
begin
Paint;
fBitmap := NV;
end;

procedure TKOLSPLPicture.Paint;
begin
inherited;
if not fBitmap.Empty then
BitBlt( Canvas.Handle, 0, 0, fBitmap.Width, fBitmap.Height,
fBitmap.Canvas.Handle, 0, 0, SRCCOPY );
end;


Однако при этом при попытке задания битмапа вылетает ошибка в rtl60.bpl, моей bpl, DesignIDE.bpl и, соответственно, никакой битмап не вырисовывается. При этом при попытке удаления или иных действий с контролом постоянно вылетают ошибки в каких-то rtl, bpl и т.п., однажды даже ошибка в VMHSyntaxEdit сюда затесалась, коим в проекте даже и не пахло :-). Собственно вопрос: как так отрисовать, чтобы без ошибок?


 
Alexander   (2002-11-17 21:41) [1]

Ответа я не знаю...
А почему Paint в SetBitmap стоит раньше присваивания? Получается при присваивании ты сначала перерисовываешь, а потом меняешь битмап, то есть изменённый не отрисуется.


 
SPeller   (2002-11-18 01:52) [2]


> А почему Paint в SetBitmap стоит раньше присваивания?

Это не влияет. Если сделать присвоение первым то результат тот же. Тем более перед отрисовкой стоит проверка if not fBitmap.Empty then


 
Gandalf   (2002-11-20 10:02) [3]

А ты не забыл битмап создать, fBitmap:=TBitmap.Create? Можешь код кинуть, там посмотрим.


 
Gandalf   (2002-11-20 19:55) [4]

Малений урок по компоненто строению... я как-то сразу не заметил, не люблю код на глаз проверять.

procedure TKOLSPLPicture.SetBitmap( const NV: TBitmap );
begin
Paint;
//fBitmap := NV; // Так делать незя!
fBitmap.Assign(NV);
end;


 
SPeller   (2002-11-21 11:57) [5]

Протупил... :-))
Просто последние с пол-тысячи присвоений свойств я делал для простых переменных, а тут машинально написал... ))



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

Форум: "KOL";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-68006
DenKop
2003-07-03 19:36
2003.07.21
vba office


6-67934
Шишкин Илья
2003-05-13 21:14
2003.07.21
Как проверить соединение с интернет?


14-68003
IDDQD
2003-07-03 15:55
2003.07.21
DBComboBox


8-67920
Sword-Fish
2003-03-31 17:00
2003.07.21
Ресурсы !!!


3-67690
grifon_nn
2003-06-25 11:26
2003.07.21
Сбои в БД





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