Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: CL | DM;

Вниз

Создание компонент   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
1-7426
johny
2003-06-23 11:47
2003.07.03
Подскажите как пользоваться TreeView


3-7288
Саня
2003-06-07 10:59
2003.07.03
Может ли EhLib подсчитать


8-7556
ak75
2003-03-21 10:37
2003.07.03
---|Ветка была без названия|---


14-7713
Hooch
2003-06-17 14:59
2003.07.03
ToolBar


14-7674
Федя
2003-06-16 21:43
2003.07.03
Длина выданной программой команды слишком велика