Går det att ändra backcolor och eller forecolor i MSFlexGrid beroende på innehållet i cellen? Ligger ett exempel på filarean som gör precis det där. Tack jag skall titta på det (och se om jag förstå det) Nja det ville sig inte rigtigt. Jag förstår nog inte hur jag skall få in det i min applikation. Det finns säkert andra metoder som ändrar färg. Finns inte backcolor Jo det har ju ingen betydelse. Men om du tittar i koden eller testkör det programmet du kollar på Jag har lusläst koden bak och fram, men antagligen är jag blind eller för dum för jag fattar inte hur jag skall få in det i min kod. Testa med att placera ifsatsen efter det att du lagt till posten: Tack för ditt försök men det gick åt skogen.Ändra backcolor/forecolor dynamiskt i MSFlexGrid(LOST)
Jag skulle vilja ha det så att om:
mittRs1("sPlacSv")=1 Then
Då ville jag ha backcolor till röd och ev texten till vit
Går detta att göra?Sv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
http://www.pellesoft.nu/login/upload/t_view4.asp?tid=98
/EmmaSv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
Sv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
Jag har iallafall lekt så här:
sTitel = mittRS2.Fields(1)
sDatum = mittRS2.Fields(2)
sPlacSv = mittRS2.Fields(3)
sPlacEu = mittRS2.Fields(4)
For i = 1 To 5
Select Case i
Case 1
MSFlexGrid1.CellForeColor = vbRed
Case 2
MSFlexGrid1.CellForeColor = vbGreen
Case 3
MSFlexGrid1.CellForeColor = vbBlue
Case Else
MSFlexGrid1.CellForeColor = vbBlack
End Select
Next
Och detta mina vänner, går ju käpprakt åt h...
Vad som händer är att det blir TITLEN som får en annan färg, inte den cell jag skulle vilja ha.
Dessutom så antar jag att man borde bygga om en array av någon typ, för att spara och gämmföra..
Vad tror ni??Sv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
där också?
/EmmaSv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
Mitt problem ser ut så här:
I MSFlexGrid så läser jag in ifrån en databas en massa resultat, beroende på låttitel och datum. Det jag vill är, att om en viss titel har en 1:a så skall cellen förändras på något sätt. Bacoloroch forcolor fore kanontrevligt.
Det närmast jag har kommet är att jag har kunnat byta färg på titlen(som står längst till vänster) men det som är intressant är att förändra cellen. Det kan ju vara flera datum som den titlen har no 1.Sv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
kommer du att se att siffrorna byter värde om de ökas eller minskas
på den första fliken. Sen är det bara att ta koden för hur man byter färg
i vilken cell som helst och anpassa den till ditt program.
/EmmaSv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
Nu har jag emellertid kommit nästan fram, men nu är det kört så jag skulle vara glad över lite hjälp.
Så här försöker jag:
________________________________
Dim i, j As Integer
j = 0
While mittRS2.EOF = False
For i = 1 To 4
On Error Resume Next
If mittRS2.Fields(i) = "1" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j
Label1.Caption = j
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = vbRed
ElseIf mittRS2.Fields(i) = "2" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j
Label1.Caption = j
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = vbBlue
End If
Next
MSFlexGrid1.AddItem vbTab & mittRS2.Fields(1) & _
vbTab & _
mittRS2.Fields(2) & _
vbTab & _
mittRS2.Fields(3) & _
vbTab & _
mittRS2.Fields(4)
mittRS2.MoveNext
j = j + 1
Wend______________________________
Felet som det nu är, är att han går en rad förlite.
Om jag försöker med j + 1 så får jag fel.
Hur skall jag göra här?Sv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
<code>
Dim i As Long
Dim j As Long
On Error Resume Next
j = 0
Do Until mittRS2.EOF
For i = 1 To 4
MSFlexGrid1.AddItem vbTab & mittRS2.Fields(1) & _
vbTab & _
mittRS2.Fields(2) & _
vbTab & _
mittRS2.Fields(3) & _
vbTab & _
mittRS2.Fields(4)
j = j + 1
If mittRS2.Fields(i) = "1" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j
Label1.Caption = j
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = vbRed
ElseIf mittRS2.Fields(i) = "2" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j
Label1.Caption = j
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = vbBlue
End If
mittRS2.MoveNext
Next
Loop
<code>
EV. placera j = j + 1 under if satsen.Sv: Ändra backcolor/forecolor dynamiskt i MSFlexGrid
Jag fick bara error hela tiden.
Jag tog ändå fasta på ditt förslag och fick en liten idé:
______________________________________________________
While mittRS2.EOF = False
MSFlexGrid1.AddItem vbTab & mittRS2.Fields(1) & _
vbTab & _
mittRS2.Fields(2) & _
vbTab & _
mittRS2.Fields(3) & _
vbTab & _
mittRS2.Fields(4)
For i = 1 To 4
If Not mittRS2.EOF Or Not mittRS2.BOF Then
If mittRS2.Fields(i) = "1" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j + 1
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = RGB(245, 93, 17)
ElseIf mittRS2.Fields(i) = "2" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j + 1
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = RGB(1, 180, 220)
ElseIf mittRS2.Fields(i) = "3" And Len(mittRS2.Fields(i)) = 1 Then
MSFlexGrid1.col = i
MSFlexGrid1.row = j + 1
MSFlexGrid1.CellForeColor = vbWhite
MSFlexGrid1.CellBackColor = RGB(126, 209, 130)
End If
End If
Next
mittRS2.MoveNext
j = j + 1
Wend
mittRS2.Close
__________________________________________
Hemligheten var så enkel att det räckte med att kolla om mittRs2 var eof eller bof, annars så kunde jag lägga till + 1 på j
Tack för all hjälp.