Главная страница
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.105 c
2-1343048239
DevilDevil
2012-07-23 16:57
2013.03.22
Очередь потоков


2-1342617866
Andrey K
2012-07-18 17:24
2013.03.22
Как в ShortCut вставить цифру с боковой клавиатуры.


15-1353443403
Юрий
2012-11-21 00:30
2013.03.22
С днем рождения ! 21 ноября 2012 среда


2-1328946359
Виктор77
2012-02-11 11:45
2013.03.22
Проверка подмены IP-адреса


15-1339221071
MBo
2012-06-09 09:51
2013.03.22
Не бриться!