Страниц: [1]
  Печать  
Автор Тема: Повреждение виджета при прорисовке в QNX4.25  (Прочитано 1229 раз)
Дмитрий
Участник
*
Offline Offline

Сообщений: 38


Просмотр профиля
« : Сентября 28, 2015, 04:03:28 pm »

Здравствуйте!

Не могу побороть следующую проблему:
 Рисую массивы виджетов PtText, PtRect
Код:
posdb.x=1;
posdb.y=100;
PtSetArg(&argsBMg[0],Pt_ARG_DIM,&dimdb,0);
PtSetArg(&argsBMg[1],Pt_ARG_POS,&posdb,0);
dbc=PtCreateWidget(PtDBContainer,win1w,2,&argsBMg);
PtSetArg(&argsBMg[0],Pt_ARG_FILL_COLOR,Pg_WHITE,0);
PtSetArg(&argsBMg[1],Pt_ARG_CURSOR_TYPE,Ph_CURSOR_NONE,0);
PtSetResources(dbc,2,&argsBMg);



for (iLia=1;iLia<Kbm;iLia++){
dim3.w=5;
dim3.h=350;
posLia.x=x;
posLia.y=250;
PtSetArg(&argsBMg[0],Pt_ARG_POS,&posLia,0);
PtSetArg(&argsBMg[1],Pt_ARG_DIM,&dim3,0);
BM[iLia]=PtCreateWidget(PtRect,dbc,2,&argsBMg);//
PtSetArg(&argsBMg[0],Pt_ARG_LINE_WIDTH,1,0);
PtSetArg(&argsBMg[1],Pt_ARG_FILL_COLOR,Pg_GRAY,0);
PtSetArg(&argsBMg[2],Pt_ARG_COLOR,Pg_WHITE,0);
PtSetResources(BM[iLia],3,&argsBMg);
//

x+=15;
}

PtRealizeWidget(dbc);


Затем при динамической перерисовке по таймеру
Код:
       PtSetArg(&args[0],Pt_ARG_FILL_COLOR,COLOR_GREEN,0);
        dim3.w=5;
dim3.h=(BMa[i1]->Ubm-250)*1.5;
PtSetArg(&args[1],Pt_ARG_DIM,&dim3,0);
pos.x=BmX[i1];
pos.y=350-dim3_BM.h;
PtSetArg(&args[2],Pt_ARG_POS,&pos,0);

PtSetResources(BM[i1],3,&args);
и вконце
PtDamageWidget(dbc);


 некоторые из виджетов "пропадают" т.е. перестают прорисовываться, затем снова появляются на следующем цикле.
Мне кажется, что где-то рушится внутренняя память виджетов, но не могу понять где.

Как правильно отрисовывать виджеты, подскажите?

Может ли какая-то другая часть программы (динамический массив)влезть в ресурсы виджета и запортить его?
У меня в программе есть другой модуль (окно) где есть массив виджетов, но они прорисовываются корректно!
При этом если я меняю ресурсы одного из виджетов то это затрагивает прорисовку другого, из другого массива!!!

Что может повлиять на виджет?
« Последнее редактирование: Сентября 28, 2015, 04:52:59 pm от Дмитрий » Записан
PoP
Sr. Member
****
Offline Offline

Сообщений: 336


Просмотр профиля
« Ответ #1 : Сентября 28, 2015, 05:41:02 pm »

PgFlush и т.д?
Записан
Дмитрий
Участник
*
Offline Offline

Сообщений: 38


Просмотр профиля
« Ответ #2 : Сентября 29, 2015, 08:40:37 am »

А что это даст? Эта функция, я так понимаю, вызывается если я рисую в Raw,
а я использую виджеты
Записан
PoP
Sr. Member
****
Offline Offline

Сообщений: 336


Просмотр профиля
« Ответ #3 : Сентября 29, 2015, 03:26:57 pm »

Сразу точно не вспомнил. PtFlush() (написал же и т.д.). 
Записан
Страниц: [1]
  Печать  
 
Перейти в: