Ну, например, контрол 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#)
Модератор: Дед Пахом
Код: Выделить всё
create(i#,CREATE:check)
i#{prop:Text} = clip(Q.FQName)
i#{prop:TrueValue} = '1' 
i#{prop:FalseValue} = '0'
i#{prop:Use} = '1' 
unhide(i#)
А что мешает сделать так?kreator писал(а):И по prop:Use я не могу ни присвоить значение ни получить его назад. Prop:Checked работает, но как задать изначально, что Checked?
Код: Выделить всё
loc:checkbox byte
  CODE
  ...
  i#{PROP:Use} = loc:checkbox
  loc:checkbox = 1
Код: Выделить всё
i#{prop:Use} = LOC:Check[j#]
LOC:Check[j#] = Q.FQValue1
Код: Выделить всё
 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
Код: Выделить всё
SELF.W $ SELF.Q.Control{PROP:Use} = SELF.Q.Field
SELF.Q.Field = 1