Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 14:31   #1
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию Значения массива

Есть массив значения которому задаются в цикле:
DataNachala: array of TDateTime;
i:integer;
...
SetLength(DataNachala,i);
for i:= 1 to Form3.StringGrid1.RowCount-1 do begin
DataNachala[i] := StrToDate(Form3.StringGrid1.Cells[0, i]);

Как сделать чтоб получилось так:
DataNachala[Первый элемент из i] := DateTimePicker1.DateTime;
DataNachala[Остальные элементы кроме первого из i] := StrToDate(Form3.StringGrid1.Cells[0, i]);

Помогите пожалуйста советом.
Serebah вне форума Ответить с цитированием
Старый 09.02.2011, 15:55   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Ничего, если я попробую ?
Код:
SetLength(DataNachala,i);
DataNachala[0] := DateTimePicker1.DateTime;
for i:= 1 to Form3.StringGrid1.RowCount-1 do begin
DataNachala[i] := StrToDate(Form3.StringGrid1.Cells[0, i]);
asmodey1 вне форума Ответить с цитированием
Старый 09.02.2011, 16:13   #3
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию

Это вариант мне не подходит, т.к. DataNachala[0] уже не входит в DataNachala[i]
(i := от 1 до ...).
Serebah вне форума Ответить с цитированием
Старый 09.02.2011, 16:30   #4
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию

Есть два динамических массива, размер которых равен количеству столбцов СтринГрида и значения в массив задаются из этого же СтринГрида в формате дат. В первый столбец дата начала периода а во второй столбец дата конца периода и нужно определить количество дней между датами.
Решаю так:
Код:
var
i:integer;
DataNachala, DataKonca : array of TDateTime;
begin
SetLength(DataNachala,i);
SetLength(DataKonca,i);
for i:= 1 to Form3.StringGrid1.RowCount-1 do begin
DataKonca[i] :=   StrToDate(Form3.StringGrid1.Cells[1, i]);
DataNachala[i] :=  StrToDate(Form3.StringGrid1.Cells[0, i]);
Label22.Caption := Label22.Caption +  IntToStr(DaysBetween
(DataNachala[i], DataKonca[i]))+';';
Однако, дальше задача стоит в том, чтоб первый элемент массива даты начала (DataNachala : array of TDateTime) всегда был равен дате заданной в DateTimePicker1.DateTime; а остальные как и раньше в цикле из СтринГрида. И дни между датами определяло соответственно:
первый размежду
Заданной в массиве DateTimePicker1.DateTime и DataKonca[i]
а дальше между массивами как и раньше.
Serebah вне форума Ответить с цитированием
Старый 09.02.2011, 17:02   #5
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Цитата:
Сообщение от Serebah Посмотреть сообщение
Это вариант мне не подходит, т.к. DataNachala[0] уже не входит в DataNachala[i]
(i := от 1 до ...).
Ничего, если я еще разок попробую ?
Код:
SetLength(DataNachala,i);
DataNachala[1] := DateTimePicker1.DateTime;
for i:= 1 to Form3.StringGrid1.RowCount-1 do begin
DataNachala[i+1] := StrToDate(Form3.StringGrid1.Cells[0, i]);
asmodey1 вне форума Ответить с цитированием
Старый 09.02.2011, 17:18   #6
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию

Сбасибо, только вот я не пойму как мне отобразить значения это массива теперь в Лабеле.
Я пишу так:
Label24.Caption := Label24.Caption + DateToStr(DataNachala[i])+';';
Но первой датой мне выводит какой-то 1899 год, а должно дату которая в DateTimePicker1.DateTime;
Если пишу i+1 то выводит дату уже из СтринГрида, если i-1 то опять 1899 год
Serebah вне форума Ответить с цитированием
Старый 09.02.2011, 17:31   #7
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Так уберите вы время. Оно вам нужно ???
Не array of TDateTime, а array of TDate;
Не DateTimePicker1.DateTime, а DateTimePicker1.Date...
asmodey1 вне форума Ответить с цитированием
Старый 09.02.2011, 17:37   #8
Serebah
Пользователь
 
Регистрация: 12.11.2010
Сообщений: 44
По умолчанию

Убрал, но от этого ничего не изменилось. Как вывести теперь этот массив в Лабел?
Serebah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Большие значения/спиральное заполнение массива Diabolik Помощь студентам 7 22.09.2011 21:10
Присвоение переменной значения из массива Maxx Microsoft Office Excel 4 21.07.2010 13:53
Выбор максимальноко значения с массива данных sasha_prof Microsoft Office Excel 2 02.02.2010 15:29
Вывод значения элементов массива valdemar593 Общие вопросы C/C++ 7 22.12.2009 21:37
Выбор значения из массива по столбцу и строке Almaas Помощь студентам 4 25.01.2008 14:56