Страница 1 из 1

Memo: поочередно добавлять строки. Как организовать?

Добавлено: 15 май 2010, 14:21
nady_kamcha
только начала изучать делфи и вот столкнулась с таким заданием

Самостоятельное задание

Создайте новое приложение. Установите на форму компоненты DateTimePicker, Memo и кнопку, чтобы добавлять в Memo1 строки. Вначале добавьте строку с текущей датой в формате, принятом в русских версиях Windows (функция DateToStr(Date)). Затем добавьте пустую строку, чтобы отделить ее от выводимых далее форматов. Затем придумайте 10 разных форматов для функции FormatDateTime(),и поочередно добавьте их в Memo1 с той датой, которая указана в DateTimePicker1. Кстати, чтобы не писать длинные названия, вроде
DateTimePicker1.Date

переименуйте компонент (свойство Name) в более короткое имя, например, DTP1, тогда обращение получится короче:
DTP1.Date

я так думаю, что нужен цикл, но как его правильно организовать, чтобы строки со всеми 10 форматами добавлялись не разом, а поочередно при каждом нажатии кнопки. Думаю, можеn добавить дополнит.элемент на форму, радиобаттон например... хотя в задании этого не дано...
Помогите пожалуйста бедной девушке с севера...

Re: Memo: поочередно добавлять строки. Как организовать?

Добавлено: 17 май 2010, 14:12
Хыиуду
Не нужен там цикл. Можно, например, ввести переменную (скажем, i) и массив из 10 разных форматов. При щелчке на кнопке добавляем строку с i-м форматом и увеличиваем i на 1

Re: Memo: поочередно добавлять строки. Как организовать?

Добавлено: 18 май 2010, 07:03
nady_kamcha
спасибо за ответ! сейчас попробую, но не понимаю, как без цикла...

Re: Memo: поочередно добавлять строки. Как организовать?

Добавлено: 18 май 2010, 07:15
nady_kamcha
Вы так имели в виду:

procedure TForm1.Button1Click(Sender: TObject);
var
i:byte;
a: array [1..4] of string;
begin
a[1]:='dd mm yy';
a[2]:='dd mm yyyy';
a[3]:='dd mmm yy';
a[4]:='dd mmm yyyy';
Memo1.Lines.Add(FormatDateTime(a,DateTimePicker1.Date));
i:=i+1;
end;

Так не работает ((( добавляет символы <E, почему?

Re: Memo: поочередно добавлять строки. Как организовать?

Добавлено: 18 май 2010, 09:41
Хыиуду
var i:byte=1; a: array [1..4] of string; - это выносится в основную программу

a[1]:='dd mm yy';
a[2]:='dd mm yyyy';
a[3]:='dd mmm yy';
a[4]:='dd mmm yyyy';
А это - например, в Form1.Create;
Memo1.Lines.Add(FormatDateTime(a,DateTimePicker1.Date));
i:=i+1;
А это остается в Button1.Click
Потому что иначе переменная i у вас создается внутри и никак не инициализируется - в ней скорее всего 0. А а[0] пустое.

Re: Memo: поочередно добавлять строки. Как организовать?

Добавлено: 19 май 2010, 02:17
nady_kamcha
спасибо большое, теперь дошло )))