порядок элементов в массиве control [] окна - PullRequest
0 голосов
/ 20 ноября 2018

В окнах есть массив control [] с элементами управления, которые есть в окне.Кто-нибудь знает, каков алгоритм порядка элементов управления в этом массиве control []?Иногда этот порядок меняется в режиме разработки, и я не знаю почему.У меня большая проблема с этим

, пожалуйста, помогите

1 Ответ

0 голосов
/ 06 марта 2019

Массив элементов управления в контейнере визуальных объектов powerbuilder (userobject, window и т. Д.) Сохраняется по мере создания и уничтожения элементов управления во внутренних событиях create и destroy.Они обычно находятся в том порядке, в котором вы поместили элементы управления на контейнер.Так, например, если мы посмотрим на исходный код (щелкните правой кнопкой мыши объект в системном дереве и выберите «Редактировать исходный код» или экспортируйте в файл src) окна с именем «w_my_window», где я создал две кнопки команд и окно данных:

on w_my_window.create
int iCurrent
call super::create
this.cb_1=create cb_1
this.cb_2=create cb_2
this.dw_1=create dw_1
iCurrent=UpperBound(this.Control)
this.Control[iCurrent+1]=this.cb_1
this.Control[iCurrent+2]=this.cb_2
this.Control[iCurrent+3]=this.dw_1
end on

on w_my_window.destroy
call super::destroy
destroy(this.cb_1)
destroy(this.cb_2)
destroy(this.dw_1)
end on

Обратите внимание, что элементы управления могут создаваться и уничтожаться в другое время в других событиях и функциях, если вы кодируете таким образом (т.е. динамически создаете элементы управления с помощью Create / OpenUserObject), и это также повлияет на массив элементов управления.

Обратите также внимание, что массив элементов управления построен на основе событий, произошедших в предке, и потомки будут продолжать строить этот массив элементов управления.

Для ясности, все это не относится к объектам внутри окна данных.

...