Форум: "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