Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
Иванушка   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
14-1133333643
Ega23
2005-11-30 09:54
2005.12.25
Стругацкие, Далёкая радуга


5-1118839875
Чайник
2005-06-15 16:51
2005.12.25
Удаление свойства-компонента.


2-1133770782
inew
2005-12-05 11:19
2005.12.25
Оптимизация клиент-серверного приложения.


14-1133427002
WondeRu
2005-12-01 11:50
2005.12.25
Какое приложение написать на J2ME?


2-1134098399
DDDeN
2005-12-09 06:19
2005.12.25
Рисование на TImage.Canvas





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