| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Error |
| Автор: Vex 14.2.2003, 22:45 | ||
Почему так нельзя сделать? (Выдает ошибку). |
| Автор: 78125 14.2.2003, 22:56 |
| type TMyMemo=class(TMemo); end; TForm1 = class(TForm) Memo1: TMyMemo; private { Private declarations } procedure WMCopy(var a:TWMCopy); message WM_COPY; public { Public declarations } end; по моим соображениям то ли вместо двоеточия надо = то ли это дело в разделе var написать то ли ... на этом мысль заканчивается |
| Автор: SmaLL 14.2.2003, 23:05 | ||||
Сразу после TForm1 = class(TForm) в описании формы пишутся поля и методы описанные в *.dfm. Если хочешь получить наследника от TMemo, то сделай свой компонент и используй его. Это делается так: Меню Component/New Component, как родителя (ancestor type) выбираешь TMemo, а дальше думаю сам разберЁшься. |
| Автор: Song 15.2.2003, 17:16 |
| Непонятно, где ты хочешь перехватить WM_COPY на форме или в мемо? Как у тебя написано перехватит в форме. |
| Автор: Vex 15.2.2003, 22:53 | ||
В OleContainer, но для простоты возьмем Мемо. Я так понимаю, надо создать свой компонент потомок от мемо и добавить туда процедуру перехвата сообщения. Я на правильном пути? |
| Автор: Vit 15.2.2003, 23:09 |
| Ага, так не получится, чтобы вставить компонент в этот раздел: TForm1 = class(TForm) Memo1: TMyMemo; private надо чтобы он был зарегистрирован в палитре компонентов., иначе ты можешь вставить его только в секции Private, Protected, Public или Published и создавать его вручную. А если компонент прописывается между объявлением класса и private, то это значит, что визуальная оболочка Дельфи "знает" этот компонент и будет использовать его в Object Inspector. Кстати все компоненты, описанные в этой секции прописаны так же и в DFM файле |
| Автор: Vex 15.2.2003, 23:14 |
| Спасибо, буду пробовать. |
| Автор: Vex 21.2.2003, 03:30 |
| Попробовал и ... ничего не вышло С Edit, например, такое проходит, а вот с OleContainer нет, может надо ловить какое-то другое сообщение? |
| Автор: Leonx 26.12.2019, 12:52 | ||||||
Как вызвать в другом юните уже созданный экземпляр, и получить доступ к его полям.(Юниты связаны) Вот код Юнита, где создан класс. При таких действиях вылезает Error:this form of method call only allowed for class methods, но он и должен вылезать,т.к. я делаю неверно.Подскажите, как правильно.
Вот юнит с формой
Вот создание класса;
|