|
[ На главную ] -- [ Список участников ] -- [ Зарегистрироваться ] |
On-line: |
Программирование на CAVO / / Можно ли подправить ComboBox |
Страницы: 1 |
Автор | Сообщение |
ValeraN Группа: Модераторы Сообщений: 177 |
Добавлено: 23-06-2010 12:46 |
Столкнулся с проблемой: надо в ComboBox-е принудительно выставить тип выпадения списочного значения в DROPDOWNLIST. Ситуация усугубляется тем, что он создаётся через репозиторий через ресурс и в момент его создания я не могу повлиять на его качества. Т.е. мне надо перерисовать (исправить) ComboBox после его создания. Думаю, что это невозможно... У кого какие мысли? |
|
Komar Группа: Участники Сообщений: 24 |
Добавлено: 23-06-2010 17:31 |
Поподробней пожалуйста. Не совсем понятны желания. Combobox, как впрочем и любой другой объект, вполне управляем. Не понятно причем здесь репозитарий, Combobox можно создавать динамически, например в Postinit(). | |
ValeraN Группа: Модераторы Сообщений: 177 |
Добавлено: 23-06-2010 19:46 |
Делаю свой класс ComboBox. Задача: в закладке "General" устанавливаю свойство "Inherit from CLASS" <мой класс> и мне должно быть всё равно, какое значение стоит в закладке "stylе" у элемента "ComboBox Type". Т.е. хочу только задав свой класс, всегда получать DropDownList. Личный вопрос: Komar, можете черкнуть письмо мне на адрес из профиля? Я сейчас восстанавливаю свою адресную книгу... |
|
Komar Группа: Участники Сообщений: 24 |
Добавлено: 24-06-2010 17:06 |
CLASS KlSchetb INHERIT bDataWindow //{{%UC%}} USER CODE STARTS HERE (do NOT remove this line) PROTECT oComsearch AS Comsearch PROTECT oMyName AS ComboBoxAuto PROTECT oMyKod AS ComboBoxAuto METHOD PostInit(oWindow,iCtlID,oServer,uExtra) CLASS KlSchetb LOCAL oCol AS bDataColumn LOCAL oDb AS DbServer LOCAL oKl AS ComSer LOCAL aNm:={},aKd:={} as Array SELF:Pointer:=Pointer{PointerHourGlass} //SELF:oDcFrp:Hide() IF Len( aPayer)= 0 oDb := DbServer{SsaIniFs:GetString('Directories','Klassif')+'KlOrg.Dbf'} APayer := getArray(#Name,#Kod, oDb) oDb:Close() AAdd( aPayer,{ Space(40),Space(4)}) aPayer:=ASort(aPayer,,,{|x,y| x[1]<y[1] }) ENDIF IF Len( aEmpl ) =0 oDB:=DbServer{SSaIniFs:GetString('Directories','Zarplata' )+'Empl.Dbf'} DO WHILE !oDB:EOF AAdd( aEmpl,{ AllTrim(oDB:FIELDGET(#Fam))+' '+SubStr(oDB:FIELDGET(#Name1),1,1)+'.'+; SubStr(oDB:FIELDGET(#Name2),1,1)+'. - '+Str(oDB:FIELDGET(#TabN),5),; oDB:FIELDGET(#TabN)}) oDB:Skip() ENDDO AAdd( aEmpl,{ Space(40),0}) aEmpl:=ASort(Aempl,,,{|x,y|x[1]<y[1]}) oDB:Close() ENDIF oKl := ComSer{SELF,'KlSchet',,SsaIniFs:GetString('Directories','Klassif'),{'KodSchet'}} DO WHILE ! oKl:EoF AAdd(aNm,{oKl:FIELDGET(#Name),oKl:FIELDGET(#Kod)}) AAdd(aKd,{oKl:FIELDGET(#Kod),oKl:FIELDGET(#Kod)}) oKl:skip() ENDD aNm:=ASort(ANm,,,{|x,y|x[1]<y[1]}) aKd:=ASort(AKd,,,{|x,y|x[1]<y[1]}) // ******************** oMyName:=ComboBoxAuto{SELF:Menu:ToolBar,888,Point{270,-195},Dimension{230,220}, , WS_CHILD+WS_OVERLAPPED} oMyName:HyperLabel:=HyperLabel{#oMyName, 'Поиск', 'по имени;'} oMyName:FillUsing(aNm) oMyName:Show() oMyKod:=ComboBoxAuto{SELF:Menu:ToolBar,889,Point{520,-195},Dimension{100,220}, , WS_CHILD+WS_OVERLAPPED} oMyKod:HyperLabel:=HyperLabel{#oMyKod, 'Поиск', 'По коду'} oMyKod:FillUsing(aKd) oMyKod:Show() Пример создания Combobox в PostInit() Он создается в поле ToolBar меню окна. В Вашем случае, в момент инициализации окна ComboBox установится тип отличный от родителя, прописанный в RESOURCE окна. Изменить тип думаю можно в PostInit, но не пробовал. |
|
ValeraN Группа: Модераторы Сообщений: 177 |
Добавлено: 24-06-2010 17:27 |
Спасибо! Этот способ я знаю. Но в PostInit подправить не получится. Покопался в SDK. Если ComboBox делается родными средствами, то используются только данные его ресурса... Можно ли изменить или подправить данные ресурса по ходу исполнения кода? |
Страницы: 1 |
Программирование на CAVO / / Можно ли подправить ComboBox |