serial CacheObjectSpyCNTs Default %Library.TMFormClass 59242,41559 59242,41559 %TMBevel %TMButton %TMButton %TMButton %Library.Boolean 0 %Library.Boolean 0 %Library.Boolean 0 %Library.String %Library.String %Library.TMForm %TMMenuItem %TMMenuItem %TMMenuItem %TMMenuItem %TMMenuItem %TMPanel %TMPanel %TMPanel %TMPanel %Library.Boolean 0 %TMShape %TMShape %TMShape %TMShape %TMShape %TMShape %TMShape %Library.String 1 %Library.String 0 %TMMenuItem %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMLabel %TMMenuItem %TMMenuItem %TMMenuItem %TMMenuItem %TMMenuItem %TMMenuItem %TMMainMenu %TMProgressBar %TMPanel %TMScrollBox %TMShape initvalue:%String cache 0 %Status document literal Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal cache 0 document literal cache 0 document literal Value:%Library.String cache 0 %Library.Status document literal Value:%Library.RegisteredObject cache 0 %Library.Status document literal Msg:%Library.String cache 0 document literal Show:%Library.Boolean=1 cache 0 document literal ClassName:%Library.String cache 0 document literal initvalue:%String cache 0 MApplication document literal ORef:%Library.String,Reload:%Library.Boolean=0 cache 0 %Library.Boolean document literal initvalue:%String cache 0 %Library.Status document literal Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal ClassName:%Library.String cache 0 %Library.Boolean document literal ClassName:%Library.String cache 0 %Library.Boolean document literal MaxLabelWidth) MaxLabelWidth=LabelWidth Set PropCnt=AllowedPropCnt Set ..aProperties=PropCnt If PropCnt=0 Do Quit 1 . Set ..PropertiesLoaded=1 . Do ..FShowMsgBar(0) . Do MApplication.MessageBox("De klasse '"_ClassName_"' bevat enkel private properties.",..Form.Caption,$$$MBICONINFORMATION) Set CDef="" ; --- INIT --- Set MApplication.ScreenCursor=$$$crHourGlass Set ..sbProperties.Visible="False" ;Interface opbouwen naargelang array New IntLoop Set IntLoop=1 ;Voor interface... For PropLoop=1:1:PropCnt Do . Set ..pbProgress.Position=(PropLoop*100)\PropCnt . Do ..FSetMsg("Building property "_PropLoop_"/"_PropCnt_"...") . Set IntLoop=IntLoop+1 . ;PROPERTY LABEL . Do CreateLabel(PropLoop,IntLoop) . ;PROPERTY EDIT . Do CreateEdit(PropLoop,IntLoop,MaxLabelWidth) ; --- EXIT --- Set MApplication.ScreenCursor=$$$crDefault Set ..sbProperties.Visible="True" Set ..PropertiesLoaded=1 Do ..FShowMsgBar(0) Quit 1 ;============================================================================== CreateLabel(PropNr,IntNr) New Label Set Label=##class(%TMLabel).%New($LB(%this.sbProperties.Address,0)) If IntNr#2=0 Set Label.Left=25 Else Set Label.Left=500 Set Label.Top=((IntNr-(IntNr#2))*12) Set Label.Caption=..aProperties(PropNr,$$$propName)_":" Set Label.Tag=PropLoop ;Koppeling naar array... Set Label.Enabled="False" If (..aProperties(PropNr,$$$propCollection)'="") || (..aProperties(PropNr,$$$propDatatype)=0) Do . Set Label.Font.Style=$LB("fsUnderline") . Set Label.Font.Color=$$$clNavy . Set Label.Cursor=$$$crHandPoint . Set Label.ShowHint="True" . Set Label.OnClick=$LB(%this,"OnLabelClick") . If ..aProperties(PropNr,$$$propCollection)="" Do //Single value .. Set Label.Hint="Single value: "_..aProperties(PropNr,$$$propType) . Else Do .. Set Label.Hint=..aProperties(PropNr,$$$propCollection)_": "_..aProperties(PropNr,$$$propType) If ..aProperties(PropNr,$$$propMultiDimensional) Do . Set Label.Font.Style=$LB("fsUnderline") . Set Label.Font.Color=$$$clMaroon . Set Label.Cursor=$$$crHandPoint . Set Label.OnClick=$LB(%this,"OnLabelMDClick") Set ..aProperties(PropNr,$$$propObjLabel)=Label Quit ;============================================================================== CreateEdit(PropNr,IntNr,MaxLabelWidth) New Edit ;COMBO (with value items) If (..aProperties(PropNr,$$$propValueList)'="") && (..aProperties(PropNr,$$$propCollection)="") Do . Set Edit=##class(UI.Lib.Ctrl.TDAComboBox).%New($LB(%this.sbProperties.Address,0)) . Set Edit.DisplayList=..aProperties(PropNr,$$$propDisplayList) . Set Edit.ValueList=..aProperties(PropNr,$$$propValueList) ;EDIT Else Do . Set Edit=##class(UI.Lib.Ctrl.TDAEdit).%New($LB(%this.sbProperties.Address,0)) . Set Edit.MinLen=..aProperties(PropNr,$$$propMinLen) . Set Edit.MaxLen=..aProperties(PropNr,$$$propMaxLen) . Set Edit.Scale=..aProperties(PropNr,$$$propScale) . Set Edit.Pattern=..aProperties(PropNr,$$$propPattern) If (..aProperties(PropNr,$$$propCollection)'="") || (..aProperties(PropNr,$$$propDatatype)=0) Do . Set Edit.ReadOnly="True" . Set Edit.BaseColor=15461355 . Set Edit.BaseFontColor=$$$clGray . Set Edit.ShowHint="True" . Set Edit.Hint="This field shows the object reference, click on the label for further details." . ;Set Edit.DragMode="dmAutomatic" . ;Set Edit.Cursor=$$$crHandPoint . ;Set Edit.OnStartDrag=$LB(%this,"dCOMPEVENTStartDrag") . ;Set Edit.OnEndDrag=$LB(%this,"dCOMPEVENTEndDrag") . ;Set Edit.OnDragOver=$LB(%this,"dCOMPEVENTDragOver") . ;Set Edit.OnDragDrop=$LB(%this,"dCOMPEVENTDragDrop") If ..aProperties(PropNr,$$$propCollection)="" Do ;Single Value . Set tmpType=..aProperties(PropNr,$$$propType) . If tmpType["Integer" Set Edit.AllowedCharSet="csInteger" . If tmpType["Float" Set Edit.AllowedCharSet="csFloat" If ..aProperties(PropNr,$$$propMultiDimensional) Do . Set Edit.Text="(MultiDimensional)" Else Do . Set Edit.CoupledProperty=..aProperties(PropNr,$$$propName) If IntNr#2=0 Set Edit.Left=70+MaxLabelWidth Else Set Edit.Left=520+MaxLabelWidth Set Edit.Top=((IntNr-(IntNr#2))*12)-4 Set Edit.Width=250 Set Edit.Tag=PropNr Set Edit.Enabled="False" Set Edit.FCoupledORef=0 Set Edit.OnMessage=$LB(%this,"OnMessage") Set Edit.OnEnter=$LB(%this,"OnEditEnter") Set Edit.OnExit=$LB(%this,"OnEditExit") Set ..aProperties(PropNr,$$$propObjEdit)=Edit Quit ]]> cache 0 %Library.Boolean document literal ORef:%Library.String cache 0 %Library.Boolean document literal cache 0 %Library.Boolean document literal Args:%String cache 0 document literal Args:%String cache 0 document literal Args:%String cache 0 document literal cache 0 %Library.Boolean document literal cache 0 %Library.Boolean document literal STRING Caché Object Spy v5 %Library.CacheSerialState "%Library.TMFormClass" Address Form CurrentORef FCurrentORef FCurrentClass pnlBottom pnlTop btnChooseID lblClass lblClassName MainMenu1 MenuItem1 MenuItem2 MenuItem3 MenuItem4 MenuItem5 MenuItem6 MenuItem7 MenuItem8 Bevel1 Panel1 Shape1 Bevel2 Label1 Label2 Label3 Label4 Label5 Label6 lblHDRClassName lblHDRId lblHDRReference lblId lblReference FCurrentClassName ScrollBox1 sbProperties PropertiesLoaded Button1 pnlMsg lblMsg Button2 dlgErrorList Button3 ProgressBar1 pbProgress Shape2 Shape3 Shape4 Panel2 Panel3 Shape5 Shape6 Shape7 lblHDRPropClassName lblHDRProperty lblHDRType lblPropClassName lblProperty lblType lblCollection lblHDRCollection lblHDRPropId lblPropId Panel4 Shape8 Shape9 CheckBox1 CheckBox2 CheckBox3 chkPersistent chkRequired chkTransient Shape10 hmiObject miNew miOpen miViaId miViaORef mmMain miLoadORefs shObjId miSave ClassIsDatatype ClassIsPersistent ClassIsSystem