Читайте также: |
|
{$R *.dfm}
//описываем тип данных для хранения информации о студенте
Type
Student = record
F,I,O: String[20];
Ekz1,Ekz2,Ekz3,Ekz4:byte;
end;
//создаем пустой динамический массив данных о студентах
Var
StudentArray: array of Student;
procedure TForm1.Button1Click(Sender: TObject);
var NextStudent:Student; //очередной введенный студент
LastRow:Integer; //номер предпоследней строки StringGrid-а
Begin
//работа с переменной типа запись
with NextStudent do
Begin
F:= Edit1.Text;
I:= Edit2.Text;
O:= Edit3.Text;
Ekz1:= StrToInt(Edit4.Text);
Ekz2:= StrToInt(Edit5.Text);
Ekz3:= StrToInt(Edit6.Text);
Ekz4:= StrToInt(Edit7.Text);
end;
//запоминаем данные в последний элемент массива
SetLength(StudentArray, Length(StudentArray)+1);
StudentArray[High(StudentArray)]:= NextStudent;
//выводим последние введенные данные в конец StringGrid-а
LastRow:= StringGrid1.RowCount - 1;
with NextStudent do
Begin
StringGrid1.Cells[0,LastRow]:=
IntToStr(Length(StudentArray));
StringGrid1.Cells[1,LastRow]:= F;
StringGrid1.Cells[2,LastRow]:= I;
StringGrid1.Cells[3,LastRow]:= O;
StringGrid1.Cells[4,LastRow]:= IntToStr(Ekz1);
StringGrid1.Cells[5,LastRow]:= IntToStr(Ekz2);
StringGrid1.Cells[6,LastRow]:= IntToStr(Ekz3);
StringGrid1.Cells[7,LastRow]:= IntToStr(Ekz4);
end;
//увеличиваем кол-во строк
StringGrid1.RowCount:= StringGrid1.RowCount + 1;
//очищаем поля ввода
Edit1.Text:= '';
Edit2.Text:= '';
Edit3.Text:= '';
Edit4.Text:= '';
Edit5.Text:= '';
Edit6.Text:= '';
Edit7.Text:= '';
end;
Вариант 4.
Дата
Представим данные о дате в следующем виде:
TDateRec = record
Year: Integer;
Month: (Jan, Feb, Mar, Apr, May, Jun,
Jul, Aug, Sep, Oct, Nov, Dec);
Day: 1..31;
end;
Задания:
Осуществить на форме ввод дат в указанном формате и решить поставленные задачи:
- найти количество дней прошедших между двумя датами;
- определить сколько дней осталось до нового года;
- днем программиста считается 256 день с начала года. Определить когда будет празднование этого дня в 2008 году.
Функции для работы с датой и временем:
В Delphi для хранения даты и (или) времени предусмотрен формат TDateTime, представляющий собой, на самом деле, обычное число с плавающей точкой. При этом дата представляется целой частью числа, а время дробной. Преимущество этого подхода в том, что теперь даты и времена можно корректно складывать и вычитать, например:
Var
StartTime: tDateTime;
procedure TForm1.FormCreate(Sender: TObject);
begin
StartTime:= Now; // Now – стандартная функция, возвращает текущую дату и время
end;
procedure TForm1.FormClick(Sender: TObject);
begin
Labell.Caption:= 'Co времени запуска прошло' +
DateTimeToStr(Now - StartTime);
end;
Функции для работы с датой и временем приведены в таблице:
function EncodeDate(Year, Month, Day: Word): TDateTime; | Преобразует дату, заданную раздельно годом, месяцем и днем, в формат TDateTime. Если они выходят за допустимые пределы, возникает ИС EConvertError. |
procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); | Преобразует дату в виде TDateTime к раздельным составляющим: году, месяцу и дню. |
function EncodeTime(Hour, Min, Sec, MSec: Word); TDateTime; | Преобразует значение времени, заданное часом, минутой, секундой и миллисекундой в формат TDateTime. |
procedure DecodeTime(Time: TDateTime; var Hour, Min, Sec, MSec: Word); | Преобразует значение времени в формате TDateTime в раздельные составляющие: час, минуту, секунду и миллисекунду. |
function DayOfWeek(Date: TDateTime): Integer; | Возвращает номер текущего дня недели от 1 (воскресенье) до 7 (суббота). |
function Date: TDateTime; | Возвращает текущую дату. |
function Time: TDateTime; | Возвращает текущее время. |
function Now: TDateTime; | Возвращает текущие дату и время. |
function DateToStr(Date: TDateTime): string; | Преобразует дату Date в текстовую строку. |
function TimeToStr(Time: TDateTime): string; | Преобразует время из типа TDateTime в текстовую строку. |
function DateTimeToStr (DateTime: TDateTime): string; | Преобразует дату и время из типа TDateTime в текстовую строку. |
function StrToDate (const S: string): TDateTime; | Преобразует текстовую строку в дату типа TDateTime. Строка должна содержать два или три числа, разделенных символом, содержащимся в DateSeparator. Формат даты в строке определяется в соответствии со значением переменной ShortDateFormat. |
function StrToTime(const S: string): TDateTime; | Преобразует текстовую строку S в значение времени. Должен использоваться формат HH:NN:SS, где SS может принимать значения 'AM' или PМ', иначе означает секунды. Если необходимо получать время в 24-х часовой шкале, то элемент SS формата опускается. Если преобразование невозможно, возникает ИС EConvertError. |
function StrToDateTime (const S: string): TDateTime; | Преобразует текстовую строку S в дату и время в формате MM/DD/YY HH:NN:SS (элемент SS см. выше). |
function FormatDateTime (const Format: string; DateTime: TDateTime): string; | Преобразует дату и время из типа TDateTime в текстовую строку, используя формат, задаваемый параметром Format (см. Примечание 1). |
procedure DateTimeToString (var Result: string; const Format: string; DateTime: TDateTime); | Преобразует дату и время типа TDateTime в строку Result, используя формат, передаваемый параметром Format (см.примечание 1). |
Дата добавления: 2015-07-19; просмотров: 35 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Информация о студенте | | | Функции работы с датами и временем. Задание спецификаторов |