|  | 
 
 | 
| 
			 
			#1  
			
			
			
			
		 | ||||
| 
 | ||||
|  Начинающие Здравствуйте!подскажите пож-та что в коде не правильно? Код: if ComboBox1.items.Strings[1]='10 дней' then DateTimePicker3.Date:=DateTimePicker3.Date + 10 else if ComboBox1.items.Strings[2]='1 месяц' then DateTimePicker3.Date := EncodeDate(Y , M+1, D-1) else if ComboBox1.items.Strings[3]='2 месяц' then DateTimePicker3.Date := EncodeDate(Y , M+2, D-1) else if ComboBox1.items.Strings[4]='3 месяц' then DateTimePicker3.Date := EncodeDate(Y , M+3, D-1) else if ComboBox1.items.Strings[5]='4 месяц' then DateTimePicker3.Date := EncodeDate(Y , M+4, D-1) else if ComboBox1.items.Strings[6]='5 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+5, D-1) else if ComboBox1.items.Strings[7]='6 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+6, D-1) else if ComboBox1.items.Strings[8]='7 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+7, D-1) else if ComboBox1.items.Strings[9]=8 'месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+8, D-1) else if ComboBox1.items.Strings[10]='9 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+9, D-1) else if ComboBox1.items.Strings[11]='10 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+10, D-1) else if ComboBox1.items.Strings[12]='11 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+11, D-1) else if ComboBox1.items.Strings[13]='12 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+12, D-1); end; | 
| 
			 
			#2  
			
			
			
			
		 | ||||
| 
 | ||||
|   17-ую строчку замени на: Код: if ComboBox1.items.Strings[9]='8 месяцев' then DateTimePicker3.Date := EncodeDate(Y , M+8, D-1) | 
| 
			 
			#3  
			
			
			
			
		 | ||||
| 
 | ||||
|   все равно не работает( | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Это что вообще за изврат? | 
| 
			 
			#5  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 | 
| 
			 
			#6  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 | 
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|   Во первых Код: if ComboBox1.ItemIndex = 0 then .. else if ComboBox1.ItemIndex = 1 then .. Нужно использовать функции типа IncMonth | 
| 
			 
			#8  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 последнее лучше так уж тогда Код: if ComboBox1.items.Strings[13]='12 месяцев' then DateTimePicker3.Date := EncodeDate(Y+1 , M, D-1); end; Для N месяцев (N=1..11) Код: then DateTimePicker3.Date := EncodeDate(Y + (M+N) div 12, (M+N) mod 12, D-1) соответственно, если нынешняя дата, скажем так, 11 месяц, то через 11 месяцев будет (11+11) mod 12 = 22 mod 12 = 10 месяц (11+11) div 12 = 22 div 12 = 1, т.е переход в следующий год. Как-то так. | 
| 
			 
			#9  
			
			
			
			
		 | ||||
| 
 | ||||
|   никчему заморачиваться,  Код: IncMonth(DateTimePicker3.Date, ComboBox1.ItemIndex); | 
| 
			 
			#10  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 | 
| 
			 
			#11  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 | 
| 
			 
			#12  
			
			
			
			
		 | ||||
| 
 | ||||
|   Ну как дети, чес-слово. Код: Код: 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 минуты на коленке  | 
| 
			 
			#13  
			
			
			
			
		 | ||||
| 
 | ||||
|   Но все же спасибо за помощь! | 
| 
			 
			#14  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
  | 
| 
			 
			#15  
			
			
			
			
		 | ||||
| 
 | ||||
|   Цитата: 
 |