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/)
-   -   Button wiederholen (https://www.delphipraxis.net/85121-button-wiederholen.html)

SaFu 26. Jan 2007 09:49


Button wiederholen
 
Hi hab mal ne ganz Simple.

Wie wiederhole ich einen Button.Click 5 mal im Abstand von 5 Sekunden denn ich mit einem anderen Button ausführe?

mkinzler 26. Jan 2007 09:51

Re: Button wiederholen
 
Verwende einen Timer, den du per Buttonklick strtest und rufe darin die Click-Methode des anderen Buttons auf.

SaFu 26. Jan 2007 09:52

Re: Button wiederholen
 
und mit einer verzögerung z.B. Sleep

sirius 26. Jan 2007 09:54

Re: Button wiederholen
 
Zitat:

Zitat von fuknersascha
und mit einer verzögerung z.B. Sleep

Nein, mit einem Timer (TTimer)

Elicia 26. Jan 2007 09:56

Re: Button wiederholen
 
Hi,

probier mal 'Button.OnClick(self)' - sollte funktionieren. Für die 5 Sekunden eventuell Timer nehmen!

Viel Glück!
Elicia

SaFu 26. Jan 2007 10:02

Re: Button wiederholen
 
Kann man das nicht irgendwie so Realisieren??

Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var x :integer;
begin
   while x:=1  < 5 do
   begin
    Sleep(1000);
    Button2.Click;
    Button3.Click;
    inc(x);
  end;
 end;

sirius 26. Jan 2007 10:11

Re: Button wiederholen
 
Also wenn dann schon "for x:=1 to 4 do"

Aber dann wartet der User ja 4 Sekunden und kann nix machen.

Nimm doch einen Timer

marabu 26. Jan 2007 10:21

Re: Button wiederholen
 
Hallo Sascha,

bevor du weiter programmierst: Wenn du Code für ein ButtonClick-Event geschrieben hast und diesen Code auch von anderen Stellen aus aufrufen möchtest, dann empfiehlt es sich spätestens jetzt diesen Code in eine eigene Prozedur auszulagern.

Die Entscheidung zwischen Sleep() und einem Timer hängt auch davon ab, ob die Zeit möglichst exakt eingehalten werden muss, in welchem Verhältnis die Wartezeit zur Ausführungszeit deines Codes steht und ob der Benutzer zwischenzeitlich überhaupt eine andere Aktion anstoßen darf.

Grüße vom marabu

SaFu 26. Jan 2007 10:22

Re: Button wiederholen
 
habs
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
begin
 Memo1.Clear;
 NMHTTP1.get('http://de.finance.yahoo.com/waehrungsrechner');
 a:= NMHTTP1.Body;
   while x < 5 do
    begin
     Button2Click(Sender);
     Button3Click(Sender);
     x:=x+1;
     Sleep(2000);
    end;
end;

Jürgen Thomas 26. Jan 2007 10:27

Re: Button wiederholen
 
Hallo Sascha,

sag mal, bist Du resistent gegen Beratung?
Zitat:

Zitat von sirius
Also wenn dann schon "for x:=1 to 4 do"

Aber dann wartet der User ja 4 Sekunden und kann nix machen.

Nimm doch einen Timer

Durch die for-Schleife sparst Du Dir zwei Anweisungen. Außerdem fehlt bei Dir die Initialisierung von x. Und den Timer haben mehrere vorgeschlagen; das hat doch seinen Grund!!! Jürgen

SaFu 26. Jan 2007 10:33

Re: Button wiederholen
 
Ok dann so
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var x :integer;
begin
 Memo1.Clear;
 NMHTTP1.get('http://de.finance.yahoo.com/waehrungsrechner');
 a:= NMHTTP1.Body;
   for x:=1 to 5 do
    begin
     Button2Click(Sender);
     Button3Click(Sender);
     Sleep(2000);
    end;
end;
Danke nochmal

mkinzler 26. Jan 2007 10:36

Re: Button wiederholen
 
Zitat:

sag mal, bist Du resistent gegen Beratung?
Sieht so aus
@Sascha: Du legst deinen Rechner immer noch Schlafen. (Sleep)

SaFu 26. Jan 2007 10:46

Re: Button wiederholen
 
daran Arbeite ich gerade aber danke.

DP-Maintenance 26. Jan 2007 15:50

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "VCL / WinForms / Controls" verschoben.

marabu 26. Jan 2007 16:03

Re: Button wiederholen
 
Hallo Leute,

hackt nicht auf Sascha rum wegen dem Einsatz von Sleep(). Ich bin ja auch nicht so glücklich bei der Vorstellung, dass da mehrmals hintereinander zwei Button-Clicks in Folge simuliert werden sollen, aber nicht auszudenken was alles passiert, wenn der Benutzer des Programms mittendrin die Kontrolle erhielte und eigenmächtig auf Button42 klicken würde. Ich verweise dazu nochmal auf Beitrag #8.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 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