| Автор
| Сообщение |
|
|
|
Цитата |
|
Ситуация такая:есть некоторое чужое приложение, имеющее компонент типа 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
Откуда: Донецк
|
|
|
Цитата |
|
Посылать надо сообщение DTM_SETSYSTEMTIME, в wparam - 0, в lparam - указатель на дату, преобразованную в формат системного времени. Правда я не знаю, работает ли это с контролом в другом приложении. _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| DrPass писал(а): | | Посылать надо сообщение DTM_SETSYSTEMTIME, в wparam - 0, в lparam - указатель на дату, преобразованную в формат системного времени. Правда я не знаю, работает ли это с контролом в другом приложении. |
Я посылаю так:SendMessage(hd,DTM_SETSYSTEMTIME,0,lparam(LPCTSTR(PChar('23.03.1981'))));
Сообщает "Undeclared DTM_SETSYSTEMTIME" |
|
| В начало |
|
 |
|
|
|
Цитата |
|
Код:
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
Откуда: Донецк
|
|
|
Цитата |
|
Действительно, не работает с другой программой. В своей программе все нормально. Но это в принципе, логично - передаваемый адрес TSystemTime в другом пространстве будет недействительным _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
|
|
|
Цитата |
|
Сейчас передаю так:
h:=FindWindow(nil,'Form');
hd:=FindWindowEx(h,0,'TDateTimePicker',nil);
DateTime_SetFormat(hd,PChar('23.03.1981'));
Передается текст в какой-то левой кодировке.Вопрос:как правильно преобразовать дату? |
|
| В начало |
|
 |
|