Главная страница
    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.46 MB
Время: 0.022 c
1-1133417197
RoboCop
2005-12-01 09:06
2005.12.25
Удалить границу у TComboBox


4-1130165545
VladimirVladimirovich
2005-10-24 18:52
2005.12.25
Текущий пользователь - администратор


2-1134140411
fun
2005-12-09 18:00
2005.12.25
Путь запуска dll


14-1133330138
123321
2005-11-30 08:55
2005.12.25
Кипелов - наркоман?


14-1133327838
red_imp
2005-11-30 08:17
2005.12.25
Как в 7 отправить письмо с вложеными файлами??





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