Указывает активный элемент управления данного объекта. Недоступно на этапе разработки, доступно только для чтения на этапе выполнения.
Object.ActiveControl.Property[ = Value] |
Возврашаемое Значение
- Property
- Свойство, значение которого следует возвратить или установить.
- Value
- Текущее или новое значение свойства.
Комментарии
Применимо для: Container Object | Form Object | Page Object | _SCREEN | ToolBar Object
Данное свойство недоступно, если все элементы управления указанного объекта невидимы или недоступны.
Если объект активен, свойство ActiveControl указывает элемент управления, который в данный момент находится в фокусе. Если объект не активен, возникает ошибка.
Пример
В следующем примере демонстрируется использование свойство ActiveControl, чтобы показать, на каком элементе Формы находиться фокус. Однако, так как элемент управления Grid является контейнером, требуется дополнительный код, чтобы определить текущий активный элемент управления в сетке.
Копировать Код | |
|---|---|
m.cTalk=SET("TALK")
SET TALK OFF
PUBLIC oTlb
oTlb = NEWOBJECT("tlbDemo")
oTlb.SHOW
PUBLIC oFrmDemo
oFrmDemo=NEWOBJECT("frmDemo")
oFrmDemo.SHOW
READ EVENTS
RELEASE oTlb
RELEASE oFrmDemo
SET TALK &cTalk
RETURN
DEFINE CLASS tlbDemo AS TOOLBAR
HEIGHT = 31
LEFT = 30
TOP = 30
WIDTH = 149
NAME = "tlbDemo"
CONTROLBOX = .F.
ADD OBJECT cmdShowControl AS COMMANDBUTTON WITH ;
TOP = 5, ;
LEFT = 5, ;
HEIGHT = 22, ;
WIDTH = 100, ;
CAPTION = "ActiveControl?", ;
NAME = "cmdShowControl"
ADD OBJECT sepSeparator1 AS SEPARATOR WITH ;
TOP = 5, ;
LEFT = 80, ;
HEIGHT = 0, ;
WIDTH = 0, ;
NAME = "sepSeparator1"
ADD OBJECT cmdExit AS COMMANDBUTTON WITH ;
TOP = 5, ;
LEFT = 80, ;
HEIGHT = 22, ;
WIDTH = 34, ;
CAPTION = "Exit", ;
NAME = "cmdExit"
PROCEDURE cmdShowControl.CLICK
DO ShowControl
ENDPROC
PROCEDURE cmdExit.CLICK
CLEAR EVENTS
ENDPROC
ENDDEFINE
DEFINE CLASS frmDemo AS FORM
DOCREATE = .T.
CAPTION = "Demo Form"
NAME = "frmDemo"
LEFT = 60
TOP = 100
ADD OBJECT cmdClose AS COMMANDBUTTON WITH ;
TOP = 200, ;
LEFT = 264, ;
HEIGHT = 27, ;
WIDTH = 84, ;
CANCEL = .T., ;
CAPTION = "Close", ;
DEFAULT = .T., ;
TABINDEX = 4, ;
NAME = "cmdClose"
ADD OBJECT grdNames AS GRID WITH ;
COLUMNCOUNT = 2, ;
DELETEMARK = .F., ;
HEIGHT = 128, ;
LEFT = 12, ;
PANEL = 1, ;
RECORDSOURCE = "names", ;
SPLITBAR = .F., ;
TABINDEX = 3, ;
TOP = 48, ;
WIDTH = 344, ;
NAME = "grdNames", ;
Column1.CONTROLSOURCE = "names.cname", ;
Column1.WIDTH = 222, ;
Column1.NAME = "Column1", ;
Column2.CONTROLSOURCE = "names.nvalue", ;
Column2.NAME = "Column2"
ADD OBJECT txtName AS TEXTBOX WITH ;
CONTROLSOURCE = "names.cname", ;
HEIGHT = 24, ;
LEFT = 56, ;
TABINDEX = 2, ;
TOP = 12, ;
WIDTH = 125, ;
NAME = "txtName"
ADD OBJECT lblNameLabel AS LABEL WITH ;
CAPTION = "Name:", ;
HEIGHT = 17, ;
LEFT = 16, ;
TOP = 16, ;
WIDTH = 40, ;
TABINDEX = 1, ;
NAME = "lblNameLabel"
PROCEDURE LOAD
CREATE CURSOR names (cname C(40), nvalue N(19,2))
INSERT INTO names VALUES('Thomas',12.5)
INSERT INTO names VALUES('Jerry',18.2)
INSERT INTO names VALUES('Andrew',9.2)
GO TOP
ENDPROC
PROCEDURE INIT
THIS.grdNames.Column1.Header1.CAPTION = "Name"
WITH THIS.grdNames.Column1.Text1
.BORDERSTYLE = 0
.MARGIN = 0
ENDWITH
THIS.grdNames.Column2.Header1.CAPTION = "Value"
WITH THIS.grdNames.Column2.Text1
.BORDERSTYLE = 0
.MARGIN = 0
ENDWITH
ENDPROC
PROCEDURE cmdClose.CLICK
THISFORM.RELEASE
ENDPROC
PROCEDURE grdNames.AFTERROWCOLCHANGE
LPARAMETERS nColIndex
THISFORM.REFRESH
ENDPROC
PROCEDURE txtName.VALID
THISFORM.grdnames.REFRESH
ENDPROC
ENDDEFINE
PROCEDURE ShowControl
IF TYPE("_Screen.ActiveForm.ActiveControl")=="O"
LOCAL loActiveControl
m.loActiveControl = _SCREEN.ACTIVEFORM.ACTIVECONTROL
IF m.loActiveControl.BASECLASS = "Grid"
m.loActiveControl = ;
EVALUATE("m.loActiveControl.Columns(m.loActiveControl.ActiveColumn)." + ;
m.loActiveControl.COLUMNS(m.loActiveControl.ACTIVECOLUMN).CURRENTCONTROL)
ENDIF
m.cObjHierarchy=UPPER(SYS(1272,m.loActiveControl))
WAIT WINDOW AT 4,30 "_SCREEN.ActiveForm.ActiveControl = "+m.cObjHierarchy NOWAIT
ELSE
WAIT WINDOW AT 4,30 "There is no ActiveControl; there is no ActiveForm" NOWAIT
ENDIF
ENDPROC | |
См. Также
Прочие Ресурсы
Перевод выполнен VF