Форум: "KOL";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Вниз2Kladov : Bug Fix OnIdle? Найти похожие ветки
← →
ecm (2004-08-17 19:37) [0]Ув. Владимир я тут вам посылал письмо. По-поводу найденых
ошибок в OnIdle. Может оно не дошло?
Вот его содержание:
Здравствуйте, Vladimir.
Заметил одну "неприятность" в механизме OnIdle.
Может я чего пропустил в форуме, но в последней версии
(я проверил еще раз - скачав V1.90 и применив update 190to192)
предлагаю поправить следующее:
//[function FindIdleHandler]
function FindIdleHandler( const OnIdle: TOnEvent ): integer;
var
i: integer;
begin
i := 0;
if (not AppletTerminated) and (IdleHandlers <> nil) then //+ {Maxim Pushkar}
========================= 1) После UnRegisterIdleHandler список уже может
быть разрушен!
with TMethod(OnIdle), IdleHandlers{-}^{+} do
while i < Count do begin
if (Items[i] = Code) and (Items[i + 1] = Data) then
begin
Result := i;
exit;
end;
Inc(i, 2);
end;
Result := -1;
end;
//[END FindIdleHandler]
//[procedure UnRegisterIdleHandler]
procedure UnRegisterIdleHandler( const OnIdle: TOnEvent );
var
i: integer;
begin
i := FindIdleHandler(OnIdle);
if i <> -1 then
with IdleHandlers{-}^{+} do
begin
Delete(i);
Delete(i);
{added by dominiko:}
if IdleHandlers.Count = 0 then begin // 2) Проверка на 0 только, если найден обработчик -> i<>-1!
ProcessIdle := DummyObjProc; // 3) либо в ProcessIdle проверять в начале, что IdleHandlers <> nil
Free_And_Nil(IdleHandlers);
end;
end;
end;
Последовательность действий для проявления ошибки:
- Исходно обработчиков еще нет;
- RegisterIdleHandler(..);
- UnRegisterIdleHandler(..) - при отсутствии изменения 3 - падение в ProcessIdle
т.к. IdleHandlers = nil;
- еще раз UnRegisterIdleHandler(..)/Имею я право разрегистировать
незарегистрированный обработчик? :=)/ - при отсутствии 1 - падение в Find.. 2 - падение в UnRegister..
т.к. IdleHandlers = nil;
--
С уважением,
ECM mailto:ecm@ua.fm
Хотелось бы услышать ваше мнение ...
Непонятно что будет дальше IdleHandler-ами?
← →
ecm (2004-08-17 23:03) [1]Вопрос остается!
← →
SPeller © (2004-08-18 03:09) [2]Исправь у себя и жди когда Владимир м.б. внесет эти изменения. У меня у самого своих изменений куча, которые вручную качуют из одной версии в другую :)
← →
ecm (2004-08-18 11:46) [3]2Speller & 2Kladov может быть стоит перенести проект в CVS
чтобы "корифеи" могли править самостоятельно?!
В крайнем случае Кладов всегда мог бы сделать Rollback!
← →
ecm (2004-08-18 12:02) [4]По-моему надо как-то помогать Кладову - он же
не железный!
← →
SPeller © (2004-08-18 13:00) [5]Да мы и так помогаем. У него просто нет времени просмотреть то что мы предлагаем и внести это всё в конечный модуль.
← →
ecm (2004-08-18 13:05) [6]Ну дык CVS для этого и предназначен.
А Кладов мог бы там быть "модератором" (root)
← →
SPeller © (2004-08-18 15:20) [7]И так нормально. Просто Владимир как никто другой знает идеологию всей библиотеки, и, я думаю, никто кроме него содержать ее в нормальном состоянии, в том числе и концептуальном не сможет.
← →
Vladimir Kladov (2004-08-18 17:09) [8]исправлять ошибки, если обнаруживаются, конечно надо. Но прежде чем вносить что-то новое, очень хотелось бы быть уверенным:
1. что это не вносит ошибок
2. что это не увеличивает код
3. и насчет лицензионной чистоты тоже. А потом всякие SCO купят права на тот продукт, из которого это вытащено, и начнут права качать...
из того, что уже есть в KOL, хотелось бы видеть доведенными до ума:
1. прозрачность/двойная буферизация
2. выравнивание (Align) - иногда бывает, что все-таки не работает само, приходится подталкивать вызовом Global_Align( родитель ) а то и просто писать свой код на OnResize
3. MDI - просто нужен специалист, который умеет делать это на API
4. Чтение-запись иконок (записанные иконки не всегда потом читаются)
А времени никогда не хватает... И не заниматься же мне все время одним только KOL"ом, у меня тоже есть другие интересы. То что работает - этим я сам очень здорово пользуюсь, но опять же не всем, так что баги иногда все еще обнаруживаются.
Так что, начинайте помогать. Нашли ошибку - делайте исправление, тестируйте, присылайте список изменений или upd-файл. По возможности буду вносить корректировки.
← →
SPeller © (2004-08-19 06:40) [9]
> 4. Чтение-запись иконок (записанные иконки не всегда потом
> читаются)
Чтение-запись в файл?
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c