>PUBLIC oform1 >ACTIVATE WINDOW "debug output" > >oform1=NEWOBJECT("form1") >oform1.Show >RETURN > >DEFINE CLASS form1 AS form > > DoCreate = .T. > Caption = "Form1" > Name = "Form1" > DESKTOP = .T. > > ADD OBJECT line1 AS lineex WITH ; > ANCHOR = 15,; > BorderWidth = 3, ; > Height = THISFORM.height - 4, ; > Left = 4, ; > Top = 4, ; > Width = THISFORM.Width - 4, ; > Name = "Line1" >ENDDEFINE > >DEFINE CLASS lineex as Line > > * this is a my wish routine for every visual baseclass, but VFPT ...... > PROCEDURE ObjectHitTest(nXCoord,nYCoord) > IF BETWEEN(m.nXCoord-OBJTOCLIENT(m.This,OBJTOCLIENT_LEFT) ,0,OBJTOCLIENT(m.This,OBJTOCLIENT_WIDTH) -1); > AND BETWEEN(m.nYCoord-OBJTOCLIENT(m.This,OBJTOCLIENT_TOP) ,0,OBJTOCLIENT(m.This,OBJTOCLIENT_HEIGHT)-1) > * check line > * problem : Line is transparent !!!! > * > IF thisform.Point(m.nXCoord, m.nYCoord)=m.This.BorderColor > RETURN 1 > ENDIF > ENDIF > * none > RETURN 0 > > * the ObjectHitTest way > PROCEDURE MouseMove > PARAMETERS nButton, nShift, nXCoord, nYCoord > *!* Is mouse directly over the line? > *!* if so, color it red > IF this.ObjectHitTest(nXCoord, nYCoord) > this.BorderColor = RGB(255,0,0) > ELSE > this.BorderColor = RGB(0,0,0) > ENDIF > IF thisform.Point(m.nXCoord, m.nYCoord)=0 > DEBUGOUT m.nXCoord, m.nYCoord > ENDIF > ENDPROC > > * your code > PROCEDURE MouseMove > PARAMETERS nButton, nShift, nXCoord, nYCoord > LOCAL lnFullX, lnFullY, lnCurrentX > lnFullX = this.Width > lnFullY = this.height > lnCurrentXPercentage = (nXCoord - this.Left)/lnFullX > > IF This.LineSlant = "/" > lnCurrentXPercentage = (1 - lnCurrentXPercentage) > ENDIF > *!* Is mouse directly over the line? > *!* if so, color it red > lineDetect= BETWEEN((nYCoord - this.Top) / lnCurrentXPercentage, lnFullY - this.BorderWidth, lnFullY + this.BorderWidth) > DO CASE > CASE lineDetect AND Thisform.Point(m.nXCoord, m.nYCoord)#0 > DEBUGOUT "FALSE POSITIVE",m.nXCoord, m.nYCoord > CASE !lineDetect AND Thisform.Point(m.nXCoord, m.nYCoord)=0 > DEBUGOUT "FALSE NEGATIVE",m.nXCoord, m.nYCoord > ENDCASE > > ENDPROC > >ENDDEFINE >