Вниз
Скачать: CL | DM;

Как грамотно применить операцию @ применительно к процедуре?   Найти похожие ветки 

← →
kofman ©   (2002-11-02 13:50) [0]

Подскажите пожалуйста, у меня два вопроса:
1.) При обращении к процедуре: @MyProc, я так понимаю должен получить адрес, или точку входа в данную процедуру, но при компиляции кода:
var
p:pointer;
begin
p:=@Button3Click(Sender);

возникает ошибка "Variable required" , что тут не так?

2.) Как обратиться к той области данных на которую должен указывать указатель p ?


← →
down   (2002-11-02 13:53) [1]

1.Button3Click - это, по всей видимости, procedure of object, для нее нужно 2 указателя
2.p^



← →
kofman ©   (2002-11-02 17:21) [2]

>down - спасибо, вот только непонятно:
1. А какой второй указатель?
2. Как определить, какого размера область памяти которая выделена под процедуру Button3Click?


← →
down   (2002-11-02 17:31) [3]

1. Второй указатель - это указатель на объект, к которому применяется метод
2. Form1.MethodAddress(Button3Click) - Form1.MethodAddress(имя следующего за Button3Click метода), я так думаю


← →
down   (2002-11-02 17:35) [4]

названия методов должны быть в кавычках


← →
Ihor Osov'yak ©   (2002-11-02 17:57) [5]

2 kofman © (02.11.02 13:50):
p:=@TForm1.Button3Click;


> 2.) Как обратиться к той области данных на которую должен
> указывать указатель p ?


p будет указывать на код, а не данные.
А воообще ответ зависит от того, что Вы понимаете под словом обратится



← →
kofman ©   (2002-11-02 20:05) [6]

Мне надо всю область памяти которая выделена под эту процедуру сохранить в массив.


← →
Юрий Зотов ©   (2002-11-03 10:18) [7]

Пример для регулярной процедуры.

procedure Proc1(...);
begin
...
end;

procedure Proc2(...);
begin
...
end;

var
Proc1Body = array of byte;

procedure TForm1.Button1Click(Sender: TObject);
var
Len: DWORD;
begin
Len := DWORD(@Proc2) - DWORD(@Proc1);
SetLength(Proc1Body, Len);
CopyMemory(@Proc1Body[0], @Proc1, Len)
end;


← →
Ученик ©   (2002-11-03 10:22) [8]

>kofman © (02.11.02 20:05)
Если для защиты, то будут проблемы, обсуждаемые в форуме раньше


← →
kofman ©   (2002-11-03 10:49) [9]

>Юрий Зотов - большое спасибо, кажется это точто нужно
>Ученик - в общем-то не для защиты, но мысль интересная:)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
3-45706
_ALEX70_
2002-10-23 15:01
2002.11.14
Запрос в хронимой процедуре


3-45724
Igoryan
2002-10-24 11:44
2002.11.14
Очень надо!!!!!!!!!!!!


7-46168
Ш-К
2002-09-13 14:51
2002.11.14
Кто-нибудь работал с ПУ по протоколу ЕРР?


4-46193
k
2002-10-03 12:42
2002.11.14
как определить момент покидания окна курсором


14-46112
brestmarket
2002-10-25 22:07
2002.11.14
Может есть способ сделать XP-совместимым SpeedButton в Delphi6 ?




   Наверх