Главная страница
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.031 c
1-17149
Ozone
2003-02-20 09:37
2003.03.06
DELPHI - MSWORD


14-17267
tiam
2003-02-19 09:20
2003.03.06
Duke Nukem3d & Duke Nukem Forever


1-17068
ALEXEY_URAL
2003-02-25 13:32
2003.03.06
Импорт отчета из QuickReport в Excel


1-17148
IVANOV
2003-02-22 08:15
2003.03.06
Вопрос о создании TStrings


1-17076
Anatoliy
2003-02-25 17:28
2003.03.06
Работа с MSWord через OLE