// In der Demo gibt es folg. procedure
Delphi-Quellcode:
procedure TForm1.DigitalOut(Sender: TObject);
var i:longint;
begin
i:=integer(CheckBox6.checked)*1+
integer(CheckBox7.checked)*2+
integer(CheckBox8.checked)*4+
integer(CheckBox9.checked)*8+
integer(CheckBox10.checked)*16+
integer(CheckBox11.checked)*32+
integer(CheckBox12.checked)*64+
integer(CheckBox13.checked)*128;
if not DisableOtherFunctionCall then WriteAllDigital(i);
end;
ich mache es so:
Delphi-Quellcode:
Type TDigitalAusgaenge = Array[1..8] of Boolean;
Var DigitalAusgang : TDigitalAusgaenge;
Procedure TMainForm.WriteDigital;
var i: longint;
begin
DisableOtherFunctionCall := true;
i := Integer(DigitalAusgang[1]) * 1 +
Integer(DigitalAusgang[2]) * 2 +
Integer(DigitalAusgang[3]) * 4 +
Integer(DigitalAusgang[4]) * 8 +
Integer(DigitalAusgang[5]) * 16 +
Integer(DigitalAusgang[6]) * 32 +
Integer(DigitalAusgang[7]) * 64 +
Integer(DigitalAusgang[8]) * 128;
//SetDigitalChannel(CardAddr); // Karte 0..3 auswählen
WriteAllDigital(i);
DisableOtherFunctionCall := false;
end;
begin
DigitalAusgang[1] := TRUE;
DigitalAusgang[2] := TRUE;
WriteDigital;
end;