Galkov писал(а):
У тебя точно kol.pas из дистрибутиваТочно. Специально нулевой поставил, для получения патчей. Пропатчил только прозрачность, больше ничего.
DoDestroy действительно с FPC, а вот Destroy точно не с того взял
Вот настоящий, с оригиналного FPC for KOL, он отличается от Дельфячего (прошлый, как раз Дельфячий был)
{$IFDEF ASM_VERSION}
destructor TObj.Destroy;
asm
PUSH EAX
CALL Final
POP EAX
XOR EDX, EDX
CALL System.@FreeMem
//CALL System.@Dispose
end;
{$ELSE ASM_VERSION} //Pascal
destructor TObj.Destroy;
begin
Final;
{$IFDEF DEBUG_ENDSESSION}
if EndSession_Initiated then
LogFileOutput( GetStartDir + 'es_debug.txt',
'FINALLED: ' + Int2Hex( DWORD( Self ), 8 ) );
{$ENDIF}
inherited;
end;
{$ENDIF ASM_VERSION}
Похоже, кто-то его уже правил
------------ Дoбавленo:
Galkov, я вот что обнаружил, что если сделать вот так
if (Msg.wParam <> 0) then Exit;
DoDrawDblBuffered( Self_ );
// Rslt := 0;
// Result := True;
то глюки с загрузкой процессора исчезают и все остальное работает нормально.
Прогнал все примеры и ничего подозрительного не обнаружил, все работает. Может ты чего найдешь.
Вот только не ругайся насчет "метода тыка", я просто пытался локализовать зацикливание.