tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
688
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    HarryXVI HarryXVI ist offline Mitglied Gold
    Registriert seit
    Apr 2008
    Beiträge
    108
    Gibt es in Delphi eine Schleife, die sagt: "Jedes Mal, wenn (Bedingung, z.B. Anklicken von Button) passiert, soll (Anweisungsblock) gemacht werden."?

    Wenn nein, wie kann ich dies umschreiben?
     

  2. #2
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Stichwort Listener?!
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

  3. #3
    Registriert seit
    Mar 2004
    Beiträge
    441
    Was die Schleife angeht, so suchst du wohl so etwas:
    Code delphi:
    1
    2
    3
    
    while (Bedingung) do
    begin
    end;

    Wie allerdings Matze mit seinem Stichwort anmerkte, ist eine einfache Schleife zu unterscheiden von der Reaktion auf ein Ereignis. Unter DOS waren Dauerschleifen, welche die verschiedenen Eingabegeräte (Tastatur, Maus, Joystick) abfragten, der Standard. Doch unter Windows sieht die Sache etwas anders aus. Da laufen nämlich Hunderte von verschiedenen Ereignissen gleichzeitig ab, u.a. Reaktionen auf Mausklicks, Bildschirmaktualisierungen, Meldungen verschiedenster Peripheriegeräte etc.pp. Diese werden von Windows verwaltet, sortiert und weitergeleitet. Für ein Delphiprogramm bedeutet dies nun, daß es auf solche Ereignisse (Events) reagieren muß. Wenn du also auf einen Buttonklick in deinem Formular reagieren willst, dann solltest du keine Schleife bauen, die permanent abfragt "Wurde denn der Button geklickt?" Denn sobald der Button geklickt wird, wird ein entsprechendes Ereignis vom Betriebssystem generiert, auf das dann der Button selbst reagieren kann, was wesentlich effizienter ist.

    Einbauen lässt sich das in Delphi furchtbar einfach (insofern du tatsächlich mit dem visuellen Designer arbeitest): Führe auf dem Button in deiner Entwurfsansicht einen Doppelklick aus. Dann wechselt deine Entwicklungsumgebung in den Quelltexteditor. Dort wurden dann automatisch alle notwendigen Zeilen eingefügt, damit eine entsprechende Ereignismethode ausgeführt wird (die heißt z.B. OnButton1Click() ), innerhalb derer du dann deinen Code schreiben kannst.

    Siehe auch http://www.edv-buchversand.de/chapte...id=ms-5411.pdf, Seiten 2 und 3.
     

  4. #4
    HarryXVI HarryXVI ist offline Mitglied Gold
    Registriert seit
    Apr 2008
    Beiträge
    108
    schön, aber das hilft mir nicht so recht. Ich möchte in einer Prozedur folgende Anweisung schreiben:

    "Jedes Mal, wenn die Prozedur aufgerufen wird, soll ein weiteres von 3 Bildern verschwinden und am Ende "Verloren" als MessageBox erscheinen".

    Das mit der MessageBox und Bilder-Verschwinden weiß ich, aber nicht wie die Syntax der Schleife aussehen soll....
     

  5. #5
    Registriert seit
    Mar 2004
    Beiträge
    441
    Code delphi:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    ...
    while Index < 3 do
    begin
      LasseVerschwinden(Index);
      Inc(Index);
    end;
     
    CreateMessageDialog('Verloren', mtInformation, [mbOk]);
    ...
    procedure LasseVerschwinden(BildIndex: Integer);
    begin
      // An dieser Stelle das Bild ausblenden, das durch BildIndex indentifiziert ist
    end;

    Die Schleife ist das while.
     

  6. #6
    HarryXVI HarryXVI ist offline Mitglied Gold
    Registriert seit
    Apr 2008
    Beiträge
    108
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    procedure TMaexchen.SpielerLebenWeg;
    begin
    while Index &lt 3; do
      begin
      SpielerLebenWeg(Index);
      Inc(Index);
        end;
    ImSLeben1.Visible := false;
    ImSLeben2.Visible := false;
    ImSLeben3.Visible := false;
    ShowMessage('Verloren!');
    end;

    Was bedeutet "&lt"?
    So stimmt das nicht, möchte jetzt gerne wissen, wie ich deinen Vorschlag auf meinen Fall anwende.
     

  7. #7
    Registriert seit
    Mar 2004
    Beiträge
    441
    Das "&lt" ist das "kleiner"-Zeichen, das ich nicht als Zeichen schreiben kann, weil der Editor hier im Forum es umwandelt.

    Aussehen sollte es ungefähr so:

    /
    \

    Frag mich bitte nicht, warum das neuerdings in den HTML-Code umgewandelt wird.

    Anmerkung noch zum Code:
    Mit simplen Copy&Paste wirst du nicht wirklich weiter kommen. Das, was du da rauskopiert hast, kann und wird nicht funktionieren, ohne, daß du es nachbearbeitest.
     

Ähnliche Themen

  1. Schleife als Bedingung einer Schleife ?
    Von Dragonate im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 05.11.09, 18:19
  2. Antworten: 4
    Letzter Beitrag: 07.01.08, 17:14
  3. Schleife in einer Schleife funktioniert nicht
    Von Watusimann im Forum PHP
    Antworten: 7
    Letzter Beitrag: 16.12.06, 16:06
  4. Antworten: 12
    Letzter Beitrag: 17.01.05, 18:34
  5. Schleife oder nicht Schleife?
    Von joky_joky im Forum PHP
    Antworten: 8
    Letzter Beitrag: 27.10.04, 17:32