На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование под PalmOS"
Правила раздела просты:
1. Будьте вежливыми.
2. Задавате вопросы только по теме. Пользовательские вопросы (у меня не работает пальм) являются оффтопиком. Пользуйтесь конференциями palmz.in, hpc.ru, ihand.ru .
3. Поиск вареза запрещен.
4. Пользуйтесь поиском. Не надейтесь, что кому-то доставляет удовольствие отвечать в сотый раз на один и тот же вопрос.
  
> Программинг
    Господа, как сделать нетормозящий цикл? Например, для часов и т.п.
      например for (;;) {....}

      Я вот тут активизировал свои телепатические способности и увидел, что ты хочешь что-б обработчик пререваний не останавливался в ожидании события. Если так, то смотри в сторону EvtGetEvent(&e,0) и обработки nilEvent
      Сообщение отредактировано: Strijar -
        В чем заключается "нетормознутость"  цикла for (;;) ?
        А насчет nilEvent спасибо, это тоже было мне нужно, хотя я и не это имел ввиду.
        Я хотел сделать именно цикл, чтобы он выполнялся на протяжении
        работы всей программы, и чтобы он не подвешивал всю систему. Знаю что это можно как-то сделать на Си для компа, может быть, так же можно сделать на CodeWarrior?
          Хм.. что-ье телепатические способности подводят! ;)) Ты напиши что ты хочешь точно! - часы? Так имено через nilEvent - я так написал себе таймер на 1-8 счетчиков с точностью 0.1 сек. Еще можно дергать функцию по таймеру каждые N секунд (будет вызываться даже если ты в другой проге) - у меня так Crony написан
            Nascoliko ia provilino poneal - neobhodimo napisati process cotorii ne zaderjivaet i ne blokiruiet vsiu systemu. To esti nezavisimii process.
            Ne imeiu opita programirovania dlea Palm. No dlea drugih OS (Win32, Unix) v takih sluceiah ispolizuetsea tehnologia Thread, to esti potoki. Dumaiu cto i dlea Palm doljno cto-to biti podobnoe.
            Nado toliko poiscati v doc-ah po etomu terminu - ''Thread''.
              Дело пахнет многозадачностью! ;) Вообще-то _считается_ что PalmOS однозадачная система. На самом деле SDK для написания многозадачных программ есть - но он за деньги, так что лучше считай что PalmOS однозадачная и пытайся выкручиваться именно исходя из этого :)
                Всем спасибо, буду думать.

                Тогда другой вопрос: Чтобы вывести на экран число, я преобразую его с помощью StrIToA и все отлично. А вот если число дробное, то нужно использовать FlpFToA. А этой функции хочется значение типа FloatType. Был бы очень благодарен, если бы мне разъяснили как работать с FloatType, FlpCompFloat и т.д.
                  Работа с числами в плавающей запятой описана в документации (на сайте есть). Другой вопрос - а надо ли тебе _плавающую_ запятую? Нельзя ли обойтись фиксированной? ;)) Я когда делал секундомер с точностью 0.1сек очень даже хорошо обошелся
                    Вполне вероятно, что можно обойтись. Только что-то я не врубаюсь как. Просвети, пожалуйста.
                      Опять же не понятно чего ты хочешь! ;) Например - надо тебе оперировать числами до 2 знака. Умножаешь все на 100 - а потов при выводе результата делишь на 100 - это целая часть, остаток от деления это дробная часть (хотя получится целое от 0 до 99 ;) Не понятно?

                      int a = 12*100+34 /*  12,34 */
                      int b = 56*100+78 /* 56,78 */
                      int c;

                      c = a+b;
                      printf("a+b= \%i.\%i",c / 100,c \% 100);
                        имхо, так еще геморойнее, хотя приведенный тобой пример работает как и хотелость. блин, для чего тогда нужен такой тип данных, как float? Я хочу спокойно заносить в переменные такого типа введенные значения, оперировать с ними и выводить полученные значения на экран. И хочу это сделать именно используя float или FlpFloat. Теперь достаточно понятно? :)
                          Понимаешь какое дело, иногда хочется что-бы софт работал быстро ;) Для примера возьми AstroInfo (есть на сайте) и посмотри на скорость - это не сложение и вычитание, это сферическая тригонометрия - и все это считается с фиксированной точкой. СтОит иногда погемороиться один раз (это называется оптимизация ;) ), что-б потом было приятно пользоваться софтом. И если тебе все таки хочется работать с float - почитай же наконец "PalmOS SDK Documentation" - ты будешь удивлен, но там про это есть ;)
                            С дробями я разобрался - хотя и извращенным способом.
                            Теперь возник еще вопрос: как сделать форму со скролбаром, чтобы прокручивалась имеено форма со всеми ее кнопками, картинками и т.д.?
                              О! вопрос достойный ФАКа! ;)) я такое делал уже (просто ради интереса ;)) Я просто в лоб делал CtlHideControl, потом менял bounds и CtlShowControl у всех элементов формы
                                Ясно. Ну и как оно выглядит? Нормально?

                                Next question :)
                                Допустим, я хочу написать текстовый редактор. А редактор без возможности сохрания нафиг никому не нужен. Я очень хотел бы узнать как это делается.
                                  Выглядит нормально ;) если будет мигать можно добавить WinLockScreen и WinUnlockScreen

                                  УУуууу... Чего ты хочешь от редактора? (а их мало что ли? ;)
                                  1) Делаешь свой редактор, со своим (не совместимым) форматом файла - тут ты сам себе Буратино
                                  2) Делаешь редактор который понимает Palm PDB doc - ищешь формат этого файла (находится легко) и пишешь его реализацию

                                  Все просто! В качестве пример можешь глянуть (урезанный, но рабочий вариант) в /src/net есть мой syslog - он умеет писать в незапакованный PDB doc
                                    Цитата a3x, 12.05.02, 14:58:55

                                    Допустим, я хочу написать текстовый редактор. А редактор без возможности сохрания нафиг никому не нужен. Я очень хотел бы узнать как это делается.


                                    Случайно нашел исходники редактора - смотри в /src/reader ;)
                                      Спасибо. Вопросов пока больше нет, погружаюсь в работу ;)
                                        char Leg[5][10];
                                        Leg[0][0]= (char)*FldGetTextPtr (fldP);
                                        Данной строкой я хотел записать в Leg всю введенную в текстовое поле строку. но почему-то записывается только первый символ. в чем ошибка?
                                          Цитата Ditrih, 15.06.02, 18:09:17
                                          char Leg[5][10];
                                          Leg[0][0]= (char)*FldGetTextPtr (fldP);
                                          Данной строкой я хотел записать в Leg всю введенную в текстовое поле строку. но почему-то записывается только первый символ. в чем ошибка?


                                          Потому что правильно будет или

                                          StrCopy(Leg[0],FldGetTextPtr(fldP)

                                          или

                                          char *Leg;
                                          Leg = FldGetTextPtr(fldP)
                                          Это-ж Си ;)
                                            Отлично! Спасибо за помощь. 8)
                                              Господа, не могли бы вы поведать мне как осуществляется работа с файлами под Palm OS. Например, мне необходимо сохранить в файл несколько массивов данных (числовых или символьных, не важно), ну и потом соответственно прочитать эти данные из файла. ???
                                              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                              0 пользователей:


                                              Рейтинг@Mail.ru
                                              [ Script execution time: 0,0436 ]   [ 14 queries used ]   [ Generated: 9.07.25, 04:12 GMT ]