Hallo,
Ich habe gerade das Problem, dass ich einen Teil einer Procedure nur einmal Ausführen darf.
Und da weiss ich nicht weiter.
Ich habe eine Scrollbar wenn ich die Anklicke/Betätige muss sie eimal $FF und dann $FB senden. Danach inkrement/dekrementieren 0 bis 100 rauf oder runter demach wie ich sie bewege, und das solange bis TScrollBar(Sender).Tag ändert.
Kann mir da vieleicht jemand weiter helfen?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure TMiniDOForm.PortDim(Sender: TObject); var X,i: Integer; ExecOnce: Boolean; begin X := 0; X := TScrollBar(Sender).Tag; TBar[X].OnClick := Nil; CurrentPort := X;
if ExecOnce then Begin Port[X] := #$FF; DomoSend(Port[0], Port[1], Port[2], Port[3], Port[4], Port[5], Port[6], Port[7]); Sleep(50); Port[X] := #$FB ; DomoSend(Port[0], Port[1], Port[2], Port[3], Port[4], Port[5], Port[6], Port[7]); ExecOnce:= False; End else
for i := 0 to 100 do Begin Label10.Text := round(TBar[X].Value); Port[X] := Chr(round(TBar[X].Value)); End;
DomoSend(Port[0], Port[1], Port[2], Port[3], Port[4], Port[5], Port[6], Port[7]);
End; |
Habe versucht das mit der variable ExecOnce zu machen, klappt aber nicht...
EDIT:
$FF muss ich senden um den port auf der letzen gedimmten "value"/ intensität wieder anzuschalten.
$FB sagt dem port, du musst jetzt dimmen.
von 0 - 100 / 100 -0 wird gedimmt.