Мини-проекты в Delphi
Проект «Записная книжка»
Для ввода и отображения дат и времени на вкладке Win 32 имеется компонент TMonthCalendar. Он обеспечивает безошибочный с точки зрения синтаксиса ввод дат и времени.
Значение даты по умолчанию можно задать в Инспекторе Объектов через свойство Date. Это же свойство читается для определения заданной пользователем даты. При чтении Date надо учитывать тип этого свойства — TDateTime, представляющий собой число с плавающей запятой, целая часть которого содержит число дней, отсчитанное от некоторого начала календаря, а дробная часть равна части 24-часового дня, т.е. характеризует время и не относится к дате. Для 32-разрядных версий Delphi за начало календаря принята дата 12/30/1899 00 часов.
Для преобразования значения свойства Date в строку можно воспользоваться функцией DateToStr. Например, оператор DateDMY:=DateToStr (DateTimePicker1.Date))
Пребразует в строку вида «: 01.12.2010».
Это свойство применим для создания проекта «Записная книжка».
Разместим на форме объекты TMemo, TMonthCalendar и две кнопки кдасса TBitBtn, отличающаяся, прежде всего, возможностью отобразить на ее поверхности изображение.
На кнопках надписи «Сохранить запись», «Удалить запись».
В разделе implementation объявим переменную
DateDMY :String;
Записи будут храниться в файлах, имеющих имя соответствующее выбранной дате в папке «Dat».
Делаем клик на объекте MonthCalendar1 и откроется заготовка процедуры:
procedure TForm1.MonthCalendar1Change(Sender: TObject);
begin
end;
Объявим переменные:
var i:byte;
f:textfile;
Между begin и end запишем операторы
DateDMY:=DateToStr(MonthCalendar1.Date);
for i:=1 to length( Date) do
if DateDMY [i]='.' then
DateDMY [i]:='_';
if (Memo1.Text<>'') then
Memo1.Text:='';
if FileExists('dat/'+ DateDMY +'.sav') then
Memo1.Lines.LoadFromFile('dat/'+ DateDMY +'.sav');
Их назначение: замена символов точки в дате на символы подчеркивания для имени файла, очистка окна Memo, чтения из файла, если он существует, записи на выбранную дату.
Для сохранения записи в файле
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if (DateDMY <>'') And (Memo1.Text<>'') then
Memo1.Lines.SaveToFile('dat/'+ DateDMY +'.sav');
end;
И для второй кнопки
procedure TForm1.sBitBtn2Click(Sender: TObject);
var f:textfile;
begin
if FileExists('dat/'+ DateDMY +'.sav') Then //Проверка наличия
begin
Memo1.Text:='';
AssignFile(f,'dat/'+ DateDMY +'.sav');
Erase(f); //Удаление файла
end;
end;
|