Форум: "Основная";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизСсылка на * of object в виде строки Найти похожие ветки
← →
kblc © (2005-08-18 09:32) [0]Уважаемые мастера, у меня к вам вопрос:
Как передать аддрес в виде строки, а потом его вернуть наprocedure of object
Делаю так:
type
TProc = procedure of object;
...
var
proc: TProc;
proc1: TProc;
s: string;
...
begin
proc = Form1.Myprocedure;
s:=IntToStr(Integer(proc)); //адресс в виде строки
Integer(@proc1):=StrToInt(s); //возвращаю
end;
но что-то не работает - вдрес не тот, вообщем просто ошибка :( почему?
← →
MBo © (2005-08-18 09:35) [1]procedure of object представляет собой record типа TMethod - есть в справке.
← →
kblc © (2005-08-18 09:41) [2]Зачем он мне? мне нужно передать это всего лишь в виде строки (только строки). Может кто подскажет?
← →
Leonid Troyanovsky © (2005-08-18 09:56) [3]
> kblc © (18.08.05 09:41) [2]
> Зачем он мне? мне нужно передать это всего лишь в виде строки
> (только строки).
Пояснительные выражения объясняют темные мысли. [К.Прутков]
--
Regards, LVT.
← →
kblc © (2005-08-18 10:29) [4]Leonid Troyanovsky: не издевайся...
и всё-таки, как это сделать?
← →
Leonid Troyanovsky © (2005-08-18 10:45) [5]Удалено модератором
← →
Digitman © (2005-08-18 10:55) [6]procedure TForm1.Button1Click(Sender: TObject);
type
TProc = procedure of object;
var
proc: TProc;
proc1: TProc;
s: string;
method: TMethod;
begin
proc := Form1.Myprocedure;
method := TMethod(proc);
//туда
s:=IntToStr(Integer(method.Code));
ShowMessage(s);
//обратно
TMethod(proc1).Code := Pointer(StrToInt(s));
proc1;
end;
procedure TForm1.MyProcedure;
begin
ShowMessage("Маемся дурью");
end;
← →
kblc © (2005-08-18 10:56) [7]Задача: Надо передать адресс на procedure of object в строке другому приложению, (связь с другим приложением осуществляеться только так), а из этого самого приложения вытащить адрес, преобразовать его в procedure of object и выполнить эту процедуру (с опред. параметрами). Вот впринципе и всё.
← →
Digitman © (2005-08-18 11:01) [8]
> kblc © (18.08.05 10:56) [7]
> Надо передать адресс на procedure of object в строке другому
> приложению
умней придумать сложно.
> связь с другим приложением осуществляеться только так
неужели ?
и иных способов/технологий не существует как бы ?
> из этого самого приложения вытащить адрес
ну вытащил ты его.
и поимел адрес в ЧУЖОМ ВАП.
> выполнить эту процедуру (с опред. параметрами).
в ЧЬЕМ ВАП ?
только не говори что ВАП Win32-процесса - это нечто тебе неизвестное и ни о чем тебе не говорящее
← →
Leonid Troyanovsky © (2005-08-18 11:05) [9]
> kblc © (18.08.05 10:56) [7]
> Задача: Надо передать адресс на procedure of object в строке
> другому приложению,
Delphi help.
DevGuide: Developing COM-based applications
Creating simple COM servers
--
Regards, LVT.
← →
kblc © (2005-08-18 11:59) [10]Оч. большое спасибо
← →
kblc © (2005-08-18 11:59) [11]Оч. большое спасибо
← →
kblc © (2005-08-18 13:16) [12]Прошу прощения, вопрос я бы хотел теперь изменить:
Почему теперь, когда я вызываю ту самую функцию, адрес которой мне был передан строкой, то внутри этой процедурыSelf=nil
? А все врутренние переменных класса не доступны?
← →
Alexander Panov © (2005-08-18 13:30) [13]А что ж ты хотел?
Тебе Digitman уже давно про ВАП сказал.
← →
Digitman © (2005-08-18 13:31) [14]потому что значение поля TMethod.Data ты не установил
значение Self в теле вызванного метода объекта как раз и берется из поля TMethod.Data.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c