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

Вниз

Как с помощью SendMessage передать строку?   Найти похожие ветки 

 
Adonis   (2003-01-18 18:05) [0]

Пожалуйста, объясните на примере как с помощью SendMessage передать текстовую строку из одного приложения в другое(и как во втором приложении ее получить).
Заранее спасибо за помощь.


 
Song ©   (2003-01-18 18:16) [1]

WM_COPYDATA


 
Diamond Cat ©   (2003-01-19 04:37) [2]

Адонис, головой думать мы нехотим ты уже задавал этот вопрос, он был разжеван в ветке http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1041964192&n=5 причем там пример который должен срабатывать с любыми контролами способными принять текст но для особо умных даю упращенный вариант

в программе принимающий текст
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TReceiver = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
protected
procedure WMCopyData(var Msg: TWMCopyData); message WM_CopyData;
procedure WMSetText(var Msg: TWMSetText); message WM_SetText;
end;

var
Receiver: TReceiver;

implementation

{$R *.DFM}

procedure TReceiver.Button1Click(Sender: TObject);
begin
Edit1.Clear;
end;

procedure TReceiver.WMCopyData(var Msg: TWMCopyData);
begin
Edit1.Text := String(PChar(Msg.CopyDataStruct^.lpData));
end;

procedure TReceiver.WMSetText(var Msg: TWMSetText);
begin
if Visible
then Edit1.Text := String(Msg.Text)
else inherited
end;

end.

в программе отсылающей текст

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TSender = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;

var
Sender: TSender;

implementation

{$R *.DFM}

procedure TSender.Button1Click(Sender: TObject);
var Data: TCopyDataStruct;
begin
Data.cbData := Length(Edit1.Text);
Data.lpData := PChar(Edit1.Text);
SendMessage(FindWindow("TReceiver","Receiver"),
WM_CopyData, Handle, Integer(@Data))
end;

procedure TSender.Button2Click(Sender: TObject);
begin
SendMessage(FindWindow("TReceiver","Receiver"),
WM_SetText, 0, Integer(PChar(Edit1.Text)))
end;
end.
Надеюсь вопросов типа "А как вводить текст?" не будет :о)



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

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

Наверх




Память: 0.47 MB
Время: 0.027 c
9-16842
Извращенец
2002-10-03 22:48
2003.03.06
DelphiX


14-17374
Карелин Артем
2003-02-14 14:26
2003.03.06
Антивирус для сервера. Win2000


9-16848
RavenD
2002-10-04 21:12
2003.03.06
Движение в DirectX.


14-17386
Ромн
2003-02-19 09:15
2003.03.06
возможно ли обеспечить совместный доступ коднму Excel файлу


14-17291
SPeller
2003-02-11 19:47
2003.03.06
---|Ветка была без названия|---