Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

MethodName   Найти похожие ветки 

 
TStas   (2012-05-20 10:19) [0]

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


 
Anatoly Podgoretsky ©   (2012-05-20 10:31) [1]

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


 
brother ©   (2012-05-20 10:37) [2]

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


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

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


 
Anatoly Podgoretsky ©   (2012-05-20 10:57) [4]

Из справки

There should be no need to call MethodName directly.


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

Понял :(


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


> TStas   (20.05.12 10:19)  

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


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

> 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.


 
Anatoly Podgoretsky ©   (2012-05-20 18:52) [8]

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

Вообще то

> MethodName is used internally by the streaming system.


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


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

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


 
Anatoly Podgoretsky ©   (2012-05-20 21:56) [10]

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

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


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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.199 c
2-1332430983
теркин
2012-03-22 19:43
2013.03.22
Представление двухмерного массива в виде динамического списка


4-1245173597
Макс РВС
2009-06-16 21:33
2013.03.22
Отключение хард диска по букве


15-1338451685
TUser
2012-05-31 12:08
2013.03.22
Дошкольное программирование


15-1340000253
palva
2012-06-18 10:17
2013.03.22
Рожденным в СССР


15-1320615494
Kerk
2011-11-07 00:38
2013.03.22
Подсветка синтаксиса кода на форуме в Firefox и Chrome (beta)