QString Property::qPropertyString() const { QString str; str = QString("Q_PROPERTY(%1 %2") .arg(realTypeName()) .arg(replaceFisrtLetterToLower(m_d->p_name)); #define AddBoolProperty(MEMBER, MARCO, QTNAME) \ if (MEMBER() != PropertyDefault##MARCO) \ { \ str += QString(" ") + #QTNAME + QString(" ") \ + ((MEMBER()) ? "true" : "false"); \ } if (member()) { str += QString(" MEMBER ") + memberVariableName(); } if (read()) { str += QString(" READ ") + readFunctionName(); } if (write()) { str += QString(" WRITE ") + writeFunctionName(); } if (reset()) { str += QString(" RESET ") + resetFunctionName(); } if (notify()) { str += QString(" NOTIFY ") + signalName(); } if (revision() != PropertyDefaultRevision) { str += QString(" REVISION %1").arg(revision()); } AddBoolProperty(designable, Designable, DESIGNABLE); AddBoolProperty(scriptable, Scriptable, SCRIPTABLE); AddBoolProperty(stored, Stored, STORED); AddBoolProperty(user, User, USER); if (constant() != PropertyDefaultConstant) { str += QString(" CONSTANT"); } if (final() != PropertyDefaultFinal) { str += QString(" FINAL"); } str += QString(")"); return str; }
void CDynControl::PrepareDataArray() { if(IsNew==0) return; IsNew=0; csPropertyName="Основные"; if(m_nControlType == ID_DYNBUTTONTREE)//TREE { csPropertyName="Дерево"; AddBoolProperty("Есть кнопки",1); AddBoolProperty("Есть линии",1); AddBoolProperty("Есть корневая линия",1); AddBoolProperty("Есть пиктограммы",0); AddStringProperty("Тип значения",nTypeValue,"ДеревоЗначений"); AddFuncProperty("Выбор",NM_DBLCLK,""); AddFuncProperty("Выделение",TVN_SELCHANGED,""); AddFuncProperty("Откр. ветки",TVN_ITEMEXPANDED,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); } else if(m_nControlType == ID_DYNBUTTONGRID)//GRID { csPropertyName="Grid"; AddIntProperty("Число строк",20); AddIntProperty("Число колонок",10); AddIntProperty("Число фикс.стр",1); AddIntProperty("Число фикс.кол.",1); AddBoolProperty("Разрешить редактирование",1); AddBoolProperty("",1); AddBoolProperty("",1); // AddBoolProperty("Выделять фикс.колонки",1);//5 // AddBoolProperty("Выделять фикс.строки",1); AddBoolProperty("Сортировка колонок",1); AddIntProperty("Высота ячейки",16); AddIntProperty("Ширина ячейки",130); AddBoolProperty("",1); // AddBoolProperty("Выделение строки",1);//10 AddBoolProperty("Авторазмер колонок",0); AddBoolProperty("Виртуальный режим",0); AddColorProperty("Цвет фона таблицы",RGB(255,255,255)); AddStringProperty("Тип значения",nTypeValue,csPropertyName); AddFuncProperty("Начало редактирования",GVN_BEGINLABELEDIT,""); AddFuncProperty("Двойн.лев.кнопка",NM_DBLCLK,""); AddFuncProperty("Левая кнопка",NM_CLICK,""); AddFuncProperty("Правая кнопка",NM_RCLICK,""); AddFuncProperty("Окончание редактирования",GVN_ENDLABELEDIT,""); AddFuncProperty("Начало выделения",GVN_SELCHANGING,""); AddFuncProperty("Окончание выделения",GVN_SELCHANGED,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); AddFuncProperty("Обратный вызов виртуального режима",9999,""); } else if (m_nControlType == ID_DYNBUTTONEDIT) // EDIT { csPropertyName="Реквизит диалога"; AddStringProperty("Тип значения",nTypeValue,"Строка"); AddBoolProperty("Неограниченная длина",1); AddIntProperty("Длина",10); AddIntProperty("Точность",0); AddBoolProperty("Неотрицательный",0);//4 AddBoolProperty("Многострочный",0); AddBoolProperty("Ввод пароля",0); AddBoolProperty("Кнопка выбора",0);//7 AddBoolProperty("Запретить редактирование",0);//8 AddFuncProperty("Выбор",WM_ONSELECT,""); AddFuncProperty("Редактирование",EN_CHANGE,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); } else if (m_nControlType == ID_DYNBUTTONRADIO) // RADIO { csPropertyName="Переключатель"; AddBoolProperty("Первый в группе",0); AddStringProperty("Тип значения",nTypeValue,""); AddFuncProperty("Выбор",BN_CLICKED,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); } else if (m_nControlType == ID_DYNBUTTONLISTBOX) // LISTBOX { csPropertyName="Список"; AddBoolProperty("Мультивыделение строк",0); AddStringProperty("Тип значения",nTypeValue,"СписокЗначений"); AddFuncProperty("Выбор",LBN_DBLCLK,""); AddFuncProperty("Позиционирование",LBN_SELCHANGE,""); //LBN_SELCANCEL AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); } else if (m_nControlType == ID_DYNBUTTONLABEL) // LABEL { csPropertyName="Надпись"; AddIntProperty("Размер шрифта",8); AddBoolProperty("Жирность",0); AddBoolProperty("Наклон",0); AddBoolProperty("Подчеркивание",0); AddColorProperty("Цвет",0); AddStringProperty("Положение гориз",1,"Лево");//5 AddStringProperty("Положение верт",0,"Центр");//6 AddFuncProperty("Нажатие",BN_CLICKED,"");//7 AddFuncProperty("Формула надписи",NM_CUSTOMDRAW,""); //AddFuncProperty("Формула",ANY_MESSAGE,""); } else if (m_nControlType == ID_DYNBUTTONCOMBO) // COMBO { csPropertyName="Поле со списком"; AddStringProperty("Тип значения",nTypeValue,"СписокЗначений"); //AddStringProperty("Тип значения",nTypeValue,""); AddFuncProperty("Выбор",CBN_SELENDOK,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); } else if (m_nControlType == ID_DYNBUTTONGROUP) // GROUPBOX csPropertyName="Рамка группы"; else if (m_nControlType == ID_DYNBUTTONCHECK) // CHECK { csPropertyName="Флажок"; AddStringProperty("Тип значения",nTypeValue,""); AddFuncProperty("Выбор",BN_CLICKED,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); } else if (m_nControlType == ID_DYNBUTTON) // BUTTON { csPropertyName="Кнопка"; AddBoolProperty("Кнопка по умолчанию",0); AddStringProperty("Тип значения",nTypeValue,""); AddFuncProperty("Нажатие",BN_CLICKED,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); AddColorProperty("Цвет",0);//4 AddIntProperty("Картинка",0);//5 AddStringProperty("Картинка гориз",1,"Лево");//6 AddStringProperty("Картинка верт",0,"Верх");//7 } else if (m_nControlType == ID_DYNBUTTONDATE) // DATE csPropertyName="Дата"; else if (m_nControlType == ID_BUTTONPROGRESS) // CProgressCtrl { csPropertyName="Индикатор"; AddIntProperty("Мин. значение",0); AddIntProperty("Макс. значение",100); AddBoolProperty("Вертикальное расположение",0); AddBoolProperty("Непрерывное заполнение",0); AddStringProperty("Тип значения",nTypeValue,""); } else if (m_nControlType == ID_BUTTONSLIDER) // CSliderCtrl { csPropertyName="Слайдер"; AddIntProperty("Мин. значение",0); AddIntProperty("Макс. значение",100); AddBoolProperty("Вертикальное расположение",0); AddBoolProperty("Инвертировать направление",1); AddBoolProperty("Маркеры",0);//4 AddStringProperty("Тип значения",nTypeValue,""); AddFuncProperty("Движение",NM_CUSTOMDRAW,""); AddFuncProperty("Нажатие клавиши",WM_KEYDOWN,""); AddFuncProperty("При изменении",NM_RELEASEDCAPTURE,""); } else if (m_nControlType == ID_BUTTONFORMOBJECT) //Пользовательская форма - микроформа { csPropertyName=m_csObjName;//"микроформа"; } else if (m_nControlType == ID_BUTTON_TAB)//CTabCtrl { AddFuncProperty("Выбор",TCN_SELCHANGE,"");//0 AddBoolProperty("Кнопки",0);//1 TCS_BUTTONS AddBoolProperty("Многострочный",0);//2 TCS_MULTILINE AddBoolProperty("Вертикально",0);//3 TCS_VERTICAL AddBoolProperty("Перевернуть",0);//4 TCS_BOTTOM + TCS_RIGHT } }