Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2013, 09:18   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Как в TCollectionItem использовать метод Сliсk

если использовать procedure Click;dynamic, то компилятор не ругается, но и не какой реакции нет, а если override, то пишет что Method 'Click' not found in base class
Код:
TMyItem = class(TCollectionItem)
  private;
    FOnClick: TNotifyEvent;
    protected
    procedure SetOnclick(Value: TNotifyEvent);
    procedure Click; override;
  published
   property OnClick: TNotifyEvent read FOnClickwrite FOnClick;
bulldog5293 вне форума Ответить с цитированием
Старый 09.10.2013, 09:24   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

С какого перепуга оно будет реагировать? Это не визуальный класс, прямой наследник TPersistent.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.10.2013, 10:36   #3
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

чтобы реагировад, подписать надо и вызвать не забыть, а по волшебству тут не бывает
eval вне форума Ответить с цитированием
Старый 09.10.2013, 11:20   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Вторая серия?
http://www.programmersforum.ru/showt...CollectionItem
northener вне форума Ответить с цитированием
Старый 09.10.2013, 13:06   #5
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,777
По умолчанию

Похоже, что аффтар никак автоматизацию кнопки бачка унитаза не напишет. Код его не компилил, но глядя на вызов Pie в отрисовке, в голову именно кнопка смыва и приходит. А коллекция -- чтобы количество воды после разных дел регулировать: отлил, освободился, наблевал и т. п.
Vapaamies вне форума Ответить с цитированием
Старый 09.10.2013, 19:08   #6
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Цитата:
чтобы реагировад, подписать надо и вызвать не забыть, а по волшебству тут не бывает
таким макарам не получается, вырубает delphi
Код:
TMyItem = class(TCollectionItem)
  private;
    FOnClick: TNotifyEvent;
    Function GetOnClick:TNotifyEvent;
    Procedure SetOnClick(Value:TNotifyEvent);
    protected
    procedure SetOnclick(Value: TNotifyEvent);
    procedure Click; override;
  published
   property OnClick: TNotifyEvent read FOnClickwrite FOnClick;
////
Function GetOnClick:TNotifyEvent;
Begin
  Result:=TbutonsItem.OnClick;
End;

Procedure SetOnClick(Value:TNotifyEvent);
Begin
  TbutonsItem.OnClick:=Value;
End;
Vapaamies? ну извени что мой компонент так похож на то чем ты любиш пользоваться
bulldog5293 вне форума Ответить с цитированием
Старый 09.10.2013, 19:49   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Result:=TbutonsItem.OnClick
это что? TbutonsItem это тип а вам надо селф, да и ваще чего вы тут делаете?
eval вне форума Ответить с цитированием
Старый 09.10.2013, 20:55   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Код:
procedure Click; override;
Сказали же, что не визуальный компонент это, нет у него в родителях никакого клика.

Что вы сделать пытаетесь?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.10.2013, 21:09   #9
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

bulldog5293, как ты думаешь мне достаточно будет написать следующие строчки
Код:
MyComPort = class(TcollectionItem)
private
  FOnRead: TNotifyEvent;
protected
  procedure ReadBuffer;
published 
  property OnRead read FOnRead write FOnRead;
end;
чтобы такой компонент мог читать то что приходит с COM порта?
northener вне форума Ответить с цитированием
Старый 10.10.2013, 10:27   #10
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

northener, я же не использую прямой указатель, а объясняю откуда читать и куда писать
Код:
 property OnClick: TNotifyEvent read FOnClickwrite FOnClick;
////
Function GetOnClick:TNotifyEvent;
Begin
  Result:=TbutonsItem.OnClick;
End;

Procedure SetOnClick(Value:TNotifyEvent);
Begin
  TbutonsItem.OnClick:=Value;
End;
Из ваших объяснений я понял что мне нада указывать на обработку нажатия от копонента или нет?
bulldog5293 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать метод FormClose в другой процедуре Sullla Общие вопросы Delphi 6 07.08.2011 18:22
В методе TCollectionItem получить значение поля класса, содержащего TCollection Roof Общие вопросы Delphi 2 12.09.2010 01:55
Какой метод использовать (java) I_cope Общие вопросы по Java, Java SE, Kotlin 2 19.11.2009 23:22
Как использовать метод GetTickCount? fractal Общие вопросы .NET 1 25.02.2009 12:42
ошибка VBA при попытке использовать свойство или метод chanchikela Microsoft Office Access 0 26.03.2008 23:17