Текущий архив: 2005.07.18;
Скачать: CL | DM;
ВнизFreeLibrary Найти похожие ветки
← →
kblc © (2005-05-26 14:09) [40]извиняюсь за ляп:
procedure TfmMainServer.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=Self.CanCloseFirst;
if not Self.CanCloseFirst then
begin
if not Visible then Visible:=true;
MainServer.Save;
tim_Saving.Interval:=CNST_TIMER_SAVE_INTERVAL; //2*1000
tim_Saving.Enabled:=true;
end;
end;
← →
Digitman © (2005-05-26 14:10) [41]
> kblc © (26.05.05 14:08) [38]
а шут его знает, КАК ты "их" отлаживаешь)
вообще-то еще клавиша F7 есть ... и asm-код ...
← →
kblc © (2005-05-26 14:11) [42]2 DigitMan:
запостить весь код??? 58 КБ текста (всё вместе)???
← →
kblc © (2005-05-26 14:12) [43]блин... я и на F7 жал! ... да ёпрст... а что за асм код - да-не знаю.... если это именено то окно дебуггера где одни знаки "?" ???
← →
Digitman © (2005-05-26 14:12) [44]
> if not Self.CanCloseFirst then
в данном контексте выделенное жирным выдает дилетанта)
это тоже не ОБС ?
← →
kblc © (2005-05-26 14:14) [45]раньше там просто было CanClose - заменить не успел
DigitMan, отгадай откуда этот брался CanClose ???
наверное из объекта класса!
← →
Digitman © (2005-05-26 14:17) [46]
> если это именено то окно дебуггера
что такое "окно дебуггера" ?
в этом окне - куча фреймов : фрейм секции кода, фрейм секции данных, фрейм секции стека, фрейм регистров CPU ...
если эти самые "одни знаки "?" ты видишь во фрейме секции кода, то это может означать: нарушение соглашений о вызове, загаживание тобой стека в теле вызванной п/п, дохрена чего еще может означать ..
← →
kblc © (2005-05-26 14:23) [47]2 Digitman: да, именно! я про это самое окно!...
тогда вопрос звучит так: как определить откуда она появляеться и что нужно делать что бы её не было???
← →
Digitman © (2005-05-26 14:24) [48]для начала нужно проверить соглашения о вызове
← →
kblc © (2005-05-26 14:30) [49]Digitman, что значит "проверить соглашения в вызове"?
← →
Digitman © (2005-05-26 14:32) [50]это значит что декларация п/п в вызывающем коде должна в точности соответствовать декларации той же п/п в вызываемом коде
← →
kblc © (2005-05-26 14:41) [51]2 Digitman: проверил все декларации.
Всё полностью совпадает.
Что ещё я могу сделать?
← →
Digitman © (2005-05-26 14:44) [52]например, привести сюда декларацию и реализацию метода DispatchMsg..
← →
kblc © (2005-05-26 14:44) [53]когда появляеться вот такая ошибка?
EInOutError with message "I/O Error 103"
← →
Digitman © (2005-05-26 14:45) [54]
> kblc © (26.05.05 14:44) [53]
как минимум - при файловом вводе/выводе ..
← →
kblc © (2005-05-26 14:55) [55]я нашёл в чём ошибка...
я постоянно вызываю метод DispatchMsg не используя SendMessage().. это естественно, ведь у меня классы не имеют хэндла...
тут я сам наступил на грабли... у меня вызывался метод MainServer.Save который выгружал все dll, но(!!!) изучая я пришёл к выводу, что функция ExecProcedure в библиотеке не успевает завершить свою работу (т.к. клсвенно вызвала метод MainSercver.Save, который уже выгрузил её саму).
Как же мне тогда сделать так, что бы этого не повторялось?
Я засунул метод Save в таймер ... который срабатывает после 2 секунд после обработки сообщения метода DispatchMsg. Тепрь всё работает. Никаких ошибок.
Но я считаю что это неправильно.
Как же мне сделать "правильно"?
← →
Digitman © (2005-05-26 15:03) [56]
> функция ExecProcedure в библиотеке не успевает завершить
> свою работу
т.е. она реализует асинхронную логику ?... какого ж ... ты сразу об этом не упомянул ?)
ЧТО является признаком фактического (успешного или неуспешного) завершения работы алгоритма, инициированного к выполнению вызовом ExecProcedure() ?
← →
kblc © (2005-05-26 15:12) [57]к сожалению я не могу сейчас продолжать... продолжим завтра ...
всем бооольшое спасибо
правда
Страницы: 1 2 вся ветка
Текущий архив: 2005.07.18;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.038 c