Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

Объект   Найти похожие ветки 

 
A   (2007-08-19 16:28) [0]

Есть одна интересная задача:

Существует 2а приложения - приложение1 и приложение2
необходимо передать из приложения1 в приложение2 некий определённый объект  (указатель на него) средствами PostMessage().

Заранее огромное спасибо !


 
TStas ©   (2007-08-19 16:39) [1]

А зачем это делать?


 
grisme ©   (2007-08-19 16:57) [2]

и что ты с ним - указателем - сделаешь? :)


 
Германн ©   (2007-08-19 16:59) [3]


> и что ты с ним - указателем - сделаешь? :)

Наверно что-то подобное этому:
http://delphimaster.net/view/2-1187433883/


 
grisme ©   (2007-08-19 17:05) [4]

Aссess Violation и ничего больше =\


 
Юрий Зотов ©   (2007-08-19 17:10) [5]

WM_COPYDATA?


 
A   (2007-08-19 17:21) [6]


> grisme ©   (19.08.07 16:57) [2]
> и что ты с ним - указателем - сделаешь? :)


найду что с ним - указателем сделать


 
Юрий Зотов ©   (2007-08-19 17:27) [7]

> A   (19.08.07 17:21) [6]

Ну что ж, если Вы так в этом уверены, то передать указатель из одного приложения в другое через PostMessage можно элементарно - в WParam или LParam (только надо привести тип, чтобы не ругался компилятор).

Но когда Вы начнете "искать, что с ним делать", то через некоторое время поймете, о чем Вам говорили.

Успехов.


 
A   (2007-08-19 17:31) [8]

ПРиложение которой принимает указатель :

const
 WM_MY_MESSAGE = WM_USER+100;

type
 TMyClass = class
   atr1:Integer;
   atr2:String;
 End;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Edit1: TEdit;
   Edit2: TEdit;
   Label4: TLabel;
   procedure FormCreate(Sender: TObject);
 private
   Procedure Receipt_my_message(var Msg: TMessage); message WM_MY_MESSAGE;

 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.Receipt_my_message(var Msg: TMessage);
Var
 TM:TMyClass ;
begin
 TM:=Pointer(msg.WParam);
 EDit1.Text:=Inttostr(tm.atr1);
 Edit2.Text:=tm.atr2;
end;


 
A   (2007-08-19 17:32) [9]

ПРиложеие которое посылает указатель:

const
 WM_MY_MESSAGE = WM_USER+100;

type
 TMyClass = class
   atr1:Integer;
   atr2:String;
 End;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Edit1: TEdit;
   Edit2: TEdit;
   Edit3: TEdit;
   Edit4: TEdit;
   Edit5: TEdit;
   Button2: TButton;
   Button3: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
 private
   fI:Integer;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
 TM:TMyClass;
begin
  TM:=TMyClass.Create;
  TM.atr1:=StrToInt(Edit1.Text);
  tm.atr2:=Edit2.Text;
  PostMessage(StrToInt(edit3.Text),WM_MY_MESSAGE,Integer(TM),form1.Handle);
 end;


 
MetalFan ©   (2007-08-19 17:38) [10]


> A   (19.08.07 17:32) [8][9]

и что, это работает???? =-0


 
A   (2007-08-19 17:39) [11]

в том то и дело что НЕТ )))


 
A   (2007-08-19 17:47) [12]

просто вопрос то в том что как определить "правильный" указатель для этого объекта, и как потом его использовать


 
Германн ©   (2007-08-19 17:56) [13]


> A   (19.08.07 17:47) [12]
>
> просто вопрос то в том что как определить "правильный" указатель
> для этого объекта, и как потом его использовать
>

А что такое адресное пространство процесса ты знаешь?


 
DrPass ©   (2007-08-19 17:57) [14]


> A   (19.08.07 17:39) [11]
> в том то и дело что НЕТ )))

Не расстраивайся. Ты все правильно сделал, и передал правильный указатель. Но видишь ли, незадача какая - у каждого приложения свое виртуальное адресное пространство. И данные или объекты, существующие в памяти для одного приложения, просто не существуют в памяти другого.


 
MetalFan ©   (2007-08-19 17:59) [15]


> A   (19.08.07 17:47) [12]

в другом приложении - никак. разве что передать данные, которые объект должен уметь сохранять. и в другом процессе создать КЛОН исходного объекта...


 
Юрий Зотов ©   (2007-08-19 18:22) [16]

> A   (19.08.07 17:47) [12]

> как потом его использовать

Вы же говорили: "найду что с ним - указателем сделать".

Поиски начались?
:о)

Адрес "ул. Асфальтовая, дом 3, кв. 1" в городах N и М - это не ОДИН адрес, это РАЗНЫЕ адреса, понимаете? Это РАЗНЫЕ улицы, РАЗНЫЕ дома и РАЗНЫЕ квартиры, а в них живут РАЗНЫЕ люди.

То же и здесь. Один и тот же адрес в РАЗНЫХ адресных пространствах - это РАЗНЫЕ адреса и по ним лежат РАЗНЫЕ данные.

О чем Вам сразу и говорили. Так что напрасно Вы отмахнулись-то.


 
Германн ©   (2007-08-19 18:29) [17]


> Юрий Зотов ©   (19.08.07 18:22) [16]


"Ирония судьбы или с легким паром". (с) Брагинский.
:-)


 
Leonid Troyanovsky ©   (2007-08-19 18:31) [18]


> A   (19.08.07 17:21) [6]

> найду что с ним - указателем сделать

После нахождения - доложи.

--
Regards, LVT.


 
A   (2007-08-19 20:02) [19]

Любители потрепаться кароче


 
A   (2007-08-19 20:05) [20]

спасибо за помощььььь !
PS Если всёже кто-нибудь, когда-нибудь сталкивался с подобной проблемой и РЕШАЛ её напишите на почту funtik1983@mail.ru?
Огромное спасибо всем принявшим участие в обсуждение проблемы


 
DrPass ©   (2007-08-19 20:08) [21]


> Если всёже кто-нибудь, когда-нибудь сталкивался с подобной
> проблемой и РЕШАЛ её

Не рассчитывай. Биться головой об стенку - не наш метод. А так - всегда пожалуйста...


 
A   (2007-08-19 20:10) [22]

Мастера блин )))))))


 
Юрий Зотов ©   (2007-08-19 20:21) [23]

> A   (19.08.07 20:10) [22]

Не с той стороны подъезжаете. Решение (ограниченное, по типам данных, но все же решение) Вам было подсказано - и если Вы посчитали, что Вы самый умный, а здешние неучи говорят Вам чушь, то это Ваши проблемы.

Есть решение и без ограничений по типам данных - но теперь уже не скажу. В сад.


 
A   (2007-08-19 20:34) [24]


> Не с той стороны подъезжаете. Решение (ограниченное, по
> типам данных, но все же решение) Вам было подсказано - и
> если Вы посчитали, что Вы самый умный, а здешние неучи говорят
> Вам чушь, то это Ваши проблемы.
>
> Есть решение и без ограничений по типам данных - но теперь
> уже не скажу. В сад.


а сразу влом чтоли было сказать??, или нужно сначала вставить блок поучительных высказываний чтобы задающий вопрос обзавёлся комплексом неполноценности?


 
A   (2007-08-19 20:34) [25]

Удалено модератором
Примечание: Всех построил?



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

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

Наверх




Память: 0.53 MB
Время: 0.029 c
9-1159926882
VolanD666
2006-10-04 05:54
2007.09.09
Сглаживаем тени?


15-1186726493
___________11
2007-08-10 10:14
2007.09.09
Комментарии в коде


15-1186782789
Petr V. Abramov
2007-08-11 01:53
2007.09.09
C. Иванов привазвал наказывать за уклонение от :")


15-1187077601
White Barsik
2007-08-14 11:46
2007.09.09
Немного глупых вопросов


15-1186709482
Riply
2007-08-10 05:31
2007.09.09
Delphi перестала "прыгать" :)