Results 1 to 7 of 7

Thread: loop stoppen

  1. #1
    Registered User
    Join Date
    Apr 2001
    Location
    Berkel en rodenrijs
    Posts
    9

    Unhappy loop stoppen

    hallo allemaal,

    hoe kan ik eenvoudig een loop onderbreken.
    Ik heb een procedure die na het klikken op de start knop 100 punten in een grafiek zet.
    Ik wil er een loop erin zetten bijv met repeat until die stopt als ik op een stop knop druk.
    Hoe moet dat in delphi 5.

    Groeten,
    Gert.

  2. #2
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    Het is vrij simple:
    Code:
    procedure TForm1.die_erg_lang_duurt;
    begin
      while not stop do begin
        {allerlei nuttige code}
        Application.ProcessMessages; 
      end;
    end;
    
    procedure TFrom1.ButtonStopClick(Sender: TObject);
    begin
      Stop := True;
    end;
    Application.ProcessMessage zorgt er voor dat je code het systeem de tijd geeft om andere events te verwerken.
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  3. #3
    Hallo,

    Deze komt van:

    http://www.swissdelphicenter.ch/en/showcode.php?id=318

    met volgende broncode :


    procedure TForm1.Button1Click(Sender: TObject);
    var
    LoopAborted : boolean;
    i : integer;
    begin
    LoopAborted := false;
    i := 0;
    repeat
    // Your Code...
    Caption := inttostr(i);
    Application.ProcessMessages;

    if GetKeyState(VK_Escape) and 128 = 128 then
    begin
    LoopAborted := true;
    break;
    end;

    inc(i);
    until i = 100000;
    if LoopAborted then
    ShowMessage('User has aborted the loop!');
    end;

    Vraag me niet waarom 128 = 128 erbij moet.

    Succes,

    Geert

  4. #4
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    [it]Originally posted by Geert [/it]
    Code:
        if GetKeyState(VK_Escape) and 128 = 128 then
    Vraag me niet waarom 128 = 128 erbij moet.
    GetKeyState geeft de staat aan van een key (toets). Dat wil zeggen het resultaat zegt of de toets is ingedrukt of zoiets. Als een toets is ingedrukt is de "High Bit" dus 1. 128 is binair: "b10000000". Hier is de High Bit ook 1. Met behulp van and en een getal (ook wel masker genoemd) kun je kijken of een bepaald bitje ge-zet is.
    Met 64 kijk je dus of bit 7 gezet is, met 32 of bit 6 gezet is, etc.
    64 = b01000000,
    32 = b00100000,
    16 = b00010000 etc.

    Ik hoop dat een en ander duidelijk is. Geef anders maar een brul!
    Last edited by Matthijs; 15-May-01 at 19:50.
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  5. #5
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199

    Angry

    Het systeem vertikt te laten zien dat ik een antwoord heb gegeven!
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  6. #6
    [it]Originally posted by Matthijs [/it]
    Het systeem vertikt te laten zien dat ik een antwoord heb gegeven!
    Heb je de variabele wel aangemaakt? Bij public (meen ik...). Je kan ook dit in de procedure zetten,



    if Loop := False then Exit;

    Met exit kan je altijd de procudere stoppen, je kan zo ook halverwege de prcedure de procedure stoppen, een voorbeeld:

    begin
    if MenuItem1.Checked = True then
    begin
    Panel1.Visible := False;
    MenuItem1.Checked := False;
    Exit; // De procedure stoppen
    end;
    if MenuItem1.Checked = False then
    begin
    Panel1.Visible := True;
    MenuItem1.Checked := True;
    [B]end;{/B]
    end;

    Dit is een procedure die kan worden gebruikt om een panel, statusbar, of toolbar weg te halen en te verdwijnen, vaak in het menu beeld. Als je nou Exit; weghaalt dan doet ie het niet meer. Moet je maar eens de procedure nagaan op chronologische volgorde, Als checked = true dan wordt ut false en daarna als checked false dan bla bla bla... Wanneer checked true is aan het begin van de procedure dan werkt het wellicht niet.
    Lynx,
    www.animals.nl

  7. #7
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    [it]Originally posted by Lynx [/it]
    Heb je de variabele wel aangemaakt? Bij public (meen ik...). Je kan ook dit in de procedure zetten,
    als antwoord op mijn uitroep:
    Het systeem vertikt te laten zien dat ik een antwoord heb gegeven
    Ach bij mij werkt het wel hoor! Alleen het forum deed niet helemaal wat ik ervan verwachtte!
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

Thread Information

Users Browsing this Thread

There are currently 2 users browsing this thread. (0 members and 2 guests)

Similar Threads

  1. Ander programma geforceerd stoppen.
    By marctil in forum Algemeen
    Replies: 1
    Last Post: 25-Jun-04, 00:21
  2. Replies: 5
    Last Post: 03-Feb-04, 23:24
  3. een loop trager laten draaien
    By georgies in forum Algemeen
    Replies: 20
    Last Post: 13-Sep-03, 20:16
  4. Loop blijft loopen (denk ik)
    By BasicontheWeb in forum Algemeen
    Replies: 6
    Last Post: 02-Dec-02, 23:17
  5. Loop onderbreken
    By mjwdoek in forum Algemeen
    Replies: 2
    Last Post: 18-Apr-02, 11:35

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •