Форум: "Начинающим";
Текущий архив: 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.044 c