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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 335
от 25.12.2005, 20:24

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


Вопрос № 31832: Здравствуйте Уважаемые! Использую в коде функцию ReadDirectoryChangesW в параметре lpOverlapped: POverlapped передаю nil. Функция ждет до бесконечности пока что не произойдет в наблюдаемом обьекте. Каким образом мне нужно инициализировать...
Вопрос № 31865: Господа експерти поскажите пожайлуста как из DateTimePicker перенести дату допустим в Edit в формате dd/MM/yyyy. Заранее спасибо...

Вопрос № 31.832
Здравствуйте Уважаемые!
Использую в коде функцию ReadDirectoryChangesW в параметре lpOverlapped: POverlapped передаю nil.
Функция ждет до бесконечности пока что не произойдет в наблюдаемом обьекте. Каким образом
мне нужно инициализировать структуру TOverlapped чтобы программа продолжала работу через некоторое
время. Что означают параметры структуры TOverlapped.
Спасибо.
Отправлен: 19.12.2005, 20:16
Вопрос задал: Трофименко А.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: sir henry
Здравствуйте, Трофименко А.В.!
Для инициализации присвойте полям этой структуры какие-нибудь значения.
TOverlapped = record
Internal: DWORD; {}
InternalHigh: DWORD; {}
Offset: DWORD; {}
OffsetHigh: DWORD; {}
hEvent: THandle; {}
end;
Структура содежит информацию используемую при асинхронном вводевыводе (InputOutput).
Internal: Зарезервировано для использования операционной системой. Этот элемент определяет системно-зависимый статус и находится в силе, если GetOverlappedResult возвращает ERROR_IO_PENDING с не установленной расширенной инфрмацией ошибки.
InternalHigh: Зарезервировано для использования операционной системой. Этот элемент определяет размер(длинну) переданных данных и находится в силе, если GetOverlappedResult возвращает True.
Offset: Позиция в файле начиная с которой надо запускать передачу. Позиция является байтовым смещением от начала файла. Вызывающий процесс устанавливает этот элемент перед вызовом функций ReadFile или WriteFile. Этот элемент игнорируется при чтениизаписи виз Канал(Pipe) или устройства связи и должно быть нулевым.
OffsetHigh: Старшее слово смещения позиции в файле начиная с которого надо запускать передачу. Этот элемент игнорируется при чтениизаписи виз Канал(Pipe) или устройства связи и должно быть нулевым.
hEvent: Хендл события устанавливаемый в сигналнье состояние по окончинии операции. Вызывающий процесс должен установить этот элемент в нуль или записать корректный хендл события перед вызовом перекрытых(overlapped) функций. Для того, чтобы создать обьект события надо вызывать функцию CreateEvent.
Такие функции как, например, WriteFile устанавливают событие в несигнальное состояние, до вызова операции вводавывода.
Замечания
Для того, чтобы определить закончилась ли операции вводавывода можно использовать макрос HasOverlappedIoCompleted.
Для отмены асинхронно операции вводавывода используйте функцию CancelIo.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 20.12.2005, 07:37
Оценка за ответ: 4
Комментарий оценки:
Спасибо за описание структуры,но основная суть вопроса в том что бы продолжить выполнение процесса по истечении времени ожидания. Я прихожу к выводу что в этой структуре нет времени ожидания.
Остальные параметры функции понятны,
т.е. что функция обязательно ждет события
и только после этого продолжает работу.


Вопрос № 31.865
Господа експерти поскажите пожайлуста как из DateTimePicker перенести дату допустим в Edit в формате dd/MM/yyyy.
Заранее спасибо
Отправлен: 20.12.2005, 11:22
Вопрос задал: Unnamed (статус: Посетитель)
Всего ответов: 8
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Rusland
Здравствуйте, Unnamed!
Например так - см. приложение

Приложение:

---------
Пресловутое недостающее звено между обезьяной и цивилизованным человеком - это как раз мы. (Конрад Лоренц)

Ответ отправил: Rusland (статус: Специалист)
Отправлен: 20.12.2005, 11:28

Отвечает: Boriss
Здравствуйте, Unnamed!
DateTimeToStr из модуля SysUtils. Там еще много чего есть

Edit1.Text:=DateTimeToStr(DateTimePicker1.Time)

---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 20.12.2005, 11:39

Отвечает: Jadd
Здравствуйте, Unnamed!
Edit1.Text := DateToStr(DateTimePicjer1.Date);

или

Edit1.Text := FormatDateTime("dd/mm/yyyy", DateTimePicker1.Date);
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 20.12.2005, 11:44

Отвечает: Zubex
Здравствуйте, Unnamed!
procedure TForm1.Button1Click(Sender: TObject);
var OldSeparator:Char;
begin
OldSeparator:=DateSeparator;
DateSeparator:='/';
Edit1.Text:=FormatDateTime('dd/mm/yyyy',DateTimePicker1.Date);
DateSeparator:=OldSeparator;
end;
---------
Если не знаешь что сказать - лучше промолчи...
Ответ отправил: Zubex (статус: 4-ый класс)
Отправлен: 20.12.2005, 11:45
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, Unnamed!
У этого компонента есть свойчтво Date, содержащую одну дату, а есть свойство DateTime, содержащую соответствующий тип. Формат задается в свойстве DateFormat, однако я не рекомендую задаваеть его тличным от системного, только путаницу внесете.
Поскольку Edit текстовое поле, то дату надо перевести в строку DateToStr(Date).
Ответ отправил: sir henry (статус: Академик)
Отправлен: 20.12.2005, 11:48

Отвечает: Ерёмин Андрей
Здравствуйте, Unnamed!
Для этого у TDateTimePicker есть свойство DateTime, в котором хранятся текущие значения даты и времени. Прочитать дату (отдельно) можно так:
Edit1.Text:=DateToStr(DateTimePicker1.DateTime);
Время - вот так:
Edit1.Text:=TimeToStr(DateTimePicker1.DateTime);
А вот так всё вместе:
Edit1.Text:=DateTimeToStr(DateTimePicker1.DateTime);
---------
Работа - не волк, а произведение силы на расстояние!
Ответ отправил: Ерёмин Андрей (статус: Специалист)
Отправлен: 20.12.2005, 17:04

Отвечает: Golden Spider
Здравствуйте, Unnamed!

Существует функция DateTimeToStr() она переводит DateTime в строку формата
dd.mm.yyyy hh.mm.ss.

Если вы хотите возвратить дату в собственном формате то используйте

FormatDateTime(Format,DateTime);
Где Format это строка с требуемым вам видом вывода. например 'mm/yy' и др.


---------
Семь раз проверь, один раз откомпилируй!
Ответ отправил: Golden Spider (статус: 4-ый класс)
Отправлен: 20.12.2005, 21:07

Отвечает: Ataman N. N.
Здравствуйте, Unnamed!
Почему бы Вам вместо Edit'а не использовать MaskEdit.
Ответ отправил: Ataman N. N. (статус: 4-ый класс)
Отправлен: 20.12.2005, 22:05


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

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

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

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

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


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


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

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное