Главная страница
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.022 c
14-17314
Zhenka
2003-02-16 12:50
2003.03.06
Хороший тон программирования


3-16957
VIB
2003-02-17 11:36
2003.03.06
DBGrid


3-16866
JibSkeart
2003-02-03 16:32
2003.03.06
Отправить данные сторонней программе из


6-17236
Voyager
2003-01-17 18:23
2003.03.06
Intraweb and IIS


14-17366
JibSkeart
2003-02-17 11:08
2003.03.06
А почему все говорят что нельзя из DLL узнать имя функции ??