Вниз
Скачать: 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.051 c
2-1342612696
Светлана
2012-07-18 15:58
2013.03.22
Контекстное и главное меню


15-1351699705
ПростоФАН
2012-10-31 20:08
2013.03.22
Помощь в разработке по


2-1335292096
artemchik
2012-04-24 22:28
2013.03.22
настройка Delphi


15-1335731403
Юрий
2012-04-30 00:30
2013.03.22
С днем рождения ! 30 апреля 2012 понедельник


2-1337444815
TStas
2012-05-19 20:26
2013.03.22
Горизонтальная прокрутка ричЭдита




   Наверх