![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Версия 2.57 [Delphi, KOL/MCK, Windows]
Vladimir Kladov © (2007-04-13 21:40:00)
Новости от 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
Vladimir Kladov (2007-06-21 17:06:00) [1]GetSystemInfo
Barloggg (2007-06-21 11:10:00) [2]хм... а можно как-нибудь программно узнать сколько ядер в процессоре чтобы узнать рожать мне один thread или можно сотню?
если я всегда создаю сотню, то всем прочим прогам в винде начинает не хватать кислорода. если одноядерник без гипертрединга.
Vladimir Kladov (2007-04-15 12:27:00) [3]Если это баг, то не делайте.
D[u]fa (2007-04-15 09:35:00) [4]тогда не вижу смысла делать какие либо предложения или рапорты о найденных багах...
Vladimir Kladov (2007-04-15 07:47:00) [5]Упражнение для программистов №1. Как вскипятить чайник. Решение налить воды, поставить на плиту, зажечь огонь. А если вода уже налита? Вылить воду, и повторить прежнее решение.
Говорю: делайте обвязку.
D[u]fa (2007-04-14 22:47:00) [6]я предлагал сделать и точку и запятую, так лучше имхо
Vladimir Kladov (2007-04-14 22:21:00) [7]Весь день искал - нашел - баг в Animation.zip (обновил). Заодно написал и положил еще один менеджер памяти: MMHardCheck. Может, еще кому сгодится.
Vladimir Kladov (2007-04-14 22:16:00) [8]Str2Extended не буду изменять. Нужен свой разделитель - делайте обвязку. Мне не нравится такая функциональность даже в VCL, где в зависимости от того, какой язык выставлен у системы, начинают не работаьть программы с БД. Потому что БД, например, начхать на язык пользователя на клиентской машине. У нее формат всегда . а не , И приходится делать свои версии FloatToStr, StrToFloat, чтобы не бороться с глупостями.
D[u]fa (2007-04-14 18:42:00) [9]а почему не изменили Str2Extended =/
MTsv DN (2007-04-14 17:24:00) [10]Все доступно на http://www.kolnmck.ru
Vladimir Kladov (2007-04-14 12:54:00) [11]Архив я обновил еще вчера. Начните качку, увидите разницу в размере, теперь 300К с хвостиком.
nicesc (2007-04-14 12:46:00) [12]"KOLBook - выпущена версия 1.5"
а где можно посмотреть? на сайте лежит 1.2
Vladimir Kladov (2007-04-14 08:52:00) [13]Зачем такой изврат с FPath - забыл убрать. Тестировал, не мог посмотреть, что там за строка получается.
Пишите/находите еще, до воскресенья может еще обновимся.
Кстати, было бы неплохо, если бы сообщения о багах с форума как-то в одном месте концентрировались. Я когда обновление готовил, замучился находить на форуме все сообщения. Похоже, что мог еще что-то пропустить.
MTsv DN (2007-04-14 08:13:00) [14]И еще. Для функций Trim, TrimLeft и TrimRight надо бы заменить string -> KOLString. В Юникоде код все равно работает верно, а поскольку результат stringто появляются "косяки".
MTsv DN (2007-04-14 08:05:00) [15]И еще. Файл KOLadd.pas
function TActionList.Add(const ACaption, AHint: string; OnExecute: TOnEvent): PAction;
Нужна замена string-> KOLString...
MTsv DN (2007-04-14 07:58:00) [16]Владимир, сразу вопрос...
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 не ручаюсь...