![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
||||
|
||||
Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Yanis, ты можешь привести пример с WndProc ,ато я тут попробовал и невыход.
Ну надеюсь вы поняли что я хочу передать WndProc - главная процедура обработки сообщений окна, так вот я хочу передать в компонент чтобы он перенаправил её на свою процедура ,а та вызывала-бы настояшию, конечно я могу сделать это и на прямую(через присвоение), но ради спортивного интереса хочу научиться передавать переменную-процедуру. Почему-то например Integer можно так передать ,а почему с функцией нето? Тот код который в первом сообщении отражает суть проблемы. Это сообщение отредактировал(а) Ak47black - 1.8.2007, 17:18 |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Ak47black, убери у себя var и посмотри мой пример. |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
эт как? ![]() Как я понимаю то, что ты подразумеваешь под этим есть не что иною как адресс на точку входа в процедуру. И вот скажи мне какая разница, будешь ты передавать через дополнительну переменную на эту процедуру или сразу указывать @Someproc.
Чесслово, себе и другим морочишь мозги. А на счет var параметра как Bose тебе правильно уже сказал, убери его. Просто компилятор немного боиться таких маневров ![]() -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Неа. У каждой формы есть переменная в которой храниться адрес процедуры обработки сообщений, вот я эту переменную и хочу передать. ![]() Это сообщение отредактировал(а) Ak47black - 1.8.2007, 17:59 |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Ну а что тебя останавлявает?
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Была в своё время задачка на интерес:
Отгадайте как она решалась? |
|||
|
||||
Ak47black |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Rennigth, не мне навороты не нужны.
Я могу тогда просто прямым способом присвоить, я просто хочу узнать как передать переменную в которой храниться адрес обработки сообщений окна. Тут Yanis писал чтото близкое к ответу.
Только мне не адрес нужен ,а переменную, хотя можно приравнять адрес к переменной. Я надеюсь чётко написал что я хочу сделать, если нет то извиняюсь, скажите если что. |
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 3 Всего: 9 |
Ak47black,
Читал усиленно всю тему. Но так и не понял, что в конце концов ты хочешь?! Но то что я понял, это CALLBACK ф-ция при регистрации окна. Если это так, то рекомендую обрабратиться к DRKB или DelphiWorld и поглядеть, как же там реализовано создание и отображение окна на чистом WinAPI. Да думаю ради увеличения знаний стоит туда глянуть очень даже стоит. ЗЫ: Я вероятно не понял темы, прошу выразить задачу более отчетливо! |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Я так и не понял, в чем проблема. Примеров приведено достаточно. Так или иначе вот ещё один вариант:
Я только одного не понимаю: на хрена тебе именно переменная-то сдалась. Это сообщение отредактировал(а) Bose - 1.8.2007, 20:16 |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
Ak47black |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2205 Регистрация: 2.12.2005 Репутация: 1 Всего: 0 |
Ну попробую так объяснить проблему, ок. на простых данных сначала.
Есть вот такой код
Этот код передаёт переменную i в процедуру SomeProc там её приравниваем 5. Это надеюсь все поймут. Теперь тоже самое с переменной которая содержит процедуру обработки окон.
Вот так надеюсь понятно ![]() Добавлено через 2 минуты и 7 секунд Yanis,
Так чтоли. |
||||||
|
|||||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Ну да. Потому что WndProc - это не переменная, которую мы могли бы изменить, а процедура. Ясно. Насколько я понял ты хочешь заменить стандартную оконную процедуру WndProc. Единственный способ который мне приходит в голову: Это создать наследника у которого перекрыт(overriden) метод WndProc. Всегда убивают такие постановки задачи. Тут прежде чем найти решенить задачу, нужно найти что именно решать. Ребус в ребусе... |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Ну ты попробуй этот код запусти ;) Надо добиться, что бы мой код работал -- два раза показал MessageBox. Добавлено @ 20:50 Как мне кажется я понял, что хочет Ak47black и моя задачка является самым ярким примером. Гипотетически Ak47black именно её и надо решить. Это сообщение отредактировал(а) Yanis - 1.8.2007, 20:50 |
|||
|
||||
MetalFan |
|
||||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
ну еще шляпу снять нафиг
Это сообщение отредактировал(а) MetalFan - 1.8.2007, 20:58 -------------------- There are always someone smarter than you... |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |