Главная страница
    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.033 c
14-1108634914
Vaitek
2005-02-17 13:08
2005.03.13
Оптимизация вычислений


1-1109440162
novice_man
2005-02-26 20:49
2005.03.13
Глобализация переменных.


3-1108122773
denis24
2005-02-11 14:52
2005.03.13
проблема с firebird


1-1109607947
Simply Alex
2005-02-28 19:25
2005.03.13
Прокрутка в DBGrid


14-1108920064
Kerk
2005-02-20 20:21
2005.03.13
зачем нужны папки _vti_* ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский