Конференция "Компоненты" » Перехват события у TSpinEdit [D7, WinXP]
 
  • Andrey_ka (13.11.08 16:20) [0]
    создалновый компонент на базе TSpinEdit, теперь мне нужно изменить процедуру Onchange, даже не изменить а немного даполнить, подскажите как!

    Перехватываю событие  message CM_TEXTCHANGED;
    но оно не генерируется если ввести число, только при нажатии на кнопки
  • Сергей М. © (13.11.08 16:32) [1]

    > мне нужно изменить процедуру Onchange


    TSpinEdit не имеет метода OnChange
    TSpinEdit имеет свойство OnChanged
  • DimaBr © (13.11.08 16:38) [2]
    Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
    Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
  • Юрий Зотов © (15.11.08 13:30) [3]
    > DimaBr ©   (13.11.08 16:38) [2]

    ...создал новый компонент на базе TSpinEdit...

    > Andrey_ka   (13.11.08 16:20)  
    > нужно изменить процедуру Onchange,
    > даже не изменить а немного даполнить

    Событие OnChange трогать не надо, оно не для писателей компонентов, а для их пользователей. Перекройте метод Change и в нем вносите нужные дополнения.
  • DimaBr © (17.11.08 09:06) [4]
    > Юрий Зотов ©   (15.11.08 13:30) [3]

    Извиняюсь, недоглядел !

    type
    TMySpinEdit = class(TSpinEdit)
     protected
       procedure Change;override;
    end;

    { TMySpinEdit }

    procedure TMySpinEdit.Change;
    begin
     inherited Change;
     // NewChange
    end;

  • Юрий Зотов © (17.11.08 14:50) [5]
    > Andrey_ka  

    Небольшой комментарий к [4]. При вызове унаследованного метода Change будет сгенерено событие OnChange и вызван его пользовательский обработчик (если он имеется). Вам нужно решить, где Вы хотите добавить свой код - до вызова пользовательского обработчика, после его вызова, или и там, и там. Соответственно, сам этот код Вам нужно написать до вызова inherited Change, после его вызова, или и там, и там. При этом имейте в виду, что пользовательский обработчик может, вообще говоря, сделать что угодно - например, изменить свойства компонента или возбудить Exception.
  • DimaBr © (17.11.08 15:21) [6]
    > Вам нужно решить, где Вы хотите добавить свой код - до вызова пользовательского обработчика, после его вызова, или и там, и там.
    или вообще не вызывать пользовательский обработчик
 
Конференция "Компоненты" » Перехват события у TSpinEdit [D7, WinXP]
Есть новые Нет новых   [134464   +62][b:0][p:0.001]