Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 647
от 11.11.2006, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 402, Экспертов: 64
В номере:Вопросов: 2, Ответов: 4


Вопрос № 61399: уважаемые эксперты, подскажите пож.как в дельфи работать с датой. например, мне нужно из текущей даты получить название месяца. и еще необходимо отобрать записи из бд (бд в Access, ADO), последнее редактирование которых было десять дней назад. да...
Вопрос № 61412: Здравствуйте! Вопрос такой: есть программа, написанная в среде "Foxpro 2.6", DOS-приложение. Она морально устарела, но нужна в работе. Основное неудобство в том, что на печать выводит документ только в LPT-порт. Большинство современ...

Вопрос № 61.399
уважаемые эксперты, подскажите пож.как в дельфи работать с датой.
например, мне нужно из текущей даты получить название месяца. и еще необходимо отобрать записи из бд (бд в Access, ADO), последнее редактирование которых было десять дней назад. дату последнего редактирования я сохраняю в отдельной таблице в бд. а вот как решить задачу "десять дней назад" не знаю. помогите, плз. очень надо, курсовая горит.
Отправлен: 05.11.2006, 21:49
Вопрос задала: Ladykey (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: sir henry
Здравствуйте, Ladykey!
Если дату редактирования Вы сохраняеете в отдельном поле, то можно воспользоваться функцией DaysBetween(), которая возвращает кол-во дней между двумя датами. Эту функцию можно поместить прямо в SQL запрос.
Название месяца можно получить с помощью функции FormatDateTime(Format, date): string;
Здесь Format - это строка, которая задает формат вывода даты. Если Format будет содержать только 'mmmm', то выйдет только название месяца. Вот пример:
ShowMessage(FormatDateTime('mmmm', Now));

Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 06.11.2006, 04:50

Отвечает: Monah
Здравствуйте, Ladykey!
Процедура Decodedate(Date:TdateTime; var Year, Month, Day:Word); тут думаю все понятно. Вообще датта хранится в виде Double - число с плавающей точкой. эквивалент тип Real. В целой части хранится количество суток, в дробной часть суток - учноженая на 24 дает часы. Поэтому можно вычислить разницу
var
d1,d2:TDateTime;
r:Double;

r:=d1-d2;
---------
festina lente
Ответ отправил: Monah (статус: 7-ой класс)
Ответ отправлен: 06.11.2006, 05:58

Отвечает: PaVeL_Ekt
Здравствуйте, Ladykey!

Если нужно 10 дней назат просто возьми и сделай так:

var Dte:TDateTime;
...
Dte:=Date-10;
Если на 10 больше то
Dte:=Date+10;
Соответственно.

однако хочу сразу заметить, что со временем так уже не получиться !!!
---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: 5-ый класс)
Ответ отправлен: 07.11.2006, 06:49


Вопрос № 61.412
Здравствуйте!
Вопрос такой: есть программа, написанная в среде "Foxpro 2.6", DOS-приложение. Она морально устарела, но нужна в работе. Основное неудобство в том, что на печать выводит документ только в LPT-порт.
Большинство современных принтеров подключаются к USB.
Есть исходный код программы на FoxPro. Языка FoxPro я не знаю.
1. Существует ли конвертер кода из "FoxPro" в "Delphi" или "C++".
2. Можно ли каким-то образом добиться, чтобы из этой программы печатать документы на USB-принтере?
Заранее спасибо.
Отправлен: 06.11.2006, 02:41
Вопрос задал: EvgeneyS (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, EvgeneyS!
Однако вопросы эти отнюдь не по программированию. :)
1. Именно из FoxPro конвертеров, насколько мне известно не существует. Мало того, подобные конвертеры, например из C++ в Pascal/Delphi конвертируют не весь код и Вам все равно придется убивать время, отыскивая то, что не сконвертировано и конвертировать вручную.
Программу в любом случае придется писать заново, т.к. в Foxpro для ДОС и, например в Delphi разный подход к описанию окошек и компонентов на них.
2. Это сделать легко. Вы расшариваете свой USB-принтер как сетевой, например под именем HP. В сети он у Вас будет выглядеть что-то типа \MyCompHP.
Далее, с помощью команды net use назначаете его на LPT порт:
net use LPT1: \MyCompHP
и все Ваши страдания с печатью документов автоматически разрешаться. :)
*****************************
Совет:
Если Вы хорошо знаете логику работы и структуру базы данных программы, то Вы можете переписать ее на Delphi, учитывая особенности виндового интерфейса. Главное, о чем нужно думать - это логика работы и незагроможденность интерфейса пользователя. А сам интерфейс, в современных средах разработки, пишется легко и очень быстро.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 06.11.2006, 06:00


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное