Дыбр

Nov 02, 2005 23:41

    Тэкс, кубок яндекса по поиску в интернете я благополучно завалил. Здорово конечно, что при второй попытке я набрал на одно очко больше, т.е. всего 6, но проходной балл среди юниоров - 8. 52-ое место среди юниоров (а их всего 271) довольно неплохо, но если учесть, сколько времени я провожу в интернете, толщину моего канала, мощность компа и ( Read more... )

palm, programming, internet

Leave a comment

Comments 13

hamster256 November 2 2005, 21:04:44 UTC
А что за грабли с ProcessMessages? Я вот пользовался и ничего плохого не обнаружил.

Reply

self_perfection November 2 2005, 22:13:32 UTC
Ситуация такая:

Application.ProcessMessages даёт команду на приостановку текущей операции и обработку очереди поступивших сообщений. Внешне это выглядит так, что окно программы перерисовывается, если в этом была необходимость, кнопки нажимаются, если они были нажаты, пока шла операция, вызвавшая ProcessMessages. Грабли в том, что из-за присутствия ProcessMessages юзер может нажать на кнопку, пока ещё не закончилось выполнение операции с другой кнопки, а вызванная в результате нажатия второй кнопки операция может конфликтовать с первой. Например, возникнут непрогнозируемые баги, если юзер попытается удалить пятый элемент из списка, пока он сортируется. Ну это как пример, тут-то ещё может быть всё более-менее в порядке, но у меня чаще всего такие ошибки логики приводят к зависаниям или критическим ошибкам программы.

Reply

hamster256 November 3 2005, 13:59:53 UTC
ага, понятно. Но с виду, вроде, решается несложно - проверкой завершения предыдущей команды, которая может конфликтовать.

Reply

self_perfection November 3 2005, 15:40:16 UTC
Обойти-то легко, но делеко не всегда эту проблему легко обнаружить. Я повесил отрисовку на экране координат стилуса на события "движение стилуса" и "нажимание/отпускание стилуса". Пришлось использовать ProcessMessages (иначе очищение экрана от изображения старых координат происходило после отрисовки новых). Работала программа нормально, но вешала КПК при попытке из неё выйти...

Reply


(The comment has been removed)

self_perfection November 2 2005, 21:48:59 UTC
В пятницу после 6-ти, ну или хотя бы после 4-ёх было бы лучше. Но устроит.

Reply

(The comment has been removed)

self_perfection November 3 2005, 18:22:55 UTC
Ну и где подробная инструкция по тому, как до тебя добраться? И таки когда? И фигли тебя в асе никогда нет?

Reply


padawan57 November 3 2005, 19:54:06 UTC
Разве си плюс-перплюс (тьфу, с этими ситами переситами уже язык заплетается.) нельзя работать сразу с переменными?? Мы пишем на visual studio (сит бы его...) и на builder-е и все просто как в дельфи.
int i;
i=5;
никаких указателей...

p.s. а на чем ты пишешь? На мерзком (это только ЛИЧНО МОЕ мнение, а не объективная оценка) visual study?

Reply

self_perfection November 3 2005, 20:05:21 UTC
Я пишу под Palm, втыкаешь? И в среде, в которой я пишу, пишутся программы только под пальм. Та, что я использую, называется PalmPhi, есть ещё всякие CodeWarrior, Pocket Studio e t.c. но во всех этих средах можно писать только под пальм.

Сразу видно, что ты практически не работал c WinAPI, там строковые параметры в подпрограммы передаются только в виде указателей на строки. Да и вообще когда возникает необходимость передать хоть сколько нибудь сложню структуру данных приходится использовать указатели. API пальма устроено аналогинчо. А если в переменных хранятся не сами строки, а указатели на них, операция слияния строк вообще превращается в непойми что, что я могу написать пока только "по образу и подобию".

Reply

self_perfection November 3 2005, 20:08:02 UTC
В общем, цени кусок кода (всё не в тему выкинул)
Char *St, *St1, *Sconst;
St=MemPtrNew(3);
Sconst=MemPtrNew(2);
StrIToA(St,X);
StrCopy(Sconst,"X=");
St1= StrCat(Sconst,St);
WinDrawChars(St1,StrLen(St1),60,70);
MemPtrFree(St);
MemPtrFree(Sconst);

Reply

mr_tron November 4 2005, 21:04:05 UTC
и как вы всё это понимаете??? лично для меня - глухой лес и даже объяснять бесполезно. не втыкаюсь. УЖАС!!!

Reply


Leave a comment

Up