Autor Beitrag
HBriele
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80



BeitragVerfasst: Di 16.08.05 23:01 
:?:
Hallo, wie kann man es realisieren, das eine Aktion bei einem Button mehrfach hintereinander ausgeführt wird.
Es soll so aussehen, das wenn ein Button eine längere Zeit betätigt wird, die Aktion immer wieder ausgeführt werden soll.

Gruß
Harry M.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754

Win 2000, XP
D2005
BeitragVerfasst: Di 16.08.05 23:11 
Was möchstet Du nun?? Den Button gedrück halten oder eine Procdure immer wieder durchlaufen?

_________________
Gruß Harry
Et spes me per dies sine te ducat et amor me ferat, si dolor spem tollit.
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Di 16.08.05 23:17 
user profile iconHBriele hat folgendes geschrieben:
:?: die Aktion immer wieder ausgeführt werden soll.
Wenn ich es richtig verstanden habe, möchtest Du einen Knopf z.B. 5 mal hintereinander drücken (lassen)

Kannst Du z.B. mit einer Schleife umsetzen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  zaehler := 0;
  repeat
    BitBtn1.OnClick(Sender);
    Inc(zaehler)
  until zaehler = 5;
end;


Beim drücken des Knopfes 2 wird der Knopf 1 ausgelöst

/Edit:
Wobei wenn ich mir Deine frage nochmals durchlese... Zumindest kannst Du den Ansatz in Dein Problem mit einbeziehen...


Gruss
Blawen


Zuletzt bearbeitet von Blawen am Di 16.08.05 23:21, insgesamt 1-mal bearbeitet
HBriele Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80



BeitragVerfasst: Di 16.08.05 23:20 
Also ich befinde mich in einem Stringgrid an einer Position.
Nun habe ich zwei Button einer für StringGrid.Row + 1
Und einen für StringGrid.Row – 1

Wenn ich nun den jeweiligen Button eine bestimmte Zeit festhalte (mit der Maus)
Dann soll mein Cursor Schritt für Schritt scrollen.
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Di 16.08.05 23:23 
user profile iconHBriele hat folgendes geschrieben:
Wenn ich nun den jeweiligen Button eine bestimmte Zeit festhalte (mit der Maus)
Dann soll mein Cursor Schritt für Schritt scrollen.
Den Ansatz habe ich Dir gegeben, jetzt benötigst Du nur noch einen Timer und eine gute Idee, wie Du den Scrollvorgang beenden willst.
HBriele Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80



BeitragVerfasst: Di 16.08.05 23:40 
user profile iconBlawen hat folgendes geschrieben:
Den Ansatz habe ich Dir gegeben, jetzt benötigst Du nur noch einen Timer und eine gute Idee, wie Du den Scrollvorgang beenden willst.


Eben mein Problem!
Ich habe sechs solcher Knöpfe, da ich aus einem Timer keine Funktion machen kann, müsste ich sechs Timer einsetzen und Variablen Global deklarieren will ich nicht.
Gruß
Blawen
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 616
Erhaltene Danke: 33

Win XP, Vista, 7
Delphi 5 Prof., BDS 2006 Prof. RAD Studio XE
BeitragVerfasst: Di 16.08.05 23:49 
Zitat:
Ich habe sechs solcher Knöpfe, da ich aus einem Timer keine Funktion machen kann, müsste ich sechs Timer einsetzen und Variablen Global deklarieren will ich nicht.
Gruß
Genügt nicht ein Timer und ein regelmässiges Abfragen des Tastenstatus?

Pseudo-Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Prüfe alle 0.5 Sek.
  Ist Taste1 gedrückt dann Inc(Zaehler_Taste1)
                      sonst Dec(Zehler_Taste1)
  .
  .
  Ist Zaehler_Taste 1 = 0 dann Zaehler = 1;
  .
  .
  Ist Nicht Abbruchbedingung Dann
    Ist Zaehler_Taste 1 = 5 Dann ....    
    .
    .


oder so in der Art..


Zuletzt bearbeitet von Blawen am Di 16.08.05 23:59, insgesamt 2-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 16.08.05 23:56 
Hallo!

Wen ich das richtig sehe, geht es relativ einfach: Du hast einen Timer und Deine Buttons. Im OnMouseDown-Ereigns eines jeden Buttons wird der Timer gestartet, bei OnMouseUp wird er wieder beendet.

Nun muss der Timer noch wissen, was er machen soll. Wenn Du alles in ein Timer-Ereignis packen willst, kannst Du die Tag-Eigenschaft des Timers im OnMouseDown setzen (mit irgendwelchen von Dir festgelegten Konstanten), damit der Timer weiß, was er zu tun hat.

Du kannst aber auch mehrere Timer-Ereignisse schreiben, welche Du im OnMouseDown dann OnTimer zuweist.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
HBriele Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 80



BeitragVerfasst: Mi 17.08.05 00:27 
user profile iconChristian S. hat folgendes geschrieben:
Hallo!

Wen ich das richtig sehe, geht es relativ einfach: ........


Danke
Habe zwei Timer genommen, einen für Up und einen für Down.

Klappt

Super

Gruß