Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1197245273
Анатолий Подгорецкий
2007-12-10 03:07
2008.01.13
Обсуждения качества модерирования форумов


9-1165269799
-=Kirill=-
2006-12-05 01:03
2008.01.13
DirectX


15-1197065246
Lip
2007-12-08 01:07
2008.01.13
Не могу отправить почту на yandex.ru через thebat


2-1197838272
malyar
2007-12-16 23:51
2008.01.13
Tmemo номер строки который всегда прав


2-1197824270
tracert's
2007-12-16 19:57
2008.01.13
Определение максимального размера фонта