Показать сообщение отдельно
  #12  
Старый 05.03.2013, 14:15
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ну как дети, чес-слово.
Код:
Код:
uses
  DateUtils;

function GetDecimal(Value:string):Integer;
var
  sResult:string;
  i: Integer;
begin
  sResult:='';
  for i := 1 to Length(Value) do
    if CharInSet(Value[i],['0'..'9']) then
      sResult:=sResult+Value[i];
  Result:=StrToIntDef(sResult,0);
end;

procedure TForm1.ComboBox1Change(Sender: TObject);

begin
  if Pos(AnsiUpperCase('дн'),AnsiUpperCase((Sender as TComboBox).Text))>0 then
    DateTimePicker1.Date:=IncDay(DateTimePicker1.Date,-1*GetDecimal((Sender as TComboBox).Text));
  if Pos(AnsiUpperCase('ме'),AnsiUpperCase((Sender as TComboBox).Text))>0 then
    DateTimePicker1.Date:=IncMonth(DateTimePicker1.Date,-1*GetDecimal((Sender as TComboBox).Text));
  if (Pos(AnsiUpperCase('го'),AnsiUpperCase((Sender as TComboBox).Text))>0) or (Pos(AnsiUpperCase('ле'),AnsiUpperCase((Sender as TComboBox).Text))>0) then
    DateTimePicker1.Date:=IncYear(DateTimePicker1.Date,-1*GetDecimal((Sender as TComboBox).Text));
end;

то чем заполнен комбобокс
Код:
15 дней
2 дня
100 дней
1 месяц
3 месяца
5 месяцев
1 год
5 лет

вычитает из DateTimePicker'а указанный период.

Написано за 2 минуты на коленке
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием