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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2011, 19:53   #11
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да переназовите же Вы наконец свой массив!
Неужели Вы не видите, что не может компилятор разобраться,
когда Вы пишете Date - о чём речь идёт - о вызове системной функции получения даты или об обращении к Вашему массиву!!!
так
Код:
var
  AllDateArray : Array of TDateTime;
или так:
Код:
var
 DatesAA : Array of TDateTime;
или даже так (если уж совсем плохо с фантазией!!!)
Код:
var
 Date111 : Array of TDateTime;
все равно

там какой то нарушение доступа к адресу

а какая разница как я назвал переменную?

Последний раз редактировалось TotKtoNado; 18.06.2011 в 19:56.
TotKtoNado вне форума Ответить с цитированием
Старый 18.06.2011, 20:05   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а какая разница как я назвал переменную?
Вы шутите?! Ну попробуйте назвать переменную VAR или BEGIN !
Не получилось?!

Ну тогда назовите переменные
Код:
var 
  StrToDate, DateToStr : integer;
и потом расскажите о ощущениях!!


А так что я могу сказать - выкладывайте исходники проекта (запакуйте в архив и прикрепите к сообщению через вложения).
посмотрим, что за ошибки!...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2011, 20:13   #13
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы шутите?! Ну попробуйте назвать переменную VAR или BEGIN !
Не получилось?!

Ну тогда назовите переменные
Код:
var 
  StrToDate, DateToStr : integer;
и потом расскажите о ощущениях!!


А так что я могу сказать - выкладывайте исходники проекта (запакуйте в архив и прикрепите к сообщению через вложения).
посмотрим, что за ошибки!...
я смог назвать переменную StrToDate, DateToStr : integer;
и смог вывести на надпись формы
Вложения
Тип файла: rar FinancialAdvisor D2010.rar (407.4 Кб, 8 просмотров)
TotKtoNado вне форума Ответить с цитированием
Старый 18.06.2011, 21:51   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ладно, теперь код компилируется..

не смог открыть проект, т.к. у меня Delphi < 2009/2010 (DFM у Вас в новом формате)...
но не в этом дело.
А суть вот.
но объясните мне, на форме "Расход"
есть кнопка Button1 'включить фильтр'
на ней такой код:
Код:
procedure TFormRashod.Button1Click(Sender: TObject);
var
  i:integer;
begin
SetLength(AllDateArray , 500);
AllDateArray [i]:=StrToDate(stringgridRashod.cells[0,stringgridRashod.rowCount]);
end;
я в шоке!
объясните, ЧТО вы пытались этим кодом добиться?!!!
В цикле пройти и перенести все даты из stringgridRashod -> массив дат AllDateArray ?!!!!!

тогда попробуйте примерно так:
Код:
procedure TFormRashod.Button1Click(Sender: TObject);
var
  i:integer;
begin
  if (stringgridRashod.RowCount - stringgridRashod.FixedRows) < 1 then begin
    ShowMessage('В гриде ничего нет! Заполните его!');
    Exit;
  end;
  SetLength(AllDateArray, stringgridRashod.RowCount - stringgridRashod.FixedRows);
  for i:= stringgridRashod.FixedRows to stringgridRashod.RowCount-1 do
     AllDateArray[i]:=StrToDate(stringgridRashod.cells[0,i]);
end;
p.s. Это без проверки того, что у Вас в гриде вместо дат может быть всё что угодно!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2011, 14:37   #15
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ладно, теперь код компилируется..

не смог открыть проект, т.к. у меня Delphi < 2009/2010 (DFM у Вас в новом формате)...
но не в этом дело.
А суть вот.
но объясните мне, на форме "Расход"
есть кнопка Button1 'включить фильтр'
на ней такой код:
Код:
procedure TFormRashod.Button1Click(Sender: TObject);
var
  i:integer;
begin
SetLength(AllDateArray , 500);
AllDateArray [i]:=StrToDate(stringgridRashod.cells[0,stringgridRashod.rowCount]);
end;
я в шоке!
объясните, ЧТО вы пытались этим кодом добиться?!!!
В цикле пройти и перенести все даты из stringgridRashod -> массив дат AllDateArray ?!!!!!

тогда попробуйте примерно так:
Код:
procedure TFormRashod.Button1Click(Sender: TObject);
var
  i:integer;
begin
  if (stringgridRashod.RowCount - stringgridRashod.FixedRows) < 1 then begin
    ShowMessage('В гриде ничего нет! Заполните его!');
    Exit;
  end;
  SetLength(AllDateArray, stringgridRashod.RowCount - stringgridRashod.FixedRows);
  for i:= stringgridRashod.FixedRows to stringgridRashod.RowCount-1 do
     AllDateArray[i]:=StrToDate(stringgridRashod.cells[0,i]);
end;
p.s. Это без проверки того, что у Вас в гриде вместо дат может быть всё что угодно!
код
Код:
begin
SetLength(AllDateArray , 500);
просто выделяет память я ее уберу если не требуеться выделение
а код
Код:
AllDateArray [i]:=StrToDate(stringgridRashod.cells[0,stringgridRashod.rowCount]);
присваивает переменной AllDateArray дату из стринггрида

что то непонял что делает этот код?
Код:
procedure TFormRashod.Button1Click(Sender: TObject);
var
  i:integer;
begin
  if (stringgridRashod.RowCount - stringgridRashod.FixedRows) < 1 then begin
    ShowMessage('В гриде ничего нет! Заполните его!');
    Exit;
  end;
  SetLength(AllDateArray, stringgridRashod.RowCount - stringgridRashod.FixedRows);
  for i:= stringgridRashod.FixedRows to stringgridRashod.RowCount-1 do
     AllDateArray[i]:=StrToDate(stringgridRashod.cells[0,i]);
end;
мне же нужно сделать фильтр который показывает даты в указанном диапазоне

и у меня код
Код:
procedure TFormRashod.ButtonClick(Sender: TObject);
begin
AllDateArray [i]:=DateTimePickerRashod.Date;
  StringgridRashod.Cells[stringgridRashod.Col,StringgridRashod.Row]:=DateToStr(AllDateArray);
  if stringgridRashod.col>0 then
    begin
      ShowMessage('Здесь не ставиться дата');    //если при нажатии на button пользователь нажмет не на нужный стобец то выскачет ошибка 'Здесь не ставиться дата'
    end;
end;
может переменную AllDateArray вобще убрать она же из за этого же наверна ругаеться? Или как сделать так чтоб не выскакивала ошибка когда нажимаешь на вставить дату

Последний раз редактировалось TotKtoNado; 19.06.2011 в 14:54.
TotKtoNado вне форума Ответить с цитированием
Старый 19.06.2011, 17:40   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

мда....
ладно. давайте попробуем чуть-чуть освоить азы программирования...

Цитата:
Код:
procedure TFormRashod.ButtonClick(Sender: TObject);
begin
  AllDateArray [i]:=DateTimePickerRashod.Date;
то, что AllDateArray - это массив, Вы, вероятно понимаете (надеюсь)...
Тогда запись AllDateArray[i] := означает присвоить I-то элементу массива (т.е. элементу, который имеет индекс, или порядковый номер равный I) значение даты... Это тоже понятно?

Теперь вопрос - чему в данном случае равно I ?!
т.е. КАКОМУ конкретно элементу Вы присваиваете дату из DateTimePickerRashod.Date ?!
нулевому? Случайному?!


Цитата:
что то непонял что делает этот код?
Код:
procedure TFormRashod.Button1Click(Sender: TObject);
var
  i:integer;
begin
  if (stringgridRashod.RowCount - stringgridRashod.FixedRows) < 1 then begin
    ShowMessage('В гриде ничего нет! Заполните его!');
    Exit;
  end;
  SetLength(AllDateArray, stringgridRashod.RowCount - stringgridRashod.FixedRows);
  for i:= stringgridRashod.FixedRows to stringgridRashod.RowCount-1 do
     AllDateArray[i]:=StrToDate(stringgridRashod.cells[0,i]);
end;
Это код задаёт размер массива AllDateArray равным количеству строчек в StringGrid (без учёта первой, где у Вас заголовки столбцов прописаны).
Дальше в цикле все даты (все строчки, кроме первой, с заголовками) из первого столбца вашего грида переносятся в массив AllDateArray

Зачем, я не знаю...
Я же сразу сказал, что я не понимаю, для чего Вам нужен массив из дат, что Вы в дальнейшем с этим массивом (с датами, которые в нём находятся) собираетесь делать!...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.06.2011, 18:01   #17
TotKtoNado
юзер
Форумчанин
 
Аватар для TotKtoNado
 
Регистрация: 22.12.2010
Сообщений: 245
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
мда....
ладно. давайте попробуем чуть-чуть освоить азы программирования...


то, что AllDateArray - это массив, Вы, вероятно понимаете (надеюсь)...
Тогда запись AllDateArray[i] := означает присвоить I-то элементу массива (т.е. элементу, который имеет индекс, или порядковый номер равный I) значение даты... Это тоже понятно?

Теперь вопрос - чему в данном случае равно I ?!
т.е. КАКОМУ конкретно элементу Вы присваиваете дату из DateTimePickerRashod.Date ?!
нулевому? Случайному?!



Это код задаёт размер массива AllDateArray равным количеству строчек в StringGrid (без учёта первой, где у Вас заголовки столбцов прописаны).
Дальше в цикле все даты (все строчки, кроме первой, с заголовками) из первого столбца вашего грида переносятся в массив AllDateArray

Зачем, я не знаю...
Я же сразу сказал, что я не понимаю, для чего Вам нужен массив из дат, что Вы в дальнейшем с этим массивом (с датами, которые в нём находятся) собираетесь делать!...
я считаю что нужно исправить тк ошибка выскакивает думаю из за этого
на
Код:
begin
  AllDateArray[i]:=DateTimePickerRashod.Date;
  StringgridRashod.Cells[stringgridRashod.Col,StringgridRashod.Row]:=DateToStr(AllDateArray[i]);
тока опять ошибка выскакивает
TotKtoNado вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод одномерного массива на TASM Alex1991 Помощь студентам 3 29.10.2010 23:52
Ввод элементов массива! d00ker Помощь студентам 2 24.10.2010 13:53
Delphi7. Ввод массива. Olga67_net Помощь студентам 2 11.05.2010 14:45
гибкий ввод массива Ananim-Pbl6ak Паскаль, Turbo Pascal, PascalABC.NET 3 14.05.2009 22:42
C++ Builder 6, ввод массива XyMan Помощь студентам 2 25.04.2009 19:18