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

Вниз

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

 
Иванушка   (2005-06-10 15:46) [0]

Мастера, нужно добавить в компонент новое свойство для выбора иконки или картиенки.Вродебы разобрался и вродебы нет. Не пойму обязательно переопределять событие Edit в редакторе свойств.
Если можно, то пожалуйста наглядней объясните.


 
Юрий Зотов ©   (2005-06-10 21:15) [1]

Делайте свойство типа TPicture, тогда свой редактор вообще не будет нужен - автоматически подключится стандартный. Пример можно посмотреть, скажем, в TImage.


 
Иванушка   (2005-06-14 12:04) [2]

Объявил как TPicture, скомпилировал компонент все класно. Но вот при устаноке компонента на форму ругается:

Access violation at address 40003e91 in module "vcl50.bpl". Read of address 00000000


 
Иванушка   (2005-06-14 12:07) [3]

Да, а вот на другой машине на форме показалось но при изменении любого свойства выводится уже упомянутое сообщение.


 
-=XP=- ©   (2005-06-14 12:28) [4]

Объявил как TPicture, скомпилировал компонент все класно. Но вот при устаноке компонента на форму ругается:

А экземпляр TPicture создаете?
И каким образом производите чтение/запись свойства?


 
-=XP=- ©   (2005-06-14 12:36) [5]

type
 TMyComponent = class(TComponent)
 private
   FPicture: TPicture;
   procedure SetPicture(const APicture: TPicture);
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;
 published
   property Picture: TPicture read FPicture write SetPicture;
 end;

constructor TMyComponent.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 FPicture := TPicture.Create;
end;

destructor TMyComponent.Destroy;
begin
 FPicture.Free;
 destructor Destroy;
end;

procedure TMyComponent.SetPicture(const APicture: TPicture);
begin
 FPicture.Assign(APicture);
end;


P.S. Для отслеживания изменений у TPicture есть события OnChange, OnProgress.


 
Иванушка   (2005-06-14 12:45) [6]

Я тоже вначале подумал на счет объявления. Объявил и даже инициализировал как nil. Все равно не идет. Но больше всего, что, наверное, не правильно записываю значение. Потому что я ж говорю на другой машине все класс только при выборе значения ругань всякая. К тому же ни одно свойство не возможно ввести.
Попробую по-Вашему.


 
Иванушка   (2005-06-14 13:07) [7]

Не всеравно одно и тоже. Правда теперь я смог поместить на форму сам компонент и даже смог выбрать картинку(правда через все тоже сообщение), но снова Access... А что ты имел ввиду на счет отслеживания событий, где именно их отследить.


 
-=XP=- ©   (2005-06-14 14:22) [8]

Не всеравно одно и тоже

Приведите, пожалуйста, полный код Вашего компонента, а то получаются "разговоры ни о чем".

на счет отслеживания событий, где именно их отследить

constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FPicture := TPicture.Create;
FPicture.OnChange := OnPictureChange; // Метод, который будет вызываться по факту изменения Picture
end;

procedure TMyComponent.OnPictureChange(ASender: TObject);
begin
 // Действия на изменение Picture
end;



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

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
1-1133153544
Shlomo
2005-11-28 07:52
2005.12.25
Install Shield выдаёт непонятную ошибку?


2-1133880654
Максим
2005-12-06 17:50
2005.12.25
Помогите перевести код из Turbo Pascal в Delphi.


4-1129952964
Idx
2005-10-22 07:49
2005.12.25
Делаю “skin” для TabControl помогите


2-1134140482
Goast
2005-12-09 18:01
2005.12.25
Игнор ошибки!!!


2-1134137750
Толян
2005-12-09 17:15
2005.12.25
переменая типа Memo