On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 12
Зарегистрирован: 20.10.15
ссылка на сообщение  Отправлено: 26.01.16 21:04. Заголовок: Список контролов на форме


Дай бог здоровья всем добрым людям!
Вот опять дедушке невмоготу лазить по инструкциям, ответ раньше времени получить хочется!
И по поиску на форуме не нашлось мне ничего. (((
Можно ли как-то получить массив контролов, которые имеются на форме?
На форме имеется куча полей для ввода и в разных режимах необходимо делать большинство из них недоступными до определенного события, а затем наоборот - т е _ExtDisableControl ( ) _ExtDisableControl ( ) по массиву пробегаючись.
Что можно тут посоветовать?



Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 11 [только новые]


постоянный участник




Пост N: 4673
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 26.01.16 21:22. Заголовок: Где то так.... ..


Где то так....

// считать все объекты на форме
aTemp := _GetArrayOfAllControlsForForm ( "Form_Main" )
FOR nI := 1 TO LEN(aTemp)
cObj := UPPER(aTemp[nI])
IF AT("OBUT_", cObj) > 0 .OR. ;
.OR. AT("IMAGE_1", cObj) > 0
SetProperty( "Form_Main", cObj, "Visible", .F. )
ENDIF
NEXT
......................

//////////////////////////////////////////////////////////////////////////////////////
// Перерисовать все объекты на форме
FUNCTION RedrawAll()
Local aCtrls := _GetArrayOfAllControlsForForm ( _HMG_ThisFormName )
Local nI, CtrlName

FOR nI := 1 TO LEN(aCtrls)
CtrlName := aCTrls[nI]
IF AT("DUMMYMENUNAME", UPPER(CtrlName) ) > 0
// пропуск, т.к. это объект МиниГуи-ядра
ELSE
SetProperty( _HMG_ThisFormName, CtrlName, "Visible" , .F. )
SetProperty( _HMG_ThisFormName, CtrlName, "Visible" , .T. )
ENDIF
NEXT

Return NIL


/*************** MiniGUI\SAMPLES\BASIC\Form_Controls **************************/
Function _GetArrayOfAllControlsForForm ( cFormName )
/******************************************************************************/
Local nFormHandle , i , nControlCount , aRetVal := {} , x

nFormHandle := GetFormHandle ( cFormName )
nControlCount := Len ( _HMG_aControlHandles )
For i := 1 To nControlCount
If _HMG_aControlParentHandles == nFormHandle
If ValType( _HMG_aControlHandles ) == 'N'
IF ! Empty( _HMG_aControlNames )
If Ascan( aRetVal, _HMG_aControlNames ) == 0
Aadd( aRetVal, _HMG_aControlNames )
EndIf
ENDIF
ElseIf ValType( _HMG_aControlHandles ) == 'A'
For x := 1 To Len ( _HMG_aControlHandles )
IF !Empty( _HMG_aControlNames )
If Ascan( aRetVal, _HMG_aControlNames ) == 0
Aadd( aRetVal, _HMG_aControlNames )
EndIf
ENDIF
Next x
EndIf
EndIf
Next i
Return Asort( aRetVal )



Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 13
Зарегистрирован: 20.10.15
ссылка на сообщение  Отправлено: 27.01.16 03:42. Заголовок: Вооо! Спасибо за сс..


Вооо! Спасибо за ссылку, счас гляну, сразу в примерах и не углядел!
За вечер правда уже на другой путь свернуть я успел... (((((
А можно ли станд.средствами узнать, есть ли контрол на форме, т е не обращаясь к сформированному списку имеющихся?


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4674
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 27.01.16 20:11. Заголовок: If .Not. _IsWindowD..


If .Not. _IsWindowDefined (ParentForm)
MsgMiniGuiError("Window: "+ ParentForm + " is not defined.")
Endif

If _IsControlDefined (ControlName,ParentForm)
MsgMiniGuiError ("Control: " + ControlName + " Of " + ParentForm + " Already defined.")
endif



Спасибо: 1 
ПрофильЦитата Ответить
moderator


Пост N: 761
Зарегистрирован: 20.02.11
ссылка на сообщение  Отправлено: 27.01.16 21:51. Заголовок: Andrey пишет: Где т..


Andrey пишет:

 цитата:
Где то так....




Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 15
Зарегистрирован: 20.10.15
ссылка на сообщение  Отправлено: 28.01.16 21:57. Заголовок: Пасибки! И в каких ..


Пасибки!
И в каких только умных книжках все это народ находит?
Наверно толстые и без картинок...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 4679
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.01.16 23:14. Заголовок: mshep пишет: И в ка..


mshep пишет:

 цитата:
И в каких только умных книжках все это народ находит?


Открвываешь в Far'е поиск в папке MiniGUI и читаешь исходники...
Ничего не понимаешь, через день повторить... И так пока не поймёшь... А потом можешь и забыть...
Нет никаких книжек, только работа, работа и ещё раз работа !
Пока не переделаешь кучу примеров, ничего не поймёшь....


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 33
Зарегистрирован: 20.10.15
ссылка на сообщение  Отправлено: 20.05.18 01:01. Заголовок: Добрый вечер добрым ..


Добрый вечер добрым людям!
Подсказал бы кто мне функцию, по которой можно было бы получить список всех открытых WINDOW текущей программы
и чтобы можно было отловить которые из них HIDE.
И где про сию функцию посмотреть/почитать.
Очень буду благодарен и удовлетворен, если кто ответит дедушке.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1821
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.05.18 09:28. Заголовок: mshep пишет получить..


mshep пишет
 цитата:
получить список всех открытых WINDOW текущей программы


_HMG_aFormNames
_HMG_aFormHandles
т.е.
For i := 1 To Len( _HMG_aFormHandles )
? _HMG_aFormNames[ i ]
Next

 цитата:
и чтобы можно было отловить которые из них HIDE.
И где про сию функцию посмотреть/почитать.


h_window.pg Скрытый текст



Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 34
Зарегистрирован: 20.10.15
ссылка на сообщение  Отправлено: 20.05.18 10:50. Заголовок: Пасибки! И в каких ..


Пасибки! И в каких книжках все все это находят?


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1822
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.05.18 11:42. Заголовок: mshep пишет И в каки..


mshep пишет
 цитата:
И в каких книжках все все это находят?


В исходниках.
Список функций по файлам MiniGui\UTILS\FuncList, собираете, смотрите, изучаете.
Include\i_*.ch там все команды, к примеру i_window.ch
 
#xcommand DEFINE WINDOW <w> ;
...
[ <helpbutton: HELPBUTTON> ] ;
=> ;
...
_DefineWindow (
<"w">, <title>,...)
...
ищем _DefineWindow она в h_window.prg, смотрим ее и в самом конце видим
Скрытый текст

это системные переменные hmg для окна.
Так же поступаете с контролами файл i_<контрол>.ch -> h_<контрол>.prg
в нем переменные hmg для контролов.
Словом смотрим исходники.
В примерах ищем Farом, как предлагалось выше


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 1823
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 20.05.18 12:00. Заголовок: PS см. MiniGui\D..


PS
см. MiniGui\Doc
MiniGui.chm
...

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 16
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет