Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Через 3 дня :

День славянской письменности и культуры


Как передать дату в чужое приложение?


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
fmf
Гость







СообщениеВт, 02-Авг-2005 6:25    Заголовок сообщения: Как передать дату в чужое приложение?
Цитата

Ситуация такая:есть некоторое чужое приложение, имеющее компонент типа DateTimePicker.В этот компонент мне нужно передать свою дату.Я делаю так:
h:=FindWindow(nil,'Form');
hd:=FindWindowEx(h,0,'TDateTimePicker',nil);
SendMessage(hd,WM_SETTEXT,0,lparam(LPCTSTR(PChar('23.03.1981'))));
Не работает.Подскажите как надо,плиз.
В начало
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеВт, 02-Авг-2005 23:01 
Цитата

Посылать надо сообщение DTM_SETSYSTEMTIME, в wparam - 0, в lparam - указатель на дату, преобразованную в формат системного времени. Правда я не знаю, работает ли это с контролом в другом приложении.
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
fmf
Гость







СообщениеСр, 03-Авг-2005 6:03 
Цитата

DrPass писал(а):
Посылать надо сообщение DTM_SETSYSTEMTIME, в wparam - 0, в lparam - указатель на дату, преобразованную в формат системного времени. Правда я не знаю, работает ли это с контролом в другом приложении.

Я посылаю так:SendMessage(hd,DTM_SETSYSTEMTIME,0,lparam(LPCTSTR(PChar('23.03.1981'))));
Сообщает "Undeclared DTM_SETSYSTEMTIME"
В начало
fmf
Гость







СообщениеСр, 03-Авг-2005 12:09 
Цитата

Код:
uses ...,CommCtrl;
.....
var h,hd:HWND;
ST: TSystemTime;
procedure TForm1.Button3Click(Sender: TObject);
begin
FillChar(ST, sizeof(ST), 0);
ST.wDay := 23;
ST.wMonth := 3;
ST.wYear := 1918;
h:=FindWindow(nil,'Form');
if h=0 then exit;
hd:=FindWindowEx(h,0,'TDateTimePicker',nil);
SendMessage(Hd, DTM_SETSYSTEMTIME, GDT_VALID, Integer(@ST));
end;
Но он не работает. Я попал
В начало
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеСр, 03-Авг-2005 20:17 
Цитата

Действительно, не работает с другой программой. В своей программе все нормально. Но это в принципе, логично - передаваемый адрес TSystemTime в другом пространстве будет недействительным
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
fmf
Гость







СообщениеЧт, 11-Авг-2005 7:05 
Цитата

Сейчас передаю так:
h:=FindWindow(nil,'Form');
hd:=FindWindowEx(h,0,'TDateTimePicker',nil);
DateTime_SetFormat(hd,PChar('23.03.1981'));
Передается текст в какой-то левой кодировке.Вопрос:как правильно преобразовать дату?
В начало
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100