Cześć.
Jak zrobić wywołanie zdarzenia Button1Click Drugim Buttonem
w powtarzającej się sekwencji co x sekund (button1Click)
o określonej z góry ilości powtórzeń
gdzie odstępy czasowe oraz ilość powtórzeń podajemy z Edit1 oraz Edit2
Jak zrobić wywołanie zdarzenia Button1Click Drugim Buttonem
procedure TForm1.Button2Click(Sender: TObject);
begin
Button1.Click();
end;
w powtarzającej się sekwencji co x sekund (button1Click)
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button2.Click();
end;
o określonej z góry ilości powtórzeń
Przechowuj ją w TTimer.Tag
;
gdzie odstępy czasowe oraz ilość powtórzeń podajemy z Edit1 oraz Edit2
Timer1.Interval := StrToInt(Edit1.Text);
Timer1.Tag := StrToInt(Edit2.Text);
Nie wnikam po co Ci takie kombinacje.
Wielkie Dzięki :)
Przystosuję nieco odpowiedź przedpiścy.
Button1Click to zwykła procedura z jednym parametrem. Można ją wywołać w dowolnym miejscu kodu. Parametr Sender jest używany do przekazania tej procedurze kto ją zawołał. Jeśli nie używasz w niej tego parametru, to przy wywołaniu możesz podać nawet nil. Czyli możesz położyć komponent TTimer na formę i ustawić mu Enabled na false. Wtedy będzie nieaktywny.
Tag w Timer to takie miejsce do przechowywania czegoś. Możesz wkładać co chcesz. Na początku jest tam zero. W zdarzeniu OnTimer Twojego zegara wstaw np:
If Timer1.Tag >= StrToInt(Edit2.Text) then
begin
Timer1.Enabled := false;
Timer1.Tag := 0;
Button2.Enabled := true;
end
else
begin
Inc(Timer1.Tag);
Button1Click(nil);
Button2.Enabled := false;
end;
no i ten drugi przycisk niech robi tylko:
Timer1.Enabled := true
cholerka, jak tu teraz koloruje się kod źródłowy?.
Przy Twoim burzy się kompilator w
linijce
Inc(Timer1.Tag);
Left side cannot be assigned to
Sadam2 napisał(a):
Przystosuję nieco odpowiedź przedpiścy.
Button1Click to zwykła procedura z jednym parametrem.
Bzdury napisałeś w kodzie. Metoda zdarzeniowa Button1Click to coś zupełnie innego niż wywołanie kliknięcia: Button1.Click.
Dzięki Chłopaki
Dzięki Waszej pomocy wyszło mi coś takiego
Działa tak jak chciałem ale i tak Was na końcu o coś poproszę jeszcze
ale jeśli już tu widzicie błędy to proszę wskazujcie na tym początkowym etapie moje nauki nawet
najostrzejsza krytyka jest mile widziana :)
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Tag:= Timer1.Tag-1;
labelEndeTag.caption:='Zakonczenie programu za: ' + inttostr(Timer1.Tag);
button1.Click();
if Timer1.Tag<=0 then
timer1.Enabled:=False;
end;
procedure TForm1.ButtonStartClick(Sender: TObject);
begin
timer1.interval:=StrToint(Editinterval1.Text)*1000;
Timer1.Tag:=StrToInt(EditTag.Text);
timer1.Enabled:=true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
LabelNrButtonClick.Caption :='Button 1' ;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
LabelNrButtonClick.Caption:='Button 2'
end;
procedure TForm1.ButtonStopClick(Sender: TObject);
begin
timer1.Enabled:=False;
end;
A teraz ta milsza cześć :) Pytanie
procedure TForm1.Timer1Timer(Sender: TObject);
Moja prośba o pomoc w ułożeniu pętli.
Po Tym :
if Timer1.Tag<=0 then
Jest kolejne zdarzenie Buton2Click
Po wykonaniu mamy mieć określoną przerwę czasowa przed wykonaniem Butonn3Click
określamy ją Edit3.Text
Po przerwie określonej mamy zdarzenie Button3Click
a po jego wykonaniu zapętlamy (wracamy do początku od nowa)
aż do kliku w ButtonStopClick, zamknięciu programu, śmierci użytkownika :) etc.
W Button2 i Button3 są jednorazowe ale są w nich dźwięki mp3 muszą się odegrać do końca
Ja NIE chce nadużywać Waszej pomocy też nie liczę na gotowe rozwiązane.
Robię to pod trening interwałowy bo te wszystkie w smartfonach to porażka kiedyś troszkę
pisałem ale to lata świetlne,
Więc trochę wróciłem do tematu jak pisałem ale za stary jestem na przerabianie Delphi
Proszę tylko o budowę pustej takiej pętli jak powinna wyglądać z tym zapętleniem ja powoli sobie ją uzbroję
I jak wymusić (nie wiem czy konieczne) odegranie dźwięku Mp3 przed kolejnym zdarzeniem OnClick kolejnego buttona,moze się uruchomi dopiero po jego ukończeniu, wybaczcie nie pamiętam.
Z góry bardzo dziękuję
Prawdę mówiąc nie rozumiem, do czego dążysz z tą, jak to nazywasz, pętlą. Ale może potrzebujesz nie jednego zegara, ale dwóch?
A ja zadam inne pytanie. Co dokładnie chcesz osiągnąć? Często ludzie pytają się, jak skonstruować armatę, a potem okazuje się, że tak naprawdę potrzebują packi na muchy. Więc napisz, co dokładnie chcesz osiągnąć, bo wydaje mi się, że starasz się coś udziwnić.