|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.07.2015, 23:01 | #21 |
Пользователь
Регистрация: 15.04.2015
Сообщений: 30
|
Тогда class и static. Слово это нейтрализует Self.
Код:
|
30.07.2015, 23:07 | #22 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Пробовал уже, не выходит, выдает ошибку:
Цитата:
Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
|
30.07.2015, 23:13 | #23 |
Пользователь
Регистрация: 15.04.2015
Сообщений: 30
|
XE7, собралось.
Код:
|
30.07.2015, 23:21 | #24 | |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Я собираю на Delphi 7 (build 4.453).
Если код: Код:
Цитата:
Выходит проблема в версии компилятора...
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.07.2015 в 23:24. |
|
30.07.2015, 23:22 | #25 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Цитата:
Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
30.07.2015, 23:55 | #26 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
JUDAS, Спасибо! Это то, что я и хотел.
Если не сложно, можете объяснить, как такое вложение функций называется, и почему для этого не нужно писать var перед _PROC? Я так понимаю, видимость этой функции будет только внутри TForm1.FormCreate(), но тело функции не в стеке и ее можно продолжать использовать.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 30.07.2015 в 23:57. |
31.07.2015, 00:41 | #27 | |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
То? Поле callback не является функцией, просто указатель. Функция _PROC не принадлежит классу, её можно вынести из FormCreate() и ничего не изменится.
Не в курсе что именно делает "static" в XE, но в Борландовских оно неприменимо к методам и свойствам. Цитата:
Так а зачем это всё? Если некто принимает простую функцию - метод класса он принимать не станет. И наоборот. |
|
31.07.2015, 00:54 | #28 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Подход может не из самых лучших, но он работает, и функция _PROC недоступна с других мест. Если есть лучше вариант для Delphi 7, можете предложить его.
В C++ это было так: Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 31.07.2015 в 00:56. |
31.07.2015, 01:28 | #29 | ||
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Цитата:
Цитата:
Но недоступна только потому что оно столь странно объявлено. Что-то мне подсказывает что так не следует объявлять. [где же уважаемый GunSmoker который может пояснить все нюансы?] Вынес за FormCreate() - код работает как и прежде, но _PROC() стало доступно как обычно. Код:
У меня нету C++ под рукою, а если так (блин, давно не писал на нём, накосячить с синтаксисом могу) чего будет?: Код:
|
||
31.07.2015, 02:09 | #30 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Если посмотреть дизассемблером, то в C++ статик функцию класса нельзя отличить от обычной, но речь же идет не об этом.
В C++ static функции можно вызывать без объекта класса, т.е. они работают как обычные функции вне класса, но находятся в классе. Этого я и добиваюсь в Delphi 7. Код на C++, который Вы написали не скомпилируется, будет ошибка, что нельзя со статик функций обращаться к не статик переменным класса.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
На С++ написать программу с реализацией в виде вызова функции по ссылке: Функция должна вернуть не одно, а ДВА(или более) значения | Raitek | Помощь студентам | 2 | 23.01.2015 07:41 |
Процедура и функция | Ken_Watanabe | Помощь студентам | 9 | 09.09.2014 16:27 |
Сделать чтобы функция стандартная String.Delete работала в классе потомке от TStringList? | nick17 | Общие вопросы Delphi | 4 | 09.11.2010 14:17 |
Метод обратного вызова? | Altera | Общие вопросы Delphi | 20 | 11.08.2010 18:27 |
Функция обратного вызова и таймер на WinApi | flug | Win Api | 4 | 17.09.2009 16:06 |