libero-news.it сообщает
(17 декабря, Adnkronos) В Венеции снег побелил крыши и усыпал пьяццу, предлагая продрогшим туристам романтический антураж. Улицы и мосты для безопасности обработаны солью.
А на дорогах Венето гололед сопровождал путь всех автомобилистов. Снегоуборочная техника не справилась в полной мере с мокрым снегом, дорожное покрытие осталось исключительно скользким, поэтому авто двигались со скоростью пешеходов. Длинные вереницы транспортных средств заполнили важнейшие дороги в районе Падуи и от Падуи до Тревизо.
Интересное поведение у контрола DateTimePicker. Предположим, нужно показать форму с возможностью редактирования даты какого-нибудь объекта, скажем файла. Интуитивный подход таков:
DialogDateEdit dialog = new DialogDateEdit(); // состояние флажка будет показывать // надо ли применять значение пикера dialog.DateTimePicker1.ShowCheckBox = true; dialog.DateTimePicker1.Value = File.GetCreationTime(file_name); dialog.DateTimePicker1.Checked = false; // -> и Value чудесным образом становится датой по умолчанию if ((dialog.ShowDialog() == DialogResult.OK) && dialog.DateTimePicker1.Checked) File.SetCreationTime(file_name, dialog.DateTimePicker1.Value);И он не работает: пикер всегда будет показывать текущую дату-время. Оказалось, что если до показа диалога установить Value при сброшенном Checked, Value не устанавливается; а если установить Value, а потом сбросить Checked, Value сбрасывается на DateTime.Now. При этом, когда диалог уже показан на экране, все эти свойства работают как и ожидается от них. ShowDialog() блокирует до закрытия диалога, поэтому Checked придется сбрасывать на событии Shown, примерно так:
DialogDateEdit dialog = new DialogDateEdit(); dialog.DateTimePicker1.ShowCheckBox = true; dialog.DateTimePicker1.Value = File.GetCreationTime(file_name); dialog.Shown += (s, o) => (s as DialogDateEdit).DateTimePicker1.Checked = false; if ((dialog.ShowDialog() == DialogResult.OK) && dialog.DateTimePicker1.Checked) File.SetCreationTime(file_name, dialog.DateTimePicker1.Value);
Как использовать SHFileOperation в .NET. На самом деле все просто.
Итак, во-первых нужно объявить структуру SHFILEOPSTRUCT. Это определение из MSDN:
typedef struct _SHFILEOPSTRUCT { HWND hwnd; UINT wFunc; LPCTSTR pFrom; LPCTSTR pTo; FILEOP_FLAGS fFlags; BOOL fAnyOperationsAborted; LPVOID hNameMappings; LPCTSTR lpszProgressTitle; } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;
Для .NET, конечно. Их почти нет. Вот что нашлось:
Проект fyireporting. Лицензия Apache, есть исходники. Есть более - менее активный форум. Завести его не удалось: постоянно вылезают исключения даже в дизайнере. Подозреваю, что это следствие запуска под 64-битной системой. В настоящее время основной разработчик проект забросил, но вроде бы в живом состоянии форк ReportingCloud.
Проект MyNeoReport. Разработчик, Фабио Занетта, похоже, его совсем забросил, однако осталась статья с библиотекой на кодпроекте. Никаких форумов найти не удалось. Исходники недоступны. Лицензия разрешает использовать библиотеку и дизайнер безплатно.
SharpDevelop.Reports. Ныне входит в состав SharpDevelop. Есть исходники. Состояние проекта непонятно. Вроде бы обновляется, однако форум поддержки неживой.
Вот и все. Из всех трех - самый вменяемый MyNeoReport. В нем нет многого, что есть в платных продуктах, но то что есть реализовано прочно как скала.
Проект fyireporting. Лицензия Apache, есть исходники. Есть более - менее активный форум. Завести его не удалось: постоянно вылезают исключения даже в дизайнере. Подозреваю, что это следствие запуска под 64-битной системой. В настоящее время основной разработчик проект забросил, но вроде бы в живом состоянии форк ReportingCloud.
Проект MyNeoReport. Разработчик, Фабио Занетта, похоже, его совсем забросил, однако осталась статья с библиотекой на кодпроекте. Никаких форумов найти не удалось. Исходники недоступны. Лицензия разрешает использовать библиотеку и дизайнер безплатно.
SharpDevelop.Reports. Ныне входит в состав SharpDevelop. Есть исходники. Состояние проекта непонятно. Вроде бы обновляется, однако форум поддержки неживой.
Вот и все. Из всех трех - самый вменяемый MyNeoReport. В нем нет многого, что есть в платных продуктах, но то что есть реализовано прочно как скала.
ANSA сообщает:
Экономический кризис заставил ресторан Гаррис Бар объявить скидку на 10%.
Это и неудивительно, многие заведения вообще закрываются - говорит, всречая нас, Арриго Чиприани, владелец всемирно известного ресторана. С 2006 года посещаемость снизилась на 30%. По словам Чиприани, у него было два пути, он выбрал единственный правильный: не увольнять никого из 70 работников.