Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.037 c
1-1109666619
paule
2005-03-01 11:43
2005.03.13
Маска в Edit


9-1103193811
D-Man
2004-12-16 13:43
2005.03.13
Power Draw прозрачность


1-1109237475
Zilog
2005-02-24 12:31
2005.03.13
Обьясните, пж, почему поток без sleep(1) тормозит?


1-1109519690
Xfor
2005-02-27 18:54
2005.03.13
Редактирование записей файла в Stringgrid


1-1109254455
Sen====
2005-02-24 17:14
2005.03.13
Stream read error





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский