Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Button abfrage (https://www.delphipraxis.net/49098-button-abfrage.html)

Alf 5. Jul 2005 14:49


Button abfrage
 
Hi Leute

Ich hoffe das ich hier richtig bin.?
Versuche folgendes Problem zu lösen.

So lange ein Button gedrückt ist, soll ein Berechnung durchgeführt werden,
wenn der Button wieder losgelassen wird, wird die Berechnung beendet.

mit den Onclick oder onMouseDown geht es ja nicht.
muss ja ständig neu gedrückt werden!!


Gruss ALf

NicoDE 5. Jul 2005 14:53

Re: Button abfrage
 
Vielleicht solltest du über einen event-orientierten Ansatz nachdenken (Drücken = Start, Loslassen = Stop).

maximus Caesar 5. Jul 2005 14:53

Re: Button abfrage
 
Versuchs so:
OnMouseDown: Berechnung starten
OnMouseUp: Berechnung beenden

PS: bitte das Doppelte Thema wieder löschen!

tHeRiAn 5. Jul 2005 14:59

Re: Button abfrage
 
Moin,
was spricht gegen "OnKeyDown" und "OnKeyUp". Dafür gibts doch auch schon fertige Eventhandler.

beim Down wird berechnung begonne und bei Up selbige beendet.

gruss ich

Alf 5. Jul 2005 15:10

Re: Button abfrage
 
Hi

danke für die Schnellen Antworten, aber komischerweise funct nichts davon

hiehr mein Code;

Delphi-Quellcode:
procedure TForm1.BitBtn5MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);

var
    len:dword;
    zt: longint;
begin
      btime:=btime-100;
       .......
      .......
end;
muss trotzdem immer wieder neu klicken!!

Gruss Alf

Treffnix 5. Jul 2005 15:15

Re: Button abfrage
 
Klar. Auch Mousedown und Mouseup werden nur einmal aufgerufen. Du musst beim Mousedown einen Timer, Schleife oder ähnliches starten, in der du die eigentliche Funktionalität aufrufst und bei Mouseup stoppst du den Timer, Schleife, wasweissich.

Alf 5. Jul 2005 15:41

Re: Button abfrage
 
Hi

Habs gleich mal ausprobiert!!!???
kann aber nur ne Notlösung sein, wegen des .Intervals
muss man ganz schön Exp. um evtl das richtige Verhältniss festzustellen.
Und in der Praxis dann????


Gruss Alf

turboPASCAL 5. Jul 2005 15:45

Re: Button abfrage
 
Zitat:

Zitat von Alf
So lange ein Button gedrückt ist, soll ein Berechnung durchgeführt werden...

So ? :gruebel:

Delphi-Quellcode:
var StoppBerechnung: Boolean;

procedure TForm1.StartBerechnung;
begin
  repeat
    //... Berechnung
    //...
    Application.ProcessMessages;
  until StoppBerechnung;
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  StoppBerechnung := False;
  StartBerechnung;
end;

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

Alf 5. Jul 2005 16:33

Re: Button abfrage
 
Hi

ist ne gute Lösung!!

Danke

Gruss Alf


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz