PDA

Click to See Complete Forum and Search --> : Can this code be reduced?


debbie_82
Jan 30th, 2004, 01:37 AM
Private Sub SetSingle(bEnabled As Boolean)
Dim iCtr As Integer
grdSingle.Enabled = bEnabled
If bEnabled = False Then
For iCtr = 0 To btnSingle.Count - 1
btnSingle(iCtr).Enabled = False
Next iCtr
Else
If iMode = enumEDIT_FILTER Or iMode = enumVIEW_FILTER Then
If FilterList.Filters(FilterList.Selected).GetSCCount = 0 Then
btnSingle(2).Enabled = True
btnSingle(1).Enabled = False
btnSingle(0).Enabled = False
ElseIf FilterList.Filters(FilterList.Selected).GetSCCount = 1 Then
btnSingle(0).Enabled = False
btnSingle(1).Enabled = True
btnSingle(2).Enabled = True
Else
btnSingle(2).Enabled = True
btnSingle(1).Enabled = True
btnSingle(0).Enabled = True
End If
Else
If grdSingle.Rows = 1 Then
btnSingle(2).Enabled = True
btnSingle(1).Enabled = False
btnSingle(0).Enabled = False
ElseIf grdSingle.Rows = 2 Then
btnSingle(0).Enabled = False
btnSingle(1).Enabled = True
btnSingle(2).Enabled = True
Else
btnSingle(2).Enabled = True
btnSingle(1).Enabled = True
btnSingle(0).Enabled = True
End If
End If
End If
End Sub

CornedBee
Jan 30th, 2004, 09:59 AM
You could build lookup tables for matching the value against the minimum enabled control index, then use a single loop to enable them all.

si_the_geek
Jan 30th, 2004, 12:25 PM
based on part of what CornedBee said, you could do this:

Private Sub SetSingle(bEnabled As Boolean)

Dim iCtr As Integer
Dim iMinBtn As Integer
grdSingle.Enabled = bEnabled
If bEnabled = False Then
iMinBtn = btnSingle.Count
Else
If iMode = enumEDIT_FILTER Or iMode = enumVIEW_FILTER Then
If FilterList.Filters(FilterList.Selected).GetSCCount = 0 Then
iMinBtn = 2
ElseIf FilterList.Filters(FilterList.Selected).GetSCCount = 1 Then
iMinBtn = 1
Else
iMinBtn = 0
End If
Else
If grdSingle.Rows = 1 Then
iMinBtn = 2
ElseIf grdSingle.Rows = 2 Then
iMinBtn = 1
Else
iMinBtn = 0
End If
End If
End If

For iCtr = 0 To iMinBtn - 1
btnSingle(iCtr).Enabled = False
Next iCtr
For iCtr = iMinBtn To btnSingle.Count - 1
btnSingle(iCtr).Enabled = True
Next iCtr

End Sub

debbie_82
Feb 1st, 2004, 08:25 PM
Wow, just shows why I like programming.

I better practice more...

Thank you for some cool insights.