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

    подскажите, плз, как инициализировать поле ввода в FrmCustomResponseAlert.

    Сразу заношу в буфер - не работает,
    перехватываю кнопку frmResponseCreate и заношу в строку - вылетает- говорит неправильный поинтер.
    Что-то еще можно сделать или только свою форму на ввод ?
      А инициализируешь примерно так?

      ExpandedWrap disabled
        Char *entryStringBuf;
        FrmCustomResponseAlert(..., entryStringBuf, 32, NULL);
        инициализирую так

        char arr[32] ;
        ::StrCopy( arr, pSelArticle->GetQUANTITY_TEMPString().CString() ) ;
        if ( ::FrmCustomResponseAlert( InputArticleQuantityAlert, art.CString(), price.CString(), max_quant.CString(), arr, 16, CheckResponse ) == 0 )

        но не работает :no-sad:
          А с какой целью перед вызовом FrmCustomResponseAlert() ты в arr что-то копируешь? И почему размер буфера не совпадает?
          Хотя это, наверное, не очень неважно.

          А если CheckResponse заменить н NULL, то что получается?
            У меня работает такой вариант:

            ExpandedWrap disabled
              static Boolean RenameCallback(Int16 button, Char *attempt)
              {
                  Boolean ok = true;
                  if (button == frmResponseCreate) {
                      // поиск поля ввода имени
                      FormType *form = FrmGetActiveForm();
                      for (UInt16 i = 0, size = FrmGetNumberOfObjects(form); i < size; i++) {
                          if (FrmGetObjectType(form, i) == frmFieldObj) {
                              FieldType *field = (FieldType *)FrmGetObjectPtr(form, i);
                              FieldAttrType attr;
                              FldGetAttributes(field, &attr);
                              if (attr.editable) {
                                  try {
                                      SetFieldText(field, name);
                                  }
                                  catch (...) {}
                                  break;
                              }
                          }
                      }
                  }
                  else if (button == 0 && !*attempt)
                      ok = false;
                  return ok;
              }


            name протягивается через глобализм. SetFieldText устанавливает текст с помощью SetFieldHandle:

            ExpandedWrap disabled
              void SetFieldText(FieldType *field, const String& str)
              {
                  unsigned size = str.size() + 1;
                  FieldAttrType attr;
                  FldGetAttributes(field, &attr);
                  if (attr.editable) {
                      MemHandle handle = MemHandleNew(size);
                      if (!handle)
                          throw ESys(errNoMemory);
                      char *text = (char *)MemHandleLock(handle);
                      MemMove(text, str.c_str(), size);
                      MemHandleUnlock(handle);
                      SetFieldHandle(field, handle);
                  }
                  else {
                      Char *text = (Char *)MemPtrNew(size);
                      if (!text)
                          throw ESys(errNoMemory);
                      MemMove(text, str.c_str(), size);
                      SetFieldPtr(field, text);
                  }
              }
              спасибо andrufka, это сработает ;)
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,4271 ]   [ 14 queries used ]   [ Generated: 7.07.25, 20:54 GMT ]