Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.07 c
15-1343713763
Артём
2012-07-31 09:49
2013.03.22
MD5 hash


15-1339744950
RWolf
2012-06-15 11:22
2013.03.22
Древовидный редактор настроек


15-1352269270
Chorus
2012-11-07 10:21
2013.03.22
Вычисление высот в произвольном треугольнике


15-1331191660
iTorrent
2012-03-08 11:27
2013.03.22
Хочу сделать сайт...


15-1330693838
Scott Storch
2012-03-02 17:10
2013.03.22
Delta Compression API




   Наверх