Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.053 c
15-1186539533
Slider007
2007-08-08 06:18
2007.09.09
С днем рождения ! 8 августа 2007 среда


2-1187255588
vitv
2007-08-16 13:13
2007.09.09
RxSysTray-проблема


4-1174345185
Vlad-Q
2007-03-20 01:59
2007.09.09
Открытие окна броузера с заданным url


2-1187526149
Тимофей_ка
2007-08-19 16:22
2007.09.09
почему то происходит обращение к удаленному Shape


15-1186663539
Sdubaruhnul
2007-08-09 16:45
2007.09.09
Pixel ratio и сканер HP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский