Страниц: [1]
  Печать  
Автор Тема: PtFileSelection и PgDrawIRect  (Прочитано 4132 раз)
Joker
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« : Июня 14, 2010, 09:31:37 pm »

Здравствуйте. Реализую клиент-серверное приложение в IDE Momentics 2.2.0. Клиентскую часть делаю в Photon AppBuilder.
При клике по кнопке появляется окно (PtFileSelection) для выбора текстового файла. После выбора хочу, чтобы добавился прямоугольник. Однако этого не происходит, хотя сообщение "Ok" (т. е. Success) после завершения программы выводится.
Код обработчика клика:

Код:
int click(PtWidget_t *widget, ...) {

   PtFileSelectionInfo_t info;
   int i, fileSelection;

   widget = widget, apinfo = apinfo, cbinfo = cbinfo;

   memset(&info, 0x0, sizeof(PtFileSelectionInfo_t));

   fileSelection = PtfileSelection(NULL, NULL, "Data file selection", "~", "*.txt", "Select", NULL, NULL, &info, 0);

   if (fileSelection) {
      printf("Error");
      PtExit(-1);
   }

   if (info.ret == Pt_FSDIALOG_BTN1) {
     
      // Рисование прямоугольника
      PgSetFillColor(Pg_WHITE);
      if (PgDrawIRect(50, 50, 350, 350, Pg_DRAW_FILL) == 0) {
         printf("Ok");
      }

   }

   return (Pt_CONTINUE);

}

Если в функции оставить только PgDrawIRect без вызова PtFileSelection, прямоугольник появится. Из-за чего может не происходить прорисовка?
Заранее благодарен.
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #1 : Июня 14, 2010, 09:48:43 pm »

Наверное последующий вывод перетирает прямоугольник. Либо не хватает вызова PgFlush(); после вызова PgDrawIRect().
Записан

Joker
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #2 : Июня 14, 2010, 09:51:49 pm »

Пробовал так, но результат, к сожалению, аналогичный
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #3 : Июня 14, 2010, 10:03:36 pm »

Ну я ещё имел в виду, что перерисовка PtFileSelection может затирать прямоугольник.
Записан

Joker
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #4 : Июня 14, 2010, 10:10:29 pm »

Вполне возможно, но как это обойти, пока не знаю)
Записан
-Al-
Jr. Member
**
Offline Offline

Сообщений: 71


Просмотр профиля
« Ответ #5 : Июня 17, 2010, 03:24:12 pm »

Может каким-то образом не восстановился Draw Context?

Попробуйте PhDCGetCurrent()/PhDCSetCurrent() до и после вызова PtfileSelection соответственно.
Записан
Joker
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #6 : Июня 21, 2010, 09:57:08 am »

Спасибо) Я решил сделать немного по-другому, чтобы ничего не прорисовывалось после выбора файла
Записан
Страниц: [1]
  Печать  
 
Перейти в: