Suspendarea aplicației în delifi-stack overflow în rusă

Cum pot să opresc execuția unui program în Delphi înainte ca utilizatorul să apese o cheie (spunând orice) fără a apela o fereastră suplimentară?

Asta este, să fie 10 linii de cod. Primele 5 linii au fost executate și programul așteaptă acțiunile utilizatorului. El apasă, să zicem, Enter. și apoi restul de 5 linii de cod sunt executate. Oh, da, toate acestea nu sunt în aplicația consola (și ce să facă în consola, cu excepția readln?).







P.S. Ne pare rău, dacă nu este exact exprimat, dar MessageBox și ShowMessage nu sunt potrivite.
Oprirea în detrimentul proprietăților și metodelor formei este adecvată numai dacă se poate face dinamic. (Cu această ocazie, cealaltă întrebare: lucrul cu TForm în Delphi)

a fost desemnat 5 septembrie '11 la 6:20

Există un mod mai simplu și mai frumos. Procedura în care trebuie să faceți o "pauză" este împărțită în două părți - înainte și după pauză (este clar că acest lucru nu este întotdeauna posibil, dar în multe cazuri este destul de realist). După ce prima jumătate este îndeplinită, ea scoate un steag pentru a ști despre asta. Mai mult, în procedura de prelucrare a intrărilor de la tastatură sau cea care procesează cererea de continuare de la utilizator - efectuați a doua procedură.







Dacă trebuie să transferați o mulțime de parametri, atunci trebuie doar să faceți o structură (înregistrare), în care să introduceți toți parametrii și să le transmiteți fiecărei proceduri.

Răspunsul a fost făcut 5 septembrie '11 la ora 9:05

Acest lucru nu este foarte frumos din punct de vedere al designului. Dacă avem mai multe proceduri care trebuie rupte? Dacă avem câteva pauze în procedură? Ce se întâmplă dacă decizia de întrerupere ar trebui luată pe baza unor date externe (de exemplu, încărcarea ciclică a unor resurse, numărul și compoziția cărora nu este cunoscut în prealabil și întreruperea în caz de eșecuri)? TS pare să dorească o soluție generalizată care să poată fi utilizată oriunde, dacă se dorește. - Nofate ♦ 5 Sep '11 la 9:47

Să așteptăm TC și să nu facem ipoteze greșite. Dacă există mai multe pauze, care este problema? Faceți mai multe proceduri? Dar dacă e înfricoșător, există un alt mod minunat de a organiza procedura - un caz mare. și o variabilă globală (sau câmp de clasă) care stochează starea curentă. - KoVadim 5 Sep '11 la 9:51 am

Ne pare rău, nu am înțeles că există o "a doua procedură". Iată ce, se presupune că este necesar: # 47; # 47; scrie aplicația programatorN. # 47; # 47; ceva este afișat MyClass.Stop; # 47; # 47; provoacă o oprire din obiectul clasei mele, # 47; # 47; aceasta este procedura care trebuie să fie întreruptă? - HankMoody 5 Sep '11 la 16:58







Articole similare

Trimiteți-le prietenilor: