Консультация № 177760
09.04.2010, 02:16
0.00 руб.
0 4 2
Доброй ночи,помогите пожалуйста начинающему!!!Нужно сделать прогу которая позволяет определить количество дней,оставшихся до дня рождения(даты должны вводится)
такой может глупый вопрос:какие элементы нужно добавить из элементом управления,например button или ещё что-нить.....????

Обсуждение

Неизвестный
09.04.2010, 07:53
общий
это ответ
Здравствуйте, angel.nero.
Предлагаю простенький вариант.
Размещаем на форме:
Edit1 - начальная дата
Edit2 - дата дня рождения
Edit3 - поле результата
Button1 - кнопка запуска
Прописываем код (в приложении)
Удачи


Приложение:
procedure TForm1.Button1Click(Sender: TObject);
var
temp: real;

begin
//Проверяем начальную дату
try
temp:= StrToDate(Edit1.Text);
except
ShowMessage('Неправильная начальная дата');
exit;
end;

//Проверяем дату дня рождения
try
temp:= StrToDate(Edit2.Text);
except
ShowMessage('Неправильная дата дня рождения');
exit;
end;

// Выводим результат
Edit3.Text:= FloatToStr(StrToDate(Edit2.Text) - StrToDate(Edit1.Text));

end;

Можно прописать загрузку в Edit1 текущей даты при активации формы:

procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.Text:= DateToStr(Date);
end;

Неизвестный
09.04.2010, 08:32
общий
это ответ
Здравствуйте, angel.nero.

В приложении код модуля. Приложеный файл - проект на Delphi 7.

Из элементов управления на форму кидать:

TDateTimePicker - для выбора даты
TButton - кнопка "Рассчитать"
TLabel - для вывода информации


Приложение:
unit Main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Dateutils;

type
TForm1 = class(TForm)
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var Cdate, Bdate, CYBdate: Tdatetime;
cy,cm,cd,by,bm,bd:Word;
begin
Cdate:=Now; //Текущая дата
Bdate:=Form1.DateTimePicker1.DateTime; // Дата рождения
DecodeDate(Bdate,by,bm,bd);
DecodeDate(Cdate,cy,cm,cd); // Разбираем даты по частям
CYBdate:=EncodeDate(cy,bm,bd); //День рождения в текущем году
If CYBDate>Cdate then label3.Caption:=inttostr(DaysBetween(Cdate, CYBdate)+1)+' дней' // Проверка был ли день рождения в текущем году
else
begin
CYBdate:=EncodeDate(cy+1,bm,bd); //Если д.р. в этом году уже был, то рассчитываем кол-во дней до д.р. в следующем году
label3.Caption:=inttostr(DaysBetween(Cdate, CYBdate)+1)+' дней'
end;
end;

end.
Прикрепленные файлы:
Неизвестный
09.04.2010, 15:10
общий
Лысенков Антон Анатольевич:
Добрый день,уважаемые эксперты!хотел бы спросить(глупо конечно, но где находится кнопка TDateTimePicker,не могу найти ).Спасибо!
Неизвестный
09.04.2010, 15:16
общий
angel.nero:
В Delphi 7 данный компонент находится на вкладке "Win32"
Форма ответа