Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

MethodName


TStas ©   (2012-05-20 10:19:00) 

Есть класс наследник TComponent. Он в дельфи пока не установлен. Для его метода MethodName возвращает пустую строку. Это так и должно быть? Область видимости метода пробовал менять, лучше от этого не стало.


TStas   (2012-05-21 23:14:00) [1]

Проблемы я решил, всё работает, просто мне решение кажется некрасчивым. Смысл был в том, что быстрым клавишам, но не стандартным ShortCut, а, например, чтобы можно было, как в Дельфи, текст сдвигать Ctrl + Shift + I или что-то подобное делать. А конечной задачей было всё это в dfm запихать. Решил незатейливо: поскольку методов, которые клавишам могут быть назначены, не так-то и много, то запихал их имена в TStringList, а потом Case StringList.IndexOf(AName) of ... Всё чудно работает, пишется/читается из dfm, но как-то не красиво это.
>И что? Ну да, эти методы вызываются при работе с потоками (в частности, при чтении DFM). Но разве это означает, что их нельзя вызывать с другими целями? Не означает, конечно. //Вот-вот. Особенно, что для dfm мне и было нужно.


Юрий Зотов   (2012-05-20 22:13:00) [2]


> Anatoly Podgoretsky ©   (20.05.12 21:56) [10]

И что? Ну да, эти методы вызываются при работе с потоками (в частности, при чтении DFM). Но разве это означает, что их нельзя вызывать с другими целями? Не означает, конечно.


Anatoly Podgoretsky   (2012-05-20 21:56:00) [3]

> Юрий Зотов  (20.05.2012 19:21:09)  [9]

Я ударение поставил на streaming
Загрузка и запись из/в потока


Юрий Зотов   (2012-05-20 19:21:00) [4]


> Anatoly Podgoretsky ©   (20.05.12 18:52) [8]

Совершенно верно, вызывается "изнутри". Но никто не запрещает вызвать и "снаружи", если надо. Задачи ведь разные бывают.


Anatoly Podgoretsky   (2012-05-20 18:52:00) [5]

> Юрий Зотов  (20.05.2012 18:46:07)  [7]

Вообще то

> MethodName is used internally by the streaming system.


Юрий Зотов   (2012-05-20 18:46:00) [6]

> TStas   (20.05.12 10:19)

Сорри, не сразу понял вопрос. MethodName - это для published-методов, сиречь для обработчиков событий (поскольку другие методы пихать в published просто незачем).

Из хелпа:
If Address does not point to a published method of the object, MethodName returns an empty string.


Юрий Зотов   (2012-05-20 17:57:00) [7]


> TStas   (20.05.12 10:19)  

MethodName, MethodAddress и т.п. определяются по таблице методов, адрес которой хранится в VMT. Откуда же среда возьмет эту самую VMT, если компонент еще не установлен? Ее еще не существует.


TStas   (2012-05-20 11:42:00) [8]

Понял :(


Anatoly Podgoretsky   (2012-05-20 10:57:00) [9]

Из справки

There should be no need to call MethodName directly.


TStas   (2012-05-20 10:38:00) [10]

А как установлю, появится?


brother   (2012-05-20 10:37:00) [11]

имхо, имеется ввиду в дизайнер...


Anatoly Podgoretsky   (2012-05-20 10:31:00) [12]

Что значит не установлен


Наверх

Титульная страница Поиск, карта сайта Написать письмо