![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объект
A © (2007-08-19 16:28:00)Есть одна интересная задача:
Существует 2а приложения - приложение1 и приложение2
необходимо передать из приложения1 в приложение2 некий определённый объект (указатель на него) средствами PostMessage().
Заранее огромное спасибо !
A (2007-08-19 20:34:00) [1]Удалено модератором
Примечание: Всех построил?
A (2007-08-19 20:34:00) [2]
> Не с той стороны подъезжаете. Решение (ограниченное, по
> типам данных, но все же решение) Вам было подсказано - и
> если Вы посчитали, что Вы самый умный, а здешние неучи говорят
> Вам чушь, то это Ваши проблемы.
>
> Есть решение и без ограничений по типам данных - но теперь
> уже не скажу. В сад.
а сразу влом чтоли было сказать??, или нужно сначала вставить блок поучительных высказываний чтобы задающий вопрос обзавёлся комплексом неполноценности?
Юрий Зотов (2007-08-19 20:21:00) [3]> A (19.08.07 20:10) [22]
Не с той стороны подъезжаете. Решение (ограниченное, по типам данных, но все же решение) Вам было подсказано - и если Вы посчитали, что Вы самый умный, а здешние неучи говорят Вам чушь, то это Ваши проблемы.
Есть решение и без ограничений по типам данных - но теперь уже не скажу. В сад.
A (2007-08-19 20:10:00) [4]Мастера блин )))))))
DrPass (2007-08-19 20:08:00) [5]
> Если всёже кто-нибудь, когда-нибудь сталкивался с подобной
> проблемой и РЕШАЛ её
Не рассчитывай. Биться головой об стенку - не наш метод. А так - всегда пожалуйста...
A (2007-08-19 20:05:00) [6]спасибо за помощььььь !
PS Если всёже кто-нибудь, когда-нибудь сталкивался с подобной проблемой и РЕШАЛ её напишите на почту funtik1983@mail.ru?
Огромное спасибо всем принявшим участие в обсуждение проблемы
A (2007-08-19 20:02:00) [7]Любители потрепаться кароче
Leonid Troyanovsky (2007-08-19 18:31:00) [8]
> A (19.08.07 17:21) [6]
> найду что с ним - указателем сделать
После нахождения - доложи.
--
Regards, LVT.
Германн (2007-08-19 18:29:00) [9]
> Юрий Зотов © (19.08.07 18:22) [16]
"Ирония судьбы или с легким паром". (с) Брагинский.
:-)
Юрий Зотов (2007-08-19 18:22:00) [10]> A (19.08.07 17:47) [12]
> как потом его использовать
Вы же говорили: "найду что с ним - указателем сделать".
Поиски начались?
:о)
Адрес "ул. Асфальтовая, дом 3, кв. 1" в городах N и М - это не ОДИН адрес, это РАЗНЫЕ адреса, понимаете? Это РАЗНЫЕ улицы, РАЗНЫЕ дома и РАЗНЫЕ квартиры, а в них живут РАЗНЫЕ люди.
То же и здесь. Один и тот же адрес в РАЗНЫХ адресных пространствах - это РАЗНЫЕ адреса и по ним лежат РАЗНЫЕ данные.
О чем Вам сразу и говорили. Так что напрасно Вы отмахнулись-то.
MetalFan (2007-08-19 17:59:00) [11]
> A (19.08.07 17:47) [12]
в другом приложении - никак. разве что передать данные, которые объект должен уметь сохранять. и в другом процессе создать КЛОН исходного объекта...
DrPass (2007-08-19 17:57:00) [12]
> A (19.08.07 17:39) [11]
> в том то и дело что НЕТ )))
Не расстраивайся. Ты все правильно сделал, и передал правильный указатель. Но видишь ли, незадача какая - у каждого приложения свое виртуальное адресное пространство. И данные или объекты, существующие в памяти для одного приложения, просто не существуют в памяти другого.
Германн (2007-08-19 17:56:00) [13]
> A (19.08.07 17:47) [12]
>
> просто вопрос то в том что как определить "правильный" указатель
> для этого объекта, и как потом его использовать
>
А что такое адресное пространство процесса ты знаешь?
A (2007-08-19 17:47:00) [14]просто вопрос то в том что как определить "правильный" указатель для этого объекта, и как потом его использовать
A (2007-08-19 17:39:00) [15]в том то и дело что НЕТ )))
MetalFan (2007-08-19 17:38:00) [16]
> A (19.08.07 17:32) [8][9]
и что, это работает???? =-0
A (2007-08-19 17:32:00) [17]ПРиложеие которое посылает указатель:
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;
A (2007-08-19 17:31:00) [18]ПРиложение которой принимает указатель :
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;
Юрий Зотов (2007-08-19 17:27:00) [19]> A (19.08.07 17:21) [6]
Ну что ж, если Вы так в этом уверены, то передать указатель из одного приложения в другое через PostMessage можно элементарно - в WParam или LParam (только надо привести тип, чтобы не ругался компилятор).
Но когда Вы начнете "искать, что с ним делать", то через некоторое время поймете, о чем Вам говорили.
Успехов.
A (2007-08-19 17:21:00) [20]
> grisme © (19.08.07 16:57) [2]
> и что ты с ним - указателем - сделаешь? :)
найду что с ним - указателем сделать