Показать сообщение отдельно
Старый 25.07.2007, 16:24   #17
eug_car
Старший Пользователь
 
Регистрация: 14.02.2007
Город: SPb
Регион: 78, 98
Машина: Ch Lacetti Wagon
Сообщений: 112
eug_car is on a distinguished road
По умолчанию

Цитата:
Сообщение от Wanted Посмотреть сообщение
В CG Данные можно вставлять только внизу экрана и только одну строку (пока, в дальнейшем может сделаю что то круче)
И чтобы это делать программа должна реализовать метод передачи данных WM_COPYDATA, в инете примеров полно, если надо могу скинуть Сорцы по этой теме!
Вот, что добавил в свою прогу:
const
CD_CMD_SETCAPTION = 78; // команда для передачи данных !!!
var
Form1: TForm1;
Implementation {$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var CDS: TCopyDataStruct;
begin
CDS.dwData := CD_CMD_SETCAPTION; // задаем команду
CDS.cbData := Length(Edit1.Text) + 1;
GetMem(CDS.lpData, CDS.cbData);
try
StrPCopy(CDS.lpData, Edit1.Text);
SendMessage(FindWindow(NIL, 'CG'), // посылаем в окно с заголовком «CG»
WM_COPYDATA, Handle, Integer(@CDS));
finally FreeMem(CDS.lpData, CDS.cbData); end;
end;

Вот, что написал в тестовой:

const
CD_CMD_SETCAPTION = 78; // команда для приема данных.
var
Form1: TForm1;
implementation {$R *.dfm}
procedure TForm1.WMCopyData(var M: TWMCopyData);
begin
// Если команда — Берем текст данных
if M.CopyDataStruct.dwData = CD_CMD_SETCAPTION then
begin
Label1.Caption := PChar(M.CopyDataStruct.lpData);
M.Result := 1;
end
else M.Result := 0;
end;

Все правильно? Если да, то проще Вам добавить код и прислать мне для тестирования.
eug_car вне форума   Ответить с цитированием