Terry Kemp schreef:
Hi All
how do you do a case statement on a record of booleans e.g...
Type
EngModeRec = Record
ManualOp: Boolean;
LeakTest: Boolean;
DrainFlush: Boolean;
end;
var
EngMode: EngModeRec;
I want to have...
Case True of
EngMode.ManualOp: ManualOpRun;
EngMode.LeakTest: LeakTestRun;
EngMode.DrainFlush: DrainFlushRun;
end;
but of course this wont work :(
You cannot use it like that. You would have to use an nested if then
statement like:
if EngMode.ManualOp then ManualRun
else if EngMode.ManualOp then LeakTest
else etc.
I would use an enum:
type
TEngMode = (emManualOp, emLeakTest, emDrainFlush);
var
EngMode : TEngMode;
case EngMode of
emManualOp: ManualRun;
emLeakTest: LeakTestRun;
emDrainFlush: DrainFlushTest;
end;
if several EngMode can occur at the same time (like can happen with
EngModeRec) you can use
type
TEngModeSet = set of TEngMode;
But then you cannot use case anymore to do the tests.
HTH,
Vincent
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal