![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Janger |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 17.6.2013 Репутация: 1 Всего: 1 |
Такая проблема....
У меня определённая дата записывается в текстовый документ, а потом, я хочу определить, сколько дней прошло с выбранной даты... Вот мой код... Подскажите, что я не так делаю...(
================================ text = 04.06.2014 date = 24.06.2013 (сегодняшняя дата) ================================ И естественно в Edit1 у меня ничего не отображается.... Подскажите пожалуйста(( |
|||
|
||||
kakawkin |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 23.6.2010 Репутация: нет Всего: нет |
|
|||
|
||||
Janger |
|
|||
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 17.6.2013 Репутация: 1 Всего: 1 |
Жаль, что никто не помог....
Но я код выложу, вдруг, кому то будет полезно....
Добавлено через 9 минут и 45 секунд Тему в принципе можно закрыть... Я просто тут не давно, так что не знаю, может можно это как то самому сделать... |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
-------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Sharhan |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
У меня тоже проблемы с датами.
В Edit6.Text вводим год. В ComboBox16.Items.Strings[ComboBox16.ItemIndex] находится номер месяца, список там от 01 до 12. В ComboBox15.Items.Strings[ComboBox15.ItemIndex] выбираем из списка число дня, список там от 1 до 31. Компилируется отлично, без всяких сообщений об ошибках. После нажатия кнопки в программе в форме появляется строка, в которой указывается название дня недели, всё правильно. Но при этом выводится поверх еще окно с надписью: "Invalid argument to date encode". Нажимаешь "ОК" и закрываешь окно. В принципе всё работает, но это всплывающее окно надоедает. Что я не так делаю? Можно как-то от этого окна избавиться? Пробовал изменить одну строку и даписать дату так:
Только программа опять расчитала все правильно и выдала тоже дополнительное окно с надписью: "Invalid argument to date encode". Операционная система: Система: Microsoft Windows XP Professional версия 2002 Service Pack 3 со всеми последними обновлениями. Программирую на Делфи 7. Это сообщение отредактировал(а) Sharhan - 20.9.2013, 12:19 |
||||||
|
|||||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Вот жаль нет возможности проверить на D7, но что-то мне подсказывает, что Dateutils тут лишний, т.к. и EncodeDate, и LongDayNames, и DayOfWeek объявлены в SysUtils. Наверно все-таки в Dateutils есть своя EncodeDate, которая работает "не так". Хотя вот в XE3 нету, но может в семерке еще была.
PS. Конструкции вида ComboBox16.Items.Strings[ComboBox16.ItemIndex] безусловно красивы, но у ComboBox, так же как и у Edit, есть свойство Text. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Sharhan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
||||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Локализуй и скинь сюда pas в таком случае, будем смотреть. Я вот пробую на D5 твой код, все работает без сообщений.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 8 Всего: 329 |
Вы пишите в высшей мере несознательно. Вы пишите просто так, совсем не думая, какой тип имеет date, что такое StrToDateTime и DateToStr И совет. Не называйте переменную именем date, назовите, например, _date или date1. А лучто что-то типа dtStart или dtEnd. Используйте кроме имёт ещё и префиксы/суффиксы. Почитайте обязательно об именовании переменных, объектов, компонент и т.д. Это связано с тем, что date содержит текущую дату. date - текущая дата. time - текущее время. now - текущие время и дата. Например, как показать текущую дату:
А у Вас получается, что Вы перегоняете дату сначала в строку, потом из строки опять в дату. Добавлено через 1 минуту и 25 секунд Вместо того, чтобы дать ему рыбу, ты лучше научи её ловить. Добавлено через 3 минуты и 30 секунд Да, и не читайте за обедом советских газет. |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
Я не вижу в коде
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Sharhan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Благодарю за подсказку. Был уверен, что ошибка кралась именно в этих строчках. Конечно можно было бы вложить исходник целиком, но кому надо разбираться в полуторатысячах строчек чужого кода... В общем, решил создать новый проект, где будет реализован только вывод названия дня недели. И к удивлению обнаружил, что тот же самый код в новой программе действительно нормально работает, без всяких сообщений. Залез в основной проект и удалил вообще эти строки из кода, чтоб было, как раньше. Но после компиляции и запуска создания отчета опять выслыло тоже самое сообщение об ошибке. А теперь, как говорит М. Задорнов, наберите воздуха в грудь. Ошибка была в самом конце исходника, там где я просисал обнуление всех данных. Если программу нужно использовать повторно, то старые данные в переменных будут сильно мешать и я их обнуляю. Так вот, я случайно прописал еще и обнуление переменной "myDate". Видимо не очень корректно это сделал или вообще этого нельзя было делать... После удаления этой строчки из очистки данных, всё заработало отлично. |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |