Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите найти старые версии KOL MCK


Ал ©   (2005-02-07 10:21:00) 

Периодически обновлял версии KOL MCK до 2.00.
На каком-то этапе программа стала выдавать ошибку на Win95 на старых ПК.
Пытался менять опции проекта, как рекомендовали на форуме. Ни к чему не привело! Хочу сделать откат к предыдущим версиям KOL MCK (к сожалению о сохранности их у себя не позаботился), так как раньше под Win95 на старых ПК работало.

С bonanzs.rinet.ru откаты не качаются. Писал Кладову. Пока без ответа.
Подскажите, как быть.


Ал   (2005-03-09 08:44:00) [1]

Программа компилируется на D6 (KOL 2.0) под WinXP(Cel 2,4 GHz) или Win98 (Cel 800 MHz). При этом хорошо работает на Win98,2000,XP на разных Pentium II и старше. А вот на Pentium 200 и младше отказывается запускаться (пишет ошибку памяти). Причем и под Win95 и под Win98.
То есть, делаем вывод - причина в железе.
Раскопать код KOL не хватит квалификации. KOL 1.92 таких багов не имеет. Жду помощи!


Ал   (2005-03-05 14:51:00) [2]

Ребята, я с ASM_VERSION и без нее пробовал. Особо в коде не искал. Ломается при старте приложения, до создания форм или  контролов еще не доходит.
Перебором версий остановился на 1.92.
По моему, проблема в том, что в поздних версиях KOL используются конструкции, не поддерживаемые ранними Pentium.
Кроме того, где-то с последних версий 1.9X ошибка в SetCanResize.
Опять же нашел перебором и сравнением версий.
Почему-то при вызове

Form.SetClientSize(Width,Height);
Form_ClockInfo.Form.CanResize := False;

устанавливается размер окна на 3 пикселя больше, чем заказано!

Если исправить SetCanResize, то все работает правильно!

Правильный (на мой взгляд) вариант SetCanResize:

//[procedure TControl.SetCanResize]
procedure TControl.SetCanResize( const Value: Boolean );
asm
       PUSH     EBX
       MOV      EBX, EAX

           CALL     GetCanResize
       CMP      AL, DL

       JZ       @@exit   // Value = CanResize
       MOV      [EBX].fPreventResize, AL
       TEST     DL, DL

       MOV      EDX, [EBX].fStyle
       JZ       @@set_thick

       AND      EDX, not WS_THICKFRAME
       JMP      @@set_style

@@set_thick:
       OR       EDX, WS_THICKFRAME

@@set_style:
       MOV      EAX, EBX
       CALL     SetStyle

       MOV      EAX, EBX
       CALL     GetWindowHandle

       MOV      EAX, EBX
       CALL     GetWidth
       MOV      [EBX].FFixWidth, EAX

       MOV      EAX, EBX
       CALL     GetHeight
       MOV      [EBX].FFixHeight, EAX

       XCHG     EAX, EBX
       MOV      EDX, offset[WndProcCanResize]
       CALL     TControl.AttachProc
@@exit:
       POP      EBX
end;
{$ELSE ASM_VERSION} //Pascal
procedure TControl.SetCanResize( const Value: Boolean );
begin
 if Value = CanResize then Exit;
 fPreventResize := not Value;
 if Value then
   Style := Style and not WS_THICKFRAME
 else
   Style := Style or WS_THICKFRAME;
 GetWindowHandle;
 FFixWidth := Width;
 FFixHeight := Height;
 AttachProc( WndProcCanResize );
end;


Yhrik   (2005-02-09 04:55:00) [3]

Переход на более старую версию плохое решение. ИМХО.
Лучше ошибку найти. На всех проектах глюкает? Не демках тоже?
А пробовал UNDEF ASM_VERSION?


thaddy   (2005-02-07 19:12:00) [4]

I have most - if not all - old versions on back-up. Just mail me the version you want.


RA   (2005-02-07 18:31:00) [5]

2Ал Интересно какие ошибки и на всех ли проектах? На ск-ко я понял это скомпилинная прога глючит, а она же на другой виндозе как себя ведет? И делфа какая?

У меня тоже КОЛ2 на моей D3 и w95 не пашет. Пришлось остановиться на КОЛ1.97 (с небольшими поравками). Все эти вопросы, думаю, помогут выяснить причины такого поведения.


miek   (2005-02-07 18:17:00) [6]

Проще сразу скачать 2.00, чем до него обновляться.


ECM   (2005-02-07 14:20:00) [7]

USE_CMOV случаем не затесалось в проект?


ECM   (2005-02-07 14:12:00) [8]

Да уж... сорри... не внимательно прочитал первый пост..
Отсутствие ретро-откатов имеет место быть...:(


Ал   (2005-02-07 12:12:00) [9]

Как я уже сказал, с bonanzs.rinet.ru откаты не качаются.
Может быть "У Кладова на сайте " имеет другой адрес?


ECM   (2005-02-07 11:36:00) [10]

У Кладова на сайте в разделе "обновления" есть ретро-откаты...
Воспользуйся ими!


mdw   (2005-02-07 11:35:00) [11]

Здесь можно скачать  v1.69
http://www.kolnmck.ru/files/kol_mck.zip


Наверх

Титульная страница Поиск, карта сайта Написать письмо