Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: 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 вся ветка

Текущий архив: 2002.11.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.024 c
1-45819
Mad_Ghost
2002-11-04 15:08
2002.11.14
Delphi & Excel


8-46014
ctapik-net
2002-07-24 22:36
2002.11.14
Надпись на картинке


4-46189
[lamer]Barmaglot
2002-09-30 11:05
2002.11.14
Как выключить иконку монитора в trаy, иконку раскладки(рус, лат)?


4-46198
Xemax
2002-10-01 17:55
2002.11.14
Как запретить отладку процесса ?


14-46134
p_albert77@mail.ru
2002-10-27 01:19
2002.11.14
программа печатает сама себя???