Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: eine Aktion solange ausführen, wie Maustaste gedrückt is

  Alt 22. Aug 2008, 16:05
[quote="BAMatze"]
Zitat von kaiser1401:
Dann solltest du bei OnMouseDown einen timer starten der in einem gewissen Interwall die gewünscht Aktion ausführt. Im OnMouseUp hälst du ihn dann wieder an. Enabled:=false;
Mit folgenden Prozeduren wurde das Problem gelöst:

Delphi-Quellcode:
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Timer2.Enabled := true;
end;


procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Timer2.Enabled := false;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
  Timer2.Interval := (50);
  iErr := MMC_sendCommand('MR100');
end;
Zur Erklärung: Die Zeile iErr := MMC_sendCommand('MR100'); ist eine Befehlszeile zur Steuerung eines Motors. Also die auszuführende Anweisung (solange die Maustaste gedrückt ist), um die es ging.
  Mit Zitat antworten Zitat