AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm mit Leertaste anhalten

Ein Thema von Bonbon · begonnen am 8. Feb 2007 · letzter Beitrag vom 9. Feb 2007
Antwort Antwort
Bonbon

Registriert seit: 8. Feb 2007
Ort: Roßlau
5 Beiträge
 
#1

Programm mit Leertaste anhalten

  Alt 8. Feb 2007, 19:33
Hi,

schreibe gerade ein Programm für die Schule, in dem ich etwas erkläre. Dies läuft allerdings mit einem bestimmten Tempo und für manche vielleicht zu schnell. Ich würde gerne, dass der Nutzer nur die Leertaste drücken muss und dann das Programm so lange angehalten wird, wie die Taste gedrückt ist.
Könnte mir das bitte mal jemand erklären. Bin noch Delphi-Anfänger.

Thanks...
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Programm mit Leertaste anhalten

  Alt 8. Feb 2007, 19:34
Das kann man so nicht sagen, was macht denn dein Programm ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Bonbon

Registriert seit: 8. Feb 2007
Ort: Roßlau
5 Beiträge
 
#3

Re: Programm mit Leertaste anhalten

  Alt 8. Feb 2007, 19:47
Ich erkläre damit Lagebeziehungen zwischen Punkt und Gerade bzw. zwei Geraden. Nach Auswahl in Drop-Down-Menü und Button-Klick wird dies in einer ListBox gemacht und nebendran wid es grafisch dargestellt. Diese Erklärung soll dann während des Drückens der Leertaste pausiert werden.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Programm mit Leertaste anhalten

  Alt 8. Feb 2007, 19:55
Du musst schon sagen, wie du die Ausgabe realisiertst.
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Bonbon

Registriert seit: 8. Feb 2007
Ort: Roßlau
5 Beiträge
 
#5

Re: Programm mit Leertaste anhalten

  Alt 9. Feb 2007, 09:51
Ich schreibe zeilenweise einen Text in die ListBox und mit Canvas.MoveTo und LineTo zeichne ich links neben der Box. Das läuft soweit alles hintereinander ab. Mein Info-Lehrer meinte nun, ich solle das durch drücken der Leertaste anhalten und es soll weiter gehen, wenn ich die Taste los lasse. Kann ich das irgendwie über OnKeyPress oder OnKeyDown machen oder wie? Es wäre mir auch egal, wenn ich die Taste nicht genau definieren kann. Ich will nur die Erklärung einfach unterbrechen können.
  Mit Zitat antworten Zitat
Benutzerbild von yörsch
yörsch

Registriert seit: 10. Jan 2007
Ort: Lampertheim
206 Beiträge
 
Delphi XE2 Architect
 
#6

Re: Programm mit Leertaste anhalten

  Alt 9. Feb 2007, 10:07
Delphi-Quellcode:
procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_SPACE   then
    begin
      Label1.Caption := 'Down';
      Timer1.Enabled := false;

    end;
end;
procedure TMainForm.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_SPACE   then
    begin
      Label1.Caption := 'up';
      Timer1.Enabled := True;
    end;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
begin
 // Zeige Nächste Zeile an...
end;
ich hoffe dir hilft das weiter... ansonsten müstest du mit Treads arbeiten was für einen Anfänger nicht einfach ist...
wenns probleme gibt Poste mal was du hast...
Jörg
have FUN
  Mit Zitat antworten Zitat
Bonbon

Registriert seit: 8. Feb 2007
Ort: Roßlau
5 Beiträge
 
#7

Re: Programm mit Leertaste anhalten

  Alt 9. Feb 2007, 11:02
Habe das eben mal versucht. Ich weiß ich nicht wie er sich die Zeile, in der er gerade war merken soll. Drücke ich also während die Erklärung läuft Space, so hört er nach dem ersten Zeilenblock auf. Das passiert aber egal an welcher Stelle er gerade war. Danach macht er auch weiter, aber eben immer ab der gleichen Zeile.
Ich habe nach dem ersten Block auch eine Pause in dem Programm von ein paar Sekunden. Hängt das irgendwie damit zusammen?
Delphi-Quellcode:
 ListBox1.Items.Add('Zunächst zeichnet man den ersten Punkt P1(1,2) ein');
     ListBox1.Items.Add('dabei ist 1 der x-Wert: man geht in Gedanken 1 nach rechts');
     ListBox1.Items.Add('2 ist der y-Wert: man geht also in Gedanken 2 nach oben');
     ListBox1.Items.Add('nun macht man an der Stelle einen Punkt');
     Pause(6000);
Die Prozedur für die Pause sieht wie folgt aus:
Delphi-Quellcode:
procedure pause(zeit:LongInt);
var anfang:LongInt; {lange nat. Zahlen}
begin anfang:=GetTickCount;
  while GetTickCount<anfang+zeit do
        Application.ProcessMessages; {nichts, nur Botschaften abarbeiten}
end;
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Programm mit Leertaste anhalten

  Alt 9. Feb 2007, 12:49
Du nimmst den Code von yörsch und fügst folgendes beim Timer ein:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  case Timer1.Tag of
    0: ListBox1.Items.Add('Zunächst zeichnet man den ersten Punkt P1(1,2) ein');
    1: ListBox1.Items.Add('dabei ist 1 der x-Wert: man geht in Gedanken 1 nach rechts');
    2: ListBox1.Items.Add('2 ist der y-Wert: man geht also in Gedanken 2 nach oben');
    3:
      begin
        ListBox1.Items.Add('nun macht man an der Stelle einen Punkt');
        Timer1.Tag:= 0;//wenn fertig reset
        Timer1.Enabled := false;
        exit;
      end;
  end;
  Timer1.Tag:= Timer1.Tag+ 1;
end;
Den Code kannst du ja noch anpassen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Bonbon

Registriert seit: 8. Feb 2007
Ort: Roßlau
5 Beiträge
 
#9

Re: Programm mit Leertaste anhalten

  Alt 9. Feb 2007, 13:47
Vielen Dank . Werde das mal ausprobieren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 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