*-------------------------------------------------------------------------------------------------------------------------------------------------------- * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! *-------------------------------------------------------------------------------------------------------------------------------------------------------- *< FOXBIN2PRG: Version="1.21" SourceFile="xresize.vcx" CPID="1254" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) * * DEFINE CLASS xresize AS custom *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> * *m: addmember *m: rearrange && Put it into form's resize event. *p: auto && Auto decise which controls resize,move... *p: fheight && form's init height *p: fwidth && form's init width *p: has && Internal use. *p: limit && Resize and move limit for controls. *a: cntlist[1,8] && Internal use * PROTECTED cntlist,fheight,fwidth,has * Height = 19 limit = 30 Name = "xresize" Width = 22 * PROTECTED PROCEDURE addmember xytag=UPPER(xycont.tag) IF this.auto AND EMPTY(xytag) IF INLIST(xycont.baseclass,"Grid","Editbox",; "Listbox","Image","Pageframe") xytag="RESIZABLE" ELSE xytag="MOVABLE" ENDIF ENDIF IF ! ("RESIZABLE"$m.xytag OR "MOVABLE"$m.xytag) RETURN ENDIF this.has=.t. this.fheight=thisform.Height this.fwidth=thisform.Width i=m.i+1 DIMENSION this.cntlist(m.i,12) this.cntlist(m.i,1)=xycont this.cntlist(m.i,2)=xycont.left this.cntlist(m.i,3)=xycont.top this.cntlist(m.i,4)=xycont.height this.cntlist(m.i,5)=xycont.width this.cntlist(m.i,6)="RESIZABLE"$m.xytag this.cntlist(m.i,7)="NOVERTICAL_RESIZE"$m.xytag this.cntlist(m.i,8)="NOHORIZONTAL_RESIZE"$m.xytag this.cntlist(m.i,9)="MOVABLE"$m.xytag this.cntlist(m.i,10)="NOVERTICAL_MOVE"$m.xytag this.cntlist(m.i,11)="NOHORIZONTAL_MOVE"$m.xytag this.cntlist(m.i,12)="VERTICAL_GROUP"$m.xytag ENDPROC PROCEDURE Init *this class is free *Author : Metin Emre *e-mail : metinemre@hotmail.com PRIVATE i,xycont,xytag,xycont2 i=0 FOR EACH cnt IN thisform.Controls xycont=cnt this.addmember IF xycont.baseclass="Pageframe" FOR EACH xycont2 IN cnt.pages FOR EACH xycont IN xycont2.controls this.addmember NEXT NEXT ENDIF NEXT ENDPROC PROCEDURE rearrange && Put it into form's resize event. IF !this.has RETURN ENDIF LOCAL alen,i,xycont,new alen=ALEN(this.cntlist,1) FOR i=1 TO m.alen xycont=this.cntlist(m.i,1) IF this.cntlist(m.i,6) &&--- resizable --- new=thisform.height-(this.fheight - this.cntlist(m.i,4)) IF !this.cntlist(m.i,7) AND m.new>this.limit xycont.height=m.new ENDIF new=thisform.width-(this.fwidth -this.cntlist(m.i,5)) IF !this.cntlist(m.i,8) AND m.new>this.limit xycont.width=m.new ENDIF ENDIF IF this.cntlist(m.i,9) &&--- movable --- new=thisform.height-(this.fheight-this.cntlist(m.i,3)) IF !this.cntlist(m.i,10) AND m.new>this.limit xycont.top=m.new ENDIF new=thisform.width-(this.fwidth-this.cntlist(m.i,2)) *new=this.cntlist(m.i,2)+(thisform.width-this.fwidth)/2 IF !this.cntlist(m.i,11) AND m.new>this.limit xycont.left=m.new ENDIF ENDIF NEXT ENDPROC ENDDEFINE