Форум: "Основная";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
ВнизСоздание компонент Найти похожие ветки
← →
Darrin (2003-06-23 14:39) [0]ДД. Возникла следующая проблема: создал компонент TGPanel на основе TPanel у которого объявил свойство
private
FImage: TPicture;
published
property Image:Tpicture read FImage write SetImage;
procedure TGPanel.SetImage(Value:Tpicture);
begin
FImage.Assign(value);
end;
Все замечательно, только при компиляции проекта не происходит загрузка той картинки, что я присвоил свойству Image в дизайн-тайме, и соответственно ничего не пашет.
← →
Семен Сорокин (2003-06-23 14:42) [1]не происходит загрузка той картинки
куда?
и соответственно ничего не пашет
как это проявляется?
← →
Darrin (2003-06-23 14:46) [2]в ран-тайме не доступна картинка загруженная в дизайн-тайме
← →
Skier (2003-06-23 14:47) [3]>Darrin © (23.06.03 14:39)
Код всего компанента покажи.
← →
Darrin (2003-06-23 14:48) [4]в ран-тайме не доступна картинка загруженная в дизайн-тайме
← →
Darrin (2003-06-23 14:54) [5]> Skier © (23.06.03 14:47)
Это краткий вариант
TDPGToolBar = class(TDPPanel)
private
FImage:Tpicture;
FShowBMP:TbitMap;
procedure SetImage(Value:TPicture);
protected
procedure Paint; override;
public
{ Public declarations }
property canvas;
constructor Create(Owner: TComponent);override;
destructor Destroy; override;
published
{ Published declarations }
property Image:TPicture read FImage write SetImage;
end;
constructor TDPGToolBar.Create(Owner: TComponent);
begin
inherited create(Owner);
FImage:=Tpicture.Create;
FShowBMP:=TbitMap.Create;
end;
procedure TDPGToolBar.Paint;
var RectSource,RectDest:Trect;
begin
inherited;
RectSource.Left:=0;
RectSource.Top:=0;
RectSource.Right:=FShowBMP.Width;
RectSource.Bottom:=FShowBMP.Height;
if FButtonAlign=alLeft then
begin
RectDest.Left:=0;
RectDest.Top:=0;
RectDest.Right:=FShowBMP.Width;
RectDest.Bottom:=FShowBMP.Height;
end else
begin
RectDest.Left:=width-FShowBMP.Width;
RectDest.Top:=0;
RectDest.Right:=FShowBMP.Width;
RectDest.Bottom:=FShowBMP.Height;
end;
// Canvas.CopyRect(RectDest,Fimage.Bitmap.Canvas,RectSource);
Canvas.CopyRect(RectDest,FShowBMP.Canvas,RectSource);
// Canvas.Rectangle(10,10,30,30);
end;
procedure TDPGToolBar.SetImage(Value:Tpicture);
var RectSource,RectDest:Trect;
begin
FImage.Assign(value);
RectSource.Left:=0;
RectSource.Top:=0;
RectSource.Right:=Fimage.Width;
RectSource.Bottom:=trunc(Fimage.Height/3);
RectDest.Left:=0;
RectDest.Top:=0;
RectDest.Right:=RectSource.Right;
RectDest.Bottom:=RectSource.Bottom;
FShowBMP.Width:=Fimage.Width;
FShowBMP.Height:=Fimage.Height;
FShowBMP.Canvas.CopyRect(RectDest,Fimage.Bitmap.Canvas,RectSource);
Repaint;
end;
end;
← →
Семен Сорокин (2003-06-23 15:21) [6]что это TDPPanel???
← →
Darrin (2003-06-23 15:56) [7]TDPPanel = class(TPanel), но это не приципиально
← →
Darrin (2003-06-23 15:56) [8]TDPPanel = class(TPanel)
private
FOnMouseLeave: TNotifyEvent;
FOnMouseEnter: TNotifyEvent;
procedure CMMouseEnter(var msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var msg: TMessage); message CM_MOUSELEAVE;
protected
procedure MouseEnter; dynamic;
procedure MouseLeave; dynamic;
public
property Canvas;
constructor Create(AOwner : TComponent); override;
published
property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
end;
← →
Семен Сорокин (2003-06-23 16:01) [9]Глянь реализацию TImage, возможно здесь какие-то проблемы с канвой. А пробовал задавать TPicture в рантайме? работает?
← →
Darrin (2003-06-23 16:06) [10]если задать свойство FIMage.bitmap.loadfromfile("..."); в ран-таме все работает
← →
Darrin (2003-06-23 16:07) [11]а на канве все рисуется нормально
← →
Darrin (2003-06-23 16:17) [12]почему-то не происходит загрузка ImageData из *.dfm при создании формы, не срабатывает процедура SetImage
← →
Skier (2003-06-23 16:44) [13]Как используешь DefineBinaryProperty ? Если используешь...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.03;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c