Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как правильно передать саму процедуру 
V
    Опции темы
Bose
Дата 1.8.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



Цитата(Yanis @  1.8.2007,  20:49 Найти цитируемый пост)
Как мне кажется я понял, что хочет Ak47black и моя задачка является самым ярким примером.Гипотетически Ak47black именно её и надо решить.

Насколько я понял решение ты сам и приводил сегодня тут

Цитата(Yanis @  1.8.2007,  20:49 Найти цитируемый пост)
Как мне кажется я понял, что хочет Ak47black и моя задачка является самым ярким примером.

Хммм... посмотрим

Мне больше интересно понимает ли Ak47black сам чего хочет и как он это всё-таки реализует smile 
PM MAIL WWW Skype   Вверх
Yanis
Дата 1.8.2007, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(MetalFan @  1.8.2007,  21:56 Найти цитируемый пост)
ну еще шляпу снять нафиг

А ты не снимай ;) Так же интересней.

Добавлено через 1 минуту и 18 секунд
Ak47black
Мож забьёшь на задачу? smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Ak47black
Дата 1.8.2007, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Yanis, ну к этому дело идёт  smile .
Наверно тут нереально сделать так.
Но просто интересно.

Цитата

Мне больше интересно понимает ли Ak47black сам чего хочет и как он это всё-таки реализует smile 

Сохраняю старую процедуру->приравниваю свою которая процеживает сообшения->вызываю старую
Только это всё хочу в классе сделать.

Это сообщение отредактировал(а) Ak47black - 1.8.2007, 21:40
PM MAIL   Вверх
MetalFan
Дата 1.8.2007, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(Yanis @  1.8.2007,  20:59 Найти цитируемый пост)
А ты не снимай ;)

две собаки не катят. компилятор ругаецца. если только еще одну переменную вводить. иначе - никак


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ak47black
Дата 1.8.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Цитата

две собаки не катят. компилятор ругаецца.

Ну да некатит  smile . Странно почему такое нельзя сделать.
По логике если можно передать Integer переменную, то почему нельзя переменную в которой храниться адрес процедуры. Они вроде даже и по размеру одинаковые.

Это сообщение отредактировал(а) Ak47black - 1.8.2007, 21:36
PM MAIL   Вверх
Yanis
Дата 1.8.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



MetalFanAk47black
addr := @@proc;


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Ak47black
Дата 1.8.2007, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Yanis, блин извращения  smile 
Я что на Test процедуру посмотрел  smile .
PM MAIL   Вверх
Bose
Дата 1.8.2007, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



Цитата(Ak47black @  1.8.2007,  21:07 Найти цитируемый пост)
Сохраняю старую процедуру->приравниваю свою которая процеживает сообшения->вызываю старую

Занудно: Не приравниваю а присваиваю. 
Нельзя так просто взять и присвоить что-то процедуре. Присваивать можно только переменным. В данном топике все мои примеры касались переменных процедурного типа. Чтобы решить твою задачу через попу, можно попробовать поковыряцца с таблицей адресов методов( не помню как она называется), может быть можно повесить хук(в них я вообще ничего не понимаю). 

А идеальный и верный с моей точки зрения вариант - это написать наследника который перекрывает WndProc и фильтрует сообщения. 

Хотя если тебе нужно реализовать такую фильрацию для кучи чужих разнородных компонент, то это тоже не вариант.

 smile 
PM MAIL WWW Skype   Вверх
MetalFan
Дата 1.8.2007, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Цитата(Yanis @  1.8.2007,  21:43 Найти цитируемый пост)
addr := @@proc;

Цитата(Ak47black @  1.8.2007,  21:53 Найти цитируемый пост)
Я что на Test процедуру посмотрел

мда) аналогично)
ну да, я просто "пропустил" первую строку





--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Ak47black
Дата 1.8.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Bose, лан я тут просто могу напрямую присвоить.
Просто хотел убедиться что так нельзя.
PM MAIL   Вверх
Bose
Дата 2.8.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



Цитата(Ak47black @  1.8.2007,  22:12 Найти цитируемый пост)
Bose, лан я тут просто могу напрямую присвоить.Просто хотел убедиться что так нельзя.

Если ты изначально хотел присвоить, то почему не написал так в вопросе?  smile 

Гони плюс как компенсацию за потраченные нервы и время! smile 

Это сообщение отредактировал(а) Bose - 2.8.2007, 00:29
PM MAIL WWW Skype   Вверх
Yanis
Дата 2.8.2007, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Bose @  2.8.2007,  01:28 Найти цитируемый пост)
Гони плюс как компенсацию за потраченные нервы и время!

smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Rennigth
Дата 2.8.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Yanis
Так нагляднее чем через две собаки smile
Код

procedure Test(const str: string);
begin
  ShowMessage('test : ' + str);
end;

type
  TProc = procedure (const str: string);
var
  proc : TProc;
  laddr : Pointer;
begin
  proc := Test;
  proc('begin');
  laddr := Addr(@proc);
  TProc(laddr^)('passed');
end.



пысы: Сорь что переименовал переменную, но есть такая (Addr) функция которой как раз можно воспользоваться  smile 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
MetalFan
Дата 2.8.2007, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Rennigth, да те же яйца... я бы не сказал, что нагляднее)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1007 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.