Positioning of a new window down

This forum is for eXpress++ general support.
Post Reply
Message
Author
User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Positioning of a new window down

#1 Post by Eugene Lutsenko »

How when opening a new window to set its position of rather previous window from which it is created?

Code: Select all

   ***** ОТОБРАЖЕНИЕ ИНФОРМАЦИИ О ФУНКЦИЯХ ПРОГРАММНОГО ИНТЕРФЕЙСА ************

   Mess1 = 'Автоматическая формализация предметной области: генерация классификационных и описательных шкал'
   Mess2 = 'и градаций,  а также обучающей и распознаваемой выборки  на  основе  базы исходных данных: "Inp_data"'
   @ 0,0 DCSAY Mess1 FONT '10.Helvetica Bold' SAYSIZE 0
   @ 1,0 DCSAY Mess2 FONT '10.Helvetica Bold' SAYSIZE 0

   mStrinFrame = 2.5  // Позиция первой строки нулевой группы, следующая группа ниже на 2+N строки, если в группе N строк
   mWidthFrame = 51   // Ширина группы, следующая группа справа правее этой ширины   на 3 символа
   mPosGet     = 42   // Отступ полей ввода числовых значений внутри групп
   
   @ mStrinFrame, 0             DCGROUP oGroup1 CAPTION 'Задайте тип файла исходных данных: "Inp_data":' SIZE mWidthFrame,5.5
   @ 1, 2                       DCRADIO M_XlsDbf VALUE 1 PROMPT 'XLS  - MS Excel-2003'          PARENT oGroup1
   @ 2, 2                       DCRADIO M_XlsDbf VALUE 2 PROMPT 'XLSX- MS Excel-2007-2010'      PARENT oGroup1
   @ 3, 2                       DCRADIO M_XlsDbf VALUE 3 PROMPT 'DBF  - DBASE IV (DBF/NTX)'     PARENT oGroup1
   @ 4, 2                       DCRADIO M_XlsDbf VALUE 4 PROMPT 'CSV  - Comma-Separated Values' PARENT oGroup1
   Mess = 'Стандарт XLS-файла'
   @ 1.0, 30.5 DCPUSHBUTTON CAPTION Mess SIZE LEN(Mess)-0, 1.7 ACTION {||Help2_3_2_2xls()}  PARENT oGroup1
   Mess = 'Стандарт DBF-файла'
   @ 3.0, 30.5 DCPUSHBUTTON CAPTION Mess SIZE LEN(Mess)-0, 1.0 ACTION {||Help2_3_2_2dbf()}  PARENT oGroup1
   Mess = 'Стандарт CSV-файла'
   @ 4.0, 30.5 DCPUSHBUTTON CAPTION Mess SIZE LEN(Mess)-0, 1.0 ACTION {||Help2_3_2_2dbf()}  PARENT oGroup1

   @ mStrinFrame, mWidthFrame+3 DCGROUP oGroup2 CAPTION 'Считать нули и пробелы отсутствием данных?' SIZE mWidthFrame,5.5
   @ 1, 2                       DCRADIO Flag_zer VALUE 1 PROMPT 'Да'      PARENT oGroup2
   @ 2, 2                       DCRADIO Flag_zer VALUE 2 PROMPT 'Нет'     PARENT oGroup2
   @ 3, 2                       DCRADIO Flag_zer VALUE 3 PROMPT 'Не знаю' PARENT oGroup2
   @ 1.25, 13                   DCSAY "Нули и пробелы считаются отсутствием данных" PARENT oGroup2 EDITPROTECT {|| .NOT.Flag_zer=1 } HIDE {|| .NOT.Flag_zer=1 }
   @ 2.25, 13                   DCSAY "Нули и пробелы считаются значениями  данных" PARENT oGroup2 EDITPROTECT {|| .NOT.Flag_zer=2 } HIDE {|| .NOT.Flag_zer=2 }
   @ 3.25, 13                   DCSAY "В таком случае принимаем 1-й вариант"        PARENT oGroup2 EDITPROTECT {|| .NOT.Flag_zer=3 } HIDE {|| .NOT.Flag_zer=3 }
   Mess = 'Пояснения по работе конвертера исходных данных'
   @ 4.0, 2                     DCPUSHBUTTON CAPTION Mess SIZE LEN(Mess)+0.5, 1.0 ACTION {||Help2_3_2_2dbf()}  PARENT oGroup2
   IF Flag_zer=3
      Flag_zer=1
   ENDIF

   mStrinFrame = mStrinFrame+6
   @ mStrinFrame,  0            DCGROUP oGroup3 CAPTION 'Задайте диапазон столбцов классификационных шкал:' SIZE mWidthFrame,3.5
   @ 1, 2                       DCSAY "Начальный столбец классификационных шкал:" PARENT oGroup3;@1,mPosGet DCGET M_ClSc1 PARENT oGroup3 PICTURE "#####"
   @ 2, 2                       DCSAY "Конечный  столбец классификационных шкал:" PARENT oGroup3;@2,mPosGet DCGET M_ClSc2 PARENT oGroup3 PICTURE "#####"

   @ mStrinFrame, mWidthFrame+3 DCGROUP oGroup4 CAPTION 'Задайте диапазон столбцов описательных шкал:' SIZE mWidthFrame,3.5
   @ 1, 2                       DCSAY "Начальный столбец описательных шкал:" PARENT oGroup4;@1,mPosGet DCGET M_OpSc1 PARENT oGroup4 PICTURE "#####"
   @ 2, 2                       DCSAY "Конечный  столбец описательных шкал:" PARENT oGroup4;@2,mPosGet DCGET M_OpSc2 PARENT oGroup4 PICTURE "#####"
   
   mStrinFrame = mStrinFrame+4
   @ mStrinFrame, 0             DCGROUP oGroup5 CAPTION 'Задайте режим:' SIZE mWidthFrame,3.5
   @ 1, 2                       DCRADIO Regim VALUE 1 PROMPT 'Формализации предметной  области (на основе "Inp_data")' PARENT oGroup5
   @ 2, 2                       DCRADIO Regim VALUE 2 PROMPT 'Генерации распознаваемой выборки (на основе "Inp_rasp")' PARENT oGroup5

   @ mStrinFrame, mWidthFrame+3 DCGROUP oGroup6 CAPTION 'Задайте способ выбора размера интервалов:'  SIZE mWidthFrame,3.5
   @ 1, 2                       DCRADIO M_Interval VALUE 1 PROMPT 'Равные интервалы с разным числом наблюдений' PARENT oGroup6
   @ 2, 2                       DCRADIO M_Interval VALUE 2 PROMPT 'Разные интервалы с равным числом наблюдений' PARENT oGroup6

   mStrinFrame = mStrinFrame+4
   @mStrinFrame, 0              DCGROUP oGroup7 CAPTION 'Задание параметров формирования сценариев:' SIZE mWidthFrame*2+3,3.5
   @ 0.7, 2                     DCCHECKBOX M_Scenario PROMPT 'Применить сценарный метод прогнозирования СК-анализа?' PARENT oGroup7
   @ 2,2+2.5                    DCSAY "Глубина предыстории:"                 PARENT oGroup7                 EDITPROTECT {|| .NOT.M_Scenario } HIDE {|| .NOT.M_Scenario } 
   @ 2,mPosGet                  DCGET N_Glubina                              PARENT oGroup7 PICTURE "#####" EDITPROTECT {|| .NOT.M_Scenario } HIDE {|| .NOT.M_Scenario }
   @ 2,mWidthFrame+3+2.5        DCSAY "Горизонт прогнозирования:"            PARENT oGroup7                 EDITPROTECT {|| .NOT.M_Scenario } HIDE {|| .NOT.M_Scenario } 
   @ 2,mWidthFrame+3+mPosGet    DCGET N_Gorizont                             PARENT oGroup7 PICTURE "#####" EDITPROTECT {|| .NOT.M_Scenario } HIDE {|| .NOT.M_Scenario }
   Mess = 'Описание сценарного метода прогнозирования СК-анализа'
   @ 0.7, mWidthFrame+3         DCPUSHBUTTON CAPTION Mess SIZE LEN(Mess)-4.25, 1.1 ACTION {||Help2_3_2_2dbf()} PARENT oGroup7

   DCGETOPTIONS TABSTOP
   DCREAD GUI ;
      FIT ;
      OPTIONS GetOptions ;
      ADDBUTTONS;
      MODAL ;
      TITLE '2.3.2.2. Универсальный программный интерфейс импорта данных в систему "ЭЙДОС-X++"'
[/size]

Image

User avatar
rdonnay
Site Admin
Posts: 4813
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: Positioning of a new window down

#2 Post by rdonnay »

Try this:

DCGETOPTIONS CASCADE
The eXpress train is coming - and it has more cars.

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Positioning of a new window down

#3 Post by Eugene Lutsenko »

Thank you very much!

I tried to apply DCGETOPTIONS CASCADE instead of DCGETOPTIONS TABSTOP to positioning of a new window down, but changes nothing. How nevertheless to shift down the new window 2.3.2.2 shown in the previous post?

User avatar
rdonnay
Site Admin
Posts: 4813
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: Positioning of a new window down

#4 Post by rdonnay »

I thought these were child windows. CASCADE on works for MDI apps where the windows are all children of the main window. The below function will cascade all of your windows that are children of AppDeskTop().

Code: Select all

FUNCTION CascadeWindows()

LOCAL nParentHeight, i, aChildren, nHeight, nStartRow

nParentHeight := AppDeskTop():currentSize()[2]

aChildren := AppDeskTop():childList()

FOR i := 1 TO Len(aChildren)

  aChildren[i]:hide()
  aChildren[i]:setFrameState( XBPDLG_FRAMESTAT_NORMALIZED )

  nHeight := aChildren[i]:currentSize()[2]
  nStartRow := nParentHeight - (i-1)*22 - nHeight

  aChildren[i]:setPos( { (i-1)*22, nStartRow } )
  aChildren[i]:show()
  aChildren[i]:toFront()

NEXT

IF !Empty(aChildren)
  SetAppFocus( ATail(aChildren) )
ENDIF

RETURN nil
The eXpress train is coming - and it has more cars.

Post Reply