Jak sprawić aby funkcja lub procedura gdy dojdzie do pewnego momentu to bedzie czekać na nacisniecie przycisku np. button i po jego wybraniu zacznie dalej działanie?
Nie tak, nie tak!!
Dzielisz procedurę na dwie części.
Druga wykonywana jest jako obsługa zdarzenia "naciśnięcie przycisku".
Należy tylko zapewnić dostęp do danych z tej drugiej części procedury.
a ja mysle BartekG, że nie ma co negować pomysłow, których samemu się nie stosuje. Twoje rozwiazanie jest to jakies rozwiazanie, ale na przyklad w sytuacji gdy jest to duza funkcja operujaca duza liczba wlasnch lokalnych zmienych to wtedy wszytskie te zmienne trzeba by uczynic globalnymi albo przekazywac je przez stos a na dodatek jesli chcialoby sie uzalezniac dzialanie tej funkcji nie tylko od jednego klikniecia w trakcie jej dzialania ale od wielu to juz lipka. A to o co pyta mocarnik mozna zrobic badzo prosto.
var: jechac:boolean;
function funkcjazprzerwamiwdzialaniu;
begin
jechac:=false;
//jakis kod
repeat
application.procesmessages;
- tutaj jeszcze zeby nie obciazac zbytnio procesora wyknywaniem w kolko *tej petli mozna jeszcze dac jakies sleep() ale nie mam pewnosci
until jechac
//dalszy kod
end;
procedure button2click(sender:Tobject);
begin
jechac:=true;
end;
Nie sprawdzalem tego kodu ale wydaje mi sie ze powinien dzialac
i powinien robic to o co Ci chodzi mocarnik.
Cytat:
a ja mysle BartekG, że nie ma co negować pomysłow, których samemu się nie stosuje.
Oczywiście, że można.
Nie mówie kategorycznie "nie".
Też podobne rozwiązania wcześniej stosowałem w sytuacji, gdy procedura wykonywała dużo "ciężkich" zadań.
Chodzi mi jedynie, że w obiektowym Pascalu trochę inna koncepcja programowania istniej.
Chociażby w tym przypadku, gdy podczas wykonywania złożonego zadania należy zapytać o coś i uzależnić sposób wykonania dalszych zadań od odpowiedzi (a chyba o to chodi) myślę, że najlepiej stosować konstrukcję:
FormPytanie.ShowModal...
Czyż nie?!
myślę, że najlepiej stosować konstrukcję:
FormPytanie.ShowModal...
Czyż nie?!</quote>
Koncepcją mojego programu jest nieużywanie zadnych okienek. Zmiany sa wyświetlane np z labelach(pytania itp, inne informacje). Pojawiaja sie przyciski wyboru w danym potrzebnym momencie. I to one wpływaja na zachowanie się procedur.