Страница 1 из 1
					
				check и prop:Use в динамике
				Добавлено: 26 Февраль 2013, 12:03
				 kreator
				Создаю контролы на окне в динамике. Напоролся на проблемы. 
Ну, например, контрол CHECK - 
Код: Выделить всё
create(i#,CREATE:check)
i#{prop:Text} = clip(Q.FQName)
i#{prop:TrueValue} = '1' 
i#{prop:FalseValue} = '0'
i#{prop:Use} = '1' 
unhide(i#)
И по prop:Use я не могу ни присвоить значение ни получить его назад. Prop:Checked работает, но как задать изначально, что Checked?
 
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 26 Февраль 2013, 12:17
				 Admin
				kreator писал(а):И по prop:Use я не могу ни присвоить значение ни получить его назад. Prop:Checked работает, но как задать изначально, что Checked?
А что мешает сделать так?
Код: Выделить всё
loc:checkbox byte
  CODE
  ...
  i#{PROP:Use} = loc:checkbox
  loc:checkbox = 1
 
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 26 Февраль 2013, 14:27
				 kreator
				Предполагал использовать неопределённое число контролов, создавать всё в динамике, а информацию о них получать из некоей Queue. Элемент Queue не получится ведь использовать в prop:Use? Если только массив?
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 16 Апрель 2013, 16:37
				 Dark_Stranger
				Вот энто мона попробывать
ByteRef &BYTE
CODE
.....
ByteRef &= NEW(BYTE)
RQ:Index3{PROP:USE} = ByteRef
CHANGE(RQ:Index3, True)
Тока потом наверна еще Dispose нуна делать будет
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 17 Апрель 2013, 9:39
				 kreator
				То же самое, что и предлагал уважаемый админ. Попробуйте десять контролов создать по Вашему способу. Пока я решил использовать массив, типа того:
Код: Выделить всё
i#{prop:Use} = LOC:Check[j#]
LOC:Check[j#] = Q.FQValue1
где j# - некая переменная цикла.
Если появится идея, буду благодарен.
 
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 17 Апрель 2013, 11:08
				 Andrew™
				
Код: Выделить всё
 PROGRAM
 MAP
  Main
 END
 CODE
 Main
MAIN PROCEDURE
Window WINDOW('Caption'),AT(,,218,212),FONT('Verdana',8,,FONT:regular,CHARSET:CYRILLIC),CENTER,SYSTEM, |
         GRAY
       LIST,AT(5,9,103,166),USE(?List),VSCROLL,FORMAT('41C|M~Control~@n14_@20C|M~Checked~@n14_@')
     END
QwClass   QUEUE,TYPE
Control   SIGNED
val       BYTE
field     &BYTE
 END
wClass    CLASS
W         &Window
Control   SIGNED
Q         &QwClass
Construct PROCEDURE()
Destruct  PROCEDURE(),VIRTUAL
Init      PROCEDURE(Window W,SIGNED Control)
NewCheck  PROCEDURE()
Events    PROCEDURE()
 END
 CODE
 OPEN(Window)
 wClass.Init(Window,?List)
 LOOP 10 TIMES
  wClass.NewCheck
 END
 ACCEPT
  wClass.Events()
 END
wClass.Construct PROCEDURE
 CODE
 SELF.Q &= NEW QwClass
wClass.Destruct PROCEDURE
I LONG
 CODE
 LOOP I = 1 TO RECORDS(SELF.Q)
  GET(SELF.Q,I)
  DISPOSE(SELF.Q.Field)
 END
 DISPOSE(SELF.Q)
wClass.Init PROCEDURE(Window W,SIGNED Control)
 CODE
 SELF.W &= W
 SELf.Control = Control
 W $ Control{PROP:From} = SELF.Q
wClass.NewCheck PROCEDURE
tmp SIGNED
 CODE
 CLEAR(SELF.Q)
 SELF.Q.Field &= NEW BYTE
 SELF.Q.Control = CREATE(0,CREATE:CHECK)
 ADD(SELF.Q)
 SELF.W $ SELF.Q.Control{PROP:Use} = SELF.Q.Field
 SELF.W $ SELF.Q.Control{PROP:Text} = 'Check ' & RECORDS(SELF.Q)
 SELF.W $ SELF.Q.Control{PROP:Xpos} = SELF.W $ SELF.Control{PROP:Xpos} + SELF.W $ SELF.Control{PROP:Width} + 10
 SELF.W $ SELF.Q.Control{PROP:Ypos} = SELF.W $ SELF.Control{PROP:Ypos} + RECORDS(SELF.Q) * 10
 SELF.W $ SELF.Q.Control{PROP:Hide} = False
wClass.Events PROCEDURE
 CODE
 CASE EVENT()
  OF EVENT:Accepted
   SELF.Q.Control = FIELD()
   GET(SELF.Q,SELF.Q.Control)
   IF NOT ERRORCODE()
    SELF.Q.val = SELF.Q.Field
    PUT(SELF.Q)
   END
 END
 
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 17 Апрель 2013, 12:59
				 kreator
				Мне надо так:
Код: Выделить всё
SELF.W $ SELF.Q.Control{PROP:Use} = SELF.Q.Field
SELF.Q.Field = 1
И контрол должен быть CHECKED.
 
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 17 Апрель 2013, 15:12
				 Дед Пахом
				я не пойму, CHANGE(SELF.Q.Control, SELF.Q.Field) не работает, что ли?
			 
			
					
				Re: check и prop:Use в динамике
				Добавлено: 17 Апрель 2013, 17:39
				 kreator
				Change почему-то не работает. Использую Change для изменения стринговых полей, здесь всё хорошо. Check не идёт. Мне кажется дело в prop:Use. Ссылка на элемент массива работает как надо, ссылка на элемент очереди не идёт.