Als alternatieve invoer zou je 8 check boxen achter elkaar kunnen zetten, dat werkt duidelijk en voorkomt foute invoer. Een checkbox aangevinkt staat voor de waarde 1 in het desbetreffende bit.
Ik raad je trouwens aan om Byte te gebruiken in plaats van Integer. Ten eerste werkt Integer ook met negatieve waarden, wat tot onverwachte resultaten kan leiden als je niet goed oplet. Ten tweede is de lengte van Integer platformafhankelijk (bij 32-bits Windows-systemen altijd 32 bits).
Delphi:
1
2
3
4
5
6
7
8
| function CheckBoxesToByte: Byte;
begin
Result := 0;
if CheckBox7.Checked then Result := Result or 1 shl 7;
if CheckBox6.Checked then Result := Result or 1 shl 6;
...
if CheckBox0.Checked then Result := Result or 1 shl 0;
end; |
Een goede grap mag vrienden kosten.