[Delphi] Pętla, czekaj na

Witam, potrzebuje zrobić coś w stylu pauzy, a wznowienie nastąpi gdy a = 1.

procedure WaitFor;

begin

while a = 1 do ;

end;


ShowMessage('przed');

WaitFor;

ShowMessage('po');

Coś w tym stylu, tylko to mi nie działa.

W jaki sposób mogę uzyskać taki efekt?

Hmmm… czyli procedura ma wykonać wszystko aż do WaitFor; i gdy WaitFor będzie równe 1 wtedy procedura poleci dalej.

Chodzi mi po głowie kod dla tego ale jest 2.00 :smiley: Wstane i jak ktos mnie nie uprzedzi pomyśle nad tym.

ale na łatwiznę przeniósł bym wszystko po waitfor do samej procedury waitfor :smiley:

Wtedy odpala sie petla która jak dobrze pójdzie zamuli program ^^

Pozdro i mam nadzieje ze na cos wpadniesz ^^

Zrobiłem coś takiego

procedure TForm2.Timer2Timer(Sender: TObject);

begin

  if a = 2 then

    begin

      a := a + 1;

      ShowMessage('1');

    end;


  if a = 4 then

    begin

      a := a + 1;

      ShowMessage('2');

    end;


  if a = 6 then

    begin

      a := a + 1;

      ShowMessage('3');

    end;


  if a >= 7 then

    begin

      a := a + 1;

      Timer2.Enabled := False;

    end;


end;

Timer sprawdza co kilka ms zmiany, na parzystych liczbach są dodane warunki a na nieparzystych czeka. Przed odpaleniem timera pod a := 1;

Jeśli macie bardziej optymalne pomysły prosiłbym o podzielenie się nimi :stuck_out_tongue:

Btw, może orientujecie się jak zabezpieczyć program przed asemblerem?

znaczy przed disassembler. To przy okazji mam ustawione BorderStyle := bsNone, i teraz w jaki sposób można zrobić abym mógł łapać w obojętnie jakim miejscu na Formie?

procedure WaitFor;

begin

while a = 1 do Application.ProcessMessages;

end;

Łapanie za byłe co da się obsłużyć w zdarzeniu WM_NCHITTEST

To jeszcze ostanie pytania:

  • Jeśli by ktoś miał jakiś kod na zablokowanie kilkakrotnego uruchomienia aplikacji.

i jeszcze żeby utrudnić edycje programu w takich programach jak: PE Explorer, a także utrudnić odczytanie kodu przez disassemblery

z góry dzięki :slight_smile:

Komponent blokujący kilkakrotne uruchomienie aplikacji jest w bibliotece Jedi wystarczy wrzucić na główną formatkę.

Utrudnienie edycji oraz debugowania to odwieczny problem. Najlepsze skutki daje debugowanie aplikacji przez samą siebie, czyli wstawiasz przerwanie zatrzymujące program, w wyniku czego ma wykonać jakąś istotną czynność wrócić, odtworzyć przerwanie i pójść dalej. Jeżeli w taki sposób będą wywoływane kilka często stosowanych w programie funkcji to debugowanie takiego programu staje się piekielnie uciążliwe.