В настоящее время у меня есть переменная, содержащая 10 символов, либо 1, либо 0, каждая из которых представляет собой ключ разрешения.Как я мог достичь этого с наименьшим количеством кода?
Теперь, когда у меня также есть панель UAC, встроенная в мою программу, я хотел бы иметь возможность контролировать, кто может что-то делать, включив/отключив функции на основе этого ключа.
Примером ключа будет: 1011001101
.
Управление, с помощью которого я меняю ключи людей, представляет собой список из 10 флажков.
E.g. 1000000000
предоставит только контроль над UAC, и все остальные функции могут быть включены, установив соответствующий флажок в UAC и обновив ключ.
Как я могу подойти к вопросу автоматического заполнения флажков на основе ключа разрешения при выборе другого пользователя?
Примечание. Вот скриншот о том, как выглядит панель UAC, только чтобы дать вам представление о том, как настроена моя форма.
EDIT: Просто думал, что я должен дать вам, ребята, наглядный пример того, что я пытаюсь сделать, так что я написал этот массивный кусок кода, который я знаю, будет работать, но это d слишком много удара по производительности на самом деле использовать в моей программе, как это:
If Mid(pkeys, 1, 1) = "1" Then
chkUAC.Checked = True
End If
If Mid(pkeys, 2, 1) = "1" Then
chkPInv.Checked = True
End If
If Mid(pkeys, 3, 1) = "1" Then
chkVInv.Checked = True
End If
If Mid(pkeys, 4, 1) = "1" Then
chkCheck.Checked = True
End If
If Mid(pkeys, 5, 1) = "1" Then
chkPMap.Checked = True
End If
If Mid(pkeys, 6, 1) = "1" Then
chkVMap.Checked = True
End If
If Mid(pkeys, 7, 1) = "1" Then
chkTele.Checked = True
End If
If Mid(pkeys, 8, 1) = "1" Then
chkHeal.Checked = True
End If
If Mid(pkeys, 9, 1) = "1" Then
chkDart.Checked = True
End If
If Mid(pkeys, 10, 1) = "1" Then
chkWhiteList.Checked = True
End If
меньше кода не всегда лучший код. – MarcinJuraszek
Правда, но я обнаружил, что (в большинстве случаев) меньше кода означает меньше нагрузки на процессор/меньше шансов для AppHang. Кроме того, меньше управляемо – Yorrick
В его комментарии говорится, что ваше наблюдение не всегда верно. В частности, манипулирование отдельными битами * не * будет быстрее, чем альтернативы. –