![]() |
eine Aktion solange ausführen, wie Maustaste gedrückt ist
Hallo an alle,
Ich habe ein Problem. Ich will eine bestimmte Aktion solange ausführen, wie die linke Maustaste gedrückt ist. Habe mich hier schon durch einige ähnliche Beiträge geklickt und folgenden Quellcode geschrieben, der anscheinend bei den anderen funktioniert hat.
Code:
Meine Frage jetzt ist, warum mir in dem Label Lb_Pos nicht die Schrift "Maustaste gedrückt" angezeigt wird. Die Funktion MMC_getPos kann ignoriert werden, da diese durch eine externe DLL eingeführt wird und auch einen int-Wert zurückgibt.
procedure TForm1.Button1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if shift = [ssleft] then Lb_Pos.Caption := 'Maustaste gedrückt' else Lb_Pos.Caption := 'Position: '+ inttostr(MMC_getPos); end; Es wird durch Delphi kein Fehler angegeben. |
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Bei mir gibts nen Ereignis OnKeyPressed:
Delphi-Quellcode:
Damit müsste es doch funktionieren oder?
procedure Button1KeyPress(Sender: TObject; var Key: char);
Den virtuellen Key für die linke Maustaste findest sicher bei google.de Grüße |
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Wäre OnMouseDown nicht angebrachter?
|
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Zitat:
Delphi-Quellcode:
Allerdings kann der Benutzer die Maustaste auch außerhalb des Buttons loslassen, so das Button1.OnMouseUp nicht ausgeführt wird.
procedure TForm1.Button1MouseDown(Sender: TObject);
begin Aktion.Starten; end; procedure TForm1.Button1MouseUp(Sender: TObject); begin Aktion.Beenden; end; |
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
DAs mit ONMouseDown funktioniert, allerdings nur 1 mal und wenn ich eine While-Schleife mache, produziere ich eine Unendlich-Schleife und muss es abbrechen.
|
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Zitat:
@BAMatze: Hast Du ein Application.ProcessMessages in Deiner Schleife? |
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
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;
|
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Zitat:
|
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Zeig mal Deinen Code.
|
Re: eine Aktion solange ausführen, wie Maustaste gedrückt is
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz