Текущий архив: 2008.01.13;
Скачать: CL | DM;
Вниз
Версия 2.57 Найти похожие ветки
← →
Vladimir Kladov (2007-04-13 21:40) [0]
Новости от 13 апреля 2007 (KOL & MCK v2.57)
[+] XP Добавлен символ условной компиляции TABCONTROL_XP. С ним,
страницы Tab control"а создаются прозрачными, и лучше вписываются в
темы XP.
[*] Удален символ условной компиляции NEW_ALIGN и этот алгоритм
выравнивания (автор Galkov) становится теперь основным. Добавлен
символ OLD_ALIGN для возврата к предыдущей версии, если требуется.
[+] Добавлен символ условной компиляции PSEUDO_THREADS, превращающий
все потоки (нити) в псевдо-потоки. Приложение становится с точки
зрения системы однопоточным, но потоки внутри приложения симулируются
в пределах одного главного потока. Прочитайте примечания до
использования этого символа (по крайней мере критические секции должны
быть заменены семафорами!). Так же добавлен символ WAIT_SLEEP ,
который вставляет 10-миллисекундное ожидание в цикл процедуры,
заменяющей WaitForMultipleObjects для PSEUDO_THREADS.
[+] Добавлена опция lboHScroll для list box.
[-] UNI Следующие исправления:
1. GetAcceleratorText (string => KOLstring)
2. TControl.TBSetTooltips (отключена асм-версия для UNICODE_CTRLS)
3. TDirList.Destroy, TIniFile.Destroy, TControl.Destroy,
TTrayIcon.Destroy, TOpenSaveDialog.Destroy, TOpenDirDialog.Destroy
(asm-версия: LStrClr => WStrClr for UNICODE_CTRLS)
[-] TBitmap.LoadFromStream и LoadFromStreamEx исправлены (для двух
разных багов с "некорректными" битмапами).
[-] Добавлен символ условной компиляции LOADEX для форсирования
использования TBitmap.LoadFromStreamEx при загрузке частей TIcon из
потока.
[-] TFont.SetFontOrientation (asm-версия) исправлен (для случая
отрицательного угла).
kol_err.zip обновлен (err.pas адаптирован для UNICODE_CTRLS)
KOLBook - выпущена версия 1.5
← →
MTsv DN © (2007-04-14 07:58) [1]Владимир, сразу вопрос...
procedure TDirList.ScanDirectory(const DirPath, Filter: KOLString;
Attr: DWord);
var FindData : TFindFileData;
E : PFindFileData;
Action: TDirItemAction;
s: String;
begin
Clear;
FList := NewList;
FPath := DirPath;
if FPath = "" then Exit;
s := IncludeTrailingPathDelimiter( FPath );
FPath := s;
if fFilters = nil then
begin
fFilters := {$IFDEF UNICODE_CTRLS} NewWStrList {$ELSE} NewStrList {$ENDIF};
if Filter = "*.*" then
fFilters.Add( "*" )
else
fFilters.Add( Filter );
end;
if not Find_First( PKOLChar( FPath + FindFilter( Filter ) ), FindData ) then
Exit;
while True do
begin
(*)
if SatisfyFilter( PKOLChar(@FindData.cFileName[0]),
FindData.dwFileAttributes, Attr ) then
Зачем такой изврат с FPath, и уж если он все-таки оправдан, то почему s определена, как String??? В Юникоде будут "косяки".
И еще предложение. Вот сюда (*) вставить вледующий код (или похожий):{$IFDEF UNICODE_CTRLS}
i := $F000;
IsUnicode := FindData.cFileName;
if (IsUnicode <> ".") and (IsUnicode <> "..") then
begin
if not IsTextUnicode(@IsUnicode[1], Length(IsUnicode), @i) then
if FindData.cAlternateFileName <> "" then
CopyMemory(@FindData.cFileName, @FindData.cAlternateFileName, SizeOf(FindData.cAlternateFileName));
end;
{$ENDIF}
Поскольку, как оказалось на практике, красивое отображение иероглифов или арабской вязи, это всего лишь отображение программы не работают с именами WideString, а переходят на альтернативные имена...
З.Ы. За работу IsTextUnicode не ручаюсь...
← →
MTsv DN © (2007-04-14 08:05) [2]И еще. Файл KOLadd.pas
function TActionList.Add(const ACaption, AHint: string; OnExecute: TOnEvent): PAction;
Нужна замена string -> KOLString...
← →
MTsv DN © (2007-04-14 08:13) [3]И еще. Для функций Trim, TrimLeft и TrimRight надо бы заменить string -> KOLString. В Юникоде код все равно работает верно, а поскольку результат string то появляются "косяки".
← →
Vladimir Kladov (2007-04-14 08:52) [4]Зачем такой изврат с FPath - забыл убрать. Тестировал, не мог посмотреть, что там за строка получается.
Пишите/находите еще, до воскресенья может еще обновимся.
Кстати, было бы неплохо, если бы сообщения о багах с форума как-то в одном месте концентрировались. Я когда обновление готовил, замучился находить на форуме все сообщения. Похоже, что мог еще что-то пропустить.
← →
nicesc (2007-04-14 12:46) [5]"KOLBook - выпущена версия 1.5"
а где можно посмотреть? на сайте лежит 1.2
← →
Vladimir Kladov (2007-04-14 12:54) [6]Архив я обновил еще вчера. Начните качку, увидите разницу в размере, теперь 300К с хвостиком.
← →
MTsv DN © (2007-04-14 17:24) [7]Все доступно на http://www.kolnmck.ru
← →
D[u]fa © (2007-04-14 18:42) [8]а почему не изменили Str2Extended =/
← →
Vladimir Kladov (2007-04-14 22:16) [9]Str2Extended не буду изменять. Нужен свой разделитель - делайте обвязку. Мне не нравится такая функциональность даже в VCL, где в зависимости от того, какой язык выставлен у системы, начинают не работаьть программы с БД. Потому что БД, например, начхать на язык пользователя на клиентской машине. У нее формат всегда . а не , И приходится делать свои версии FloatToStr, StrToFloat, чтобы не бороться с глупостями.
← →
Vladimir Kladov (2007-04-14 22:21) [10]Весь день искал - нашел - баг в Animation.zip (обновил). Заодно написал и положил еще один менеджер памяти: MMHardCheck. Может, еще кому сгодится.
← →
D[u]fa © (2007-04-14 22:47) [11]я предлагал сделать и точку и запятую, так лучше имхо
← →
Vladimir Kladov (2007-04-15 07:47) [12]Упражнение для программистов №1. Как вскипятить чайник. Решение налить воды, поставить на плиту, зажечь огонь. А если вода уже налита? Вылить воду, и повторить прежнее решение.
Говорю: делайте обвязку.
← →
D[u]fa © (2007-04-15 09:35) [13]тогда не вижу смысла делать какие либо предложения или рапорты о найденных багах...
← →
Vladimir Kladov (2007-04-15 12:27) [14]Если это баг, то не делайте.
← →
Barloggg (2007-06-21 11:10) [15]хм... а можно как-нибудь программно узнать сколько ядер в процессоре чтобы узнать рожать мне один thread или можно сотню?
если я всегда создаю сотню, то всем прочим прогам в винде начинает не хватать кислорода. если одноядерник без гипертрединга.
← →
Vladimir Kladov (2007-06-21 17:06) [16]GetSystemInfo
Страницы: 1 вся ветка
Текущий архив: 2008.01.13;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.03 c