Вниз
Скачать: 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.055 c
15-1343248203
Юрий
2012-07-26 00:30
2013.03.22
С днем рождения ! 26 июля 2012 четверг


15-1350631915
AV
2012-10-19 11:31
2013.03.22
MSSQL. Посоветуйте индексы на таблицу


2-1340649651
Pcrepair
2012-06-25 22:40
2013.03.22
Проблема с вводом-выводом данных через параметры процедуры


3-1281355338
defen
2010-08-09 16:02
2013.03.22
Добавление файла в базу


15-1352821553
Дмитрий С
2012-11-13 19:45
2013.03.22
Как записать математически?




   Наверх