Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > DateTiMePicker на API


Автор: Dmitry_177 13.12.2006, 17:23
Как можно создать что-то наподобии DateTimePicker на API? Т.е. чтобы можно было выставлять время или дату.. Посмотрел функцию CreateWindow, что-то я не нашел там таких стилей для COMBOBOX-а.. Может еще как-то нужно?

Автор: Snowy 13.12.2006, 18:11
Поиск в MSDN по слову DATETIMEPICK_CLASS тебе поможет.

Автор: bems 13.12.2006, 18:22
Код

var ICC:TInitCommonControlsEx;
begin
ICC.dwSize:=SizeOf(ICC);
ICC.dwICC:=ICC_DATE_CLASSES;
InitCommonControlsEx(ICC);
CreateWindowEx(0,DATETIMEPICK_CLASS,nil,WS_CHILD or WS_VISIBLE or DTS_LONGDATEFORMAT,50,50,200,30,handle,0,hInstance,nil);
end;

необходимые объявления можно вырезать из commctrl.pas

Автор: Dmitry_177 13.12.2006, 18:49
DTS_LONGDATEFORMAT нету в модулях Windows и Messages.. где его искать?

Добавлено @ 18:58 
нашел DTS_LONGDATEFORMAT: это константа, DTS_LONGDATEFORMAT  = $0004; но всеравно так не работает:

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  hDate := CreateWindow( 'DATETIMEPICK_CLASS', 'DateTime', WS_CHILD or WS_VISIBLE or DTS_LONGDATEFORMAT, 10, 10, 200, 30, Form1.Handle, 0, hInstance, nil);
end;


Попробовал просто с VCL по нажатию на кнопку, не работает...

Автор: Dmitry_177 13.12.2006, 19:08
все, разобрался я... DATETIMEPICK_CLASS, это тоже константа:
DATETIMEPICK_CLASS = 'SysDateTimePick32'

Но теперь мне единственное что не понятно, как считать время или дату из этого элемента?

Автор: Snowy 13.12.2006, 19:44
Я ж говорю - MSDN.
Там гора примеров.
Или справка по TurboDelphi.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)