Не освобождается объект кодировки UTF7. И когда я только QC буду побеждать... :)
понедельник, сентября 29, 2008
воскресенье, сентября 28, 2008
среда, сентября 24, 2008
Delphi 2009 aka Tiburon. TEncoding.
На домашней страничке выложен модуль Common.Encodings расширяющий возможности стандартного класса TEncoding. Модуль содержит class helper для TEncoding и несколько вспомогательных advanced records.
Примеры использования:
1.) Перечисление доступных кодировок
Var
ei : TEncodingInfo;
Begin
For ei In TEncoding.Encodings Do
If ei.IsAvailable Then
WriteLn('codepage: ', ei.CodePage, ' name: ', ei.Name);
End;
2.) Создание кодировки по имени:
TEncoding.Encodings.ByName('utf-16').GetEncoding;
или
TEncoding.GetEncoding('utf-16');
3.) Создание кодировки по номеру кодовой страницы:
TEncoding.Encodings.ByCodePage(CP_UTF16_BE).GetEncoding;
или
TEncoding.GetEncoding(CP_UTF16_BE);
4.) Получение информации о существющей кодировке:
With TEncoding.UTF8.GetInfo Do
WriteLn('codepage: ', CodePage, ' name: ', Name, ' display name: ', DisplayName);
пятница, сентября 19, 2008
Delphi 2009. Вкратце.
Юникод+дженерики+анонимные методы это все понятно.
Порадовала скорость среды! И особенно скорость CodeInsight (несмотря на то, что я его все равно всегда отключаю)
Наконец-то они научились различать Implicit и Explicit для записей в нативе (2007 не пробовал, может и там уже было). Но вот редактор сильно подкачал, разучившись (в 2006 он и не сильно-то умел) перемещаться по Ctrl+Shift+Up/Down между декларацией и реализацией перегруженных операторов записи (правда, я тестировал на 12.0.3155.16733, может в релизе и поправили), а также разучился (для перегруженных операторов опять же) по Ctrl+Shift+C создавать макет метода по описанию.
Появился UInt64 -- беззнаковое 64битное число.
BeginThread и TInterfaceList по-прежнему имеют потенциальные утечки.
Неработает передача Int64 в параметре диспетчеризуемого метода (вызов метода от вариантной переменной). Точнее, если передавать переменную типа Int64 все работает, а если значение Int64(1024) -- нет.
Exception обзавелся потенциальной поддержкой стек-трейсинга, но только потенциальной :)
Очень порадовал {$POINTERMATH}
В комментариях исходников встречается sysmac.h. Интересно, это то о чем я думаю...?
Порадовал хелпер для TRTLCriticalSection (syncobjs.pas)
Порадовал обновленный ZLib
Огорчает нелепость использования системных InterlockedCompareExchangePointer (и прочих Interlocked...) при наличии нативных в system.pas
Ribbon огорчил неаккуратными скинами (ждем редактора :) или сторонних, качественных скинов) и моргающей отрисовкой. DoubleBuffered Ribbon-контрола не помогает, а буферизовать форму то еще извращение.
TLinkLabel неюзабельна совершенно, т.к. на системах младше XP, линки распознаваться не будут и пользователь будет видеть разметку.