Grid pb.......

rubix2 Messages postés 22 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 27 août 2007 - 1 mars 2006 à 12:31
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 - 3 mars 2006 à 12:28
bonjour,

Comment fait-on pour noircir une ligne complète d'une grille lorsque la propriété RecordMark est à T et que l'on clique dessus(début de ligne) ??
quel évenement cela declenche t-il ? J'aimerais ouvrir un form sur le click de la RecordMarck de ma grid,

Merci

rubix2

3 réponses

Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
2 mars 2006 à 12:10
Quelle version de VFP utilise tu? Dans VFP9 il y a la propriéte Highlight = .t.

Mike Gagnon
0
rubix2 Messages postés 22 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 27 août 2007
3 mars 2006 à 11:06
VFP6
0
Mike Gagnon Messages postés 381 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 24 octobre 2013 2
3 mars 2006 à 12:28
Je crois que cette example fonctionne en VFP6. (Je n<ai plus VFP6 pour tester). Copie ce qui suit dans un prg et roule.



PUBLIC
oform1



oform1=NEWOBJECT("form1")

oform1.Show

RETURN





**************************************************



DEFINE
CLASS form1 AS form

Top = 0

Left = 0

Height = 323

Width
= 337

DoCreate = .T.

ShowTips = .T.

Caption = " Grid with
Tooltip"

browser = .NULL.

columnbold = ""

nrow = 0

ncol
= 0

ncol2 = 0

nrow2 = 0

nrec = 0

ctooltip =
""

lEditMode = .T.

Name = "Form1"



ADD OBJECT grid1 AS grid
WITH ;

ColumnCount 3, HeaderHeight 35, ;

Left 0, Top
0, ;

Height 323, Width 318, ;

Panel 1, RowHeight 24,
;

RecordSource = "test_data", ;

TabIndex = 11, ;

Name
= "Grid1", ;

Column1.ControlSource = "test_data.usercode",
;

Column1.Width = 59, ;

Column1.Visible = .T.,
;

Column1.Name = "Column1", ;

Column2.ControlSource =
"test_data.prod_code", ;

Column2.Width = 87, ;

Column2.Visible
= .T., ;

Column2.Name = "Column2", ;

Column3.ControlSource =
"test_data.prod_name", ;

Column3.Width = 126, ;

Column3.Name =
"Column3"



PROCEDURE Resize

This.grid1.Height =
This.Height

This.grid1.Width =
This.Width

ENDPROC



PROCEDURE Unload

Close databases
all

Wait clear

ENDPROC



PROCEDURE
Init



ENDPROC



PROCEDURE Load

Create cursor Test_Data
;

(UserCode C(3), UserName C(15), Prod_Code C(3), Prod_Name C(15),
Prod_Info C(15))

Insert into Test_Data Values ;

('001', 'My
Name', '001', 'Product #1', 'InfoTip #1')

Insert into Test_Data Values
;

('002', 'Your Name', '002', 'Product #2', 'InfoTip
#2')

Insert into Test_Data Values ;

('003', 'His Name',
'003', 'Product #3', 'InfoTip #3')

Insert into Test_Data Values
;

('004', 'Her Name', '004', 'Product #4', 'InfoTip
#4')

Insert into Test_Data Values ;

('005', 'Whatever',
'005', 'Product #5', 'InfoTip #5')

Insert into Test_Data Values
;

('006', 'Blah!', '006', 'Product #6', 'InfoTip #6')

Go
top

ENDPROC





PROCEDURE grid1.Init

With
This

.Column1.Header1.Caption =
"User"

.Column2.Header1.Caption = "Product
Code"

.Column3.Header1.Caption = "Product
Name"

.Column1.RemoveObject('Text1')

.Column2.RemoveObject('Text1')

.Column3.RemoveObject('Text1')

.Column1.AddObject('Text1',
'GridText')

.Column2.AddObject('Text1',
'GridText')

.Column3.AddObject('Text1',
'GridText')



.SetAll('Alignment', 2,
'Header')

.SetAll('DynamicBackColor',
;

'iif(ThisForm.nRec == recno(), RGB(0,0,160), ' +
;

'This.BackColor)',
'Column')

.SetAll('DynamicForeColor',
;

'iif(ThisForm.nRec == recno(), RGB(255,255,0), ' +
;

'This.ForeColor)',
'Column')

EndWith

ThisForm.Height =
This.Height

ThisForm.Width =
This.Width

ENDPROC



PROCEDURE grid1.MouseMove

LPARAMETERS
nButton, nShift, nXCoord, nYCoord

Local lnWhere, lnRelRow, lnRelCol,
lnX, lcColumn

Store 0 to lnWhere, lnRelRow,
lnRelCol



This.GridHitTest(nXCoord, nYCoord, @lnWhere, @lnRelRow,
@lnRelCol)

With ThisForm

If
.lEditMode

This.ToolTipText = ''

If ((lnRelRow !=
.nrow) or (lnRelCol != .ncol) or ;

empty(.ctooltip)) and
(lnWhere == 3) and ;

between(lnRelCol, 1,
This.ColumnCount)



.nrow = lnRelRow

.ncol
= lnRelCol

.LockScreen =
.T.

This.ActivateCell(lnRelRow, lnRelCol)

Go
recno()

.nrec = recno()

Do
case

Case (lnRelCol == 1)

.ctooltip
= ' ' + alltrim(UserName) + ' '

Case
between(lnRelCol, 2, 3)

.ctooltip
= ' ' + alltrim(Prod_Info) + ' '

EndCase

This.Columns[lnRelCol].Text1.ToolTipText
= .ctooltip

This.Refresh()

.LockScreen =
.F.

NoDefault

endif

else

If
((lnRelRow != .nrow2) or (lnRelCol != .ncol2)) and ;

(lnWhere
= 3) and between(lnRelCol, 1, This.ColumnCount)



.nrow2 =
lnRelRow

.ncol2 = lnRelCol

lnRec =
recno()

.LockScreen =
.T.

This.ActivateCell(lnRelRow, lnRelCol)

Go
recno()

.nrec =
recno()

This.ActivateCell(.nrow,
.ncol)

This.Refresh()

.LockScreen =
.F.

NoDefault

endif



endif

EndWith

ENDPROC



PROCEDURE
grid1.Column1.MouseMove

LPARAMETERS nButton, nShift, nXCoord,
nYCoord

This.Parent.MouseMove(nButton, nShift, nXCoord,
nYCoord)

ENDPROC



PROCEDURE
grid1.Column2.MouseMove

LPARAMETERS nButton, nShift, nXCoord,
nYCoord

This.Parent.MouseMove(nButton, nShift, nXCoord,
nYCoord)

ENDPROC



PROCEDURE
grid1.Column3.MouseMove

LPARAMETERS nButton, nShift, nXCoord,
nYCoord

This.Parent.MouseMove(nButton, nShift, nXCoord,
nYCoord)

ENDPROC

ENDDEFINE



**************************************************



DEFINE
CLASS GridText AS textbox

Height = 23

Width = 100

Name =
"Text"

Visible = .T.

BorderStyle = 1

Margin =
2



PROCEDURE Click

With ThisForm

If
.lEditMode

Keyboard '{Home}' clear

.lEditMode =
.F.

else

.nrow = .nrow2

.ncol =
.ncol2

endif

.nrec =
recno()

EndWith

ENDPROC



PROCEDURE
MouseMove

LPARAMETERS nButton, nShift, nXCoord,
nYCoord

This.Parent.MouseMove(nButton, nShift, nXCoord,
nYCoord)

ENDPROC



PROCEDURE KeyPress

LPARAMETERS nKeyCode,
nShiftAltCtrl

ThisForm.lEditMode =
.F.

ENDPROC



PROCEDURE LostFocus

If inlist(lastkey(), 5,
9, 13, 15, 24, 27)

ThisForm.lEditMode =
.T.

endif

ENDPROC

ENDDEFINE






Mike Gagnon
0
Rejoignez-nous