Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
14-7653
Леприкон
2003-06-16 14:00
2003.07.03
Компоненты


14-7725
Knight
2003-06-16 21:57
2003.07.03
ПОРЯДОК... ПРОГРЕСС...


3-7306
miss
2003-06-07 07:20
2003.07.03
Даты


3-7347
Sedunov Vitaly
2003-06-10 13:54
2003.07.03
ClientDataSet.Locate


3-7289
Stelius
2003-06-07 22:54
2003.07.03
По поводу сортировки





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