acil cikis
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 18
- Kayıt: 26 Eki 2006 01:56
acil cikis
Programimda bir acil cikis butonu koymak istiyorum öyle ki bu butona basildiginda progran ana procedure ün sonuna gitsin. Program o an ana procedure ün içinden çağrılan alt procedürlerin herhangi birinin içinde ki bir repeat until döngüsünde de olsa acil cıkıs butonuna basılınca ana procedurenin sonuna gitsin.
Nasıl yapılabilir bir fikri olan var mı?
Nasıl yapılabilir bir fikri olan var mı?
Re: acil cikis
s.a.
bunun için bir acil çıkış değişkenin olmalı. defaul değer false butona tıkladığın zaman bu değişkeni set edeceksin.
sonra procedurledeki döngülerin içine bu değişkenin değerini kontrol edeceksin. eğer değişken set edilmişse exit ile procedureden çıkacaksın.
ancak işleme başlamadan önce değişkenin değerini false etmeyi unutmaman lazım. tabi döngülerin içine processmessages de koymalısınki döngü içinde acil çıkış butonuna bastığın anlaşılsın.
kolay gelsin.
bunun için bir acil çıkış değişkenin olmalı. defaul değer false butona tıkladığın zaman bu değişkeni set edeceksin.
sonra procedurledeki döngülerin içine bu değişkenin değerini kontrol edeceksin. eğer değişken set edilmişse exit ile procedureden çıkacaksın.
ancak işleme başlamadan önce değişkenin değerini false etmeyi unutmaman lazım. tabi döngülerin içine processmessages de koymalısınki döngü içinde acil çıkış butonuna bastığın anlaşılsın.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
-
- Üye
- Mesajlar: 18
- Kayıt: 26 Eki 2006 01:56
Re: acil cikis
Evet öyle yapabilirim ama alt procedureler sadece döngülerden oluşmuyor. Mesela ana procedur 1 numaralı procedure ü, 1 de 2 numaralı procedure ü çağrıyor. 2 numaralı procedure içindeki repeat until i boolean değşkenle kontrol ettim ve exit dedim. 2 den çıktı ama 1 in içinde kalan satırları icra etti. Bu sefer 1 in içinde de her adimda o boolean değişken kontrol edilmeli ki oradan da çıkılabilsin. O da çok zor ve uzun olur. Daha başka pratik bi yol olmalı bence?
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
Re: acil cikis
1.içinde ilk kodun
while reset=false do
begin
kodlar
end;
while reset=false do
begin
kodlar
end;
Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;
-
- Üye
- Mesajlar: 18
- Kayıt: 26 Eki 2006 01:56
Re: acil cikis
O da olmaz ki reset true olsa bile yine procedure 2 yi çağırdığım yerin altında kalan satirlar icra edilecek. Yani while döngüsünün end ine kadar olan yerler çalışacak sonra reset kontrolü yapılacak.
Re: acil cikis
Bu şekilde blokları terketmen normal degil, ama eger çok istiyorsan raise ile exception at ve genel procedure nun içinde bu exception ı yakala. Diger procedurelerin içinde bile olsa, exception olacagından senin try finally bloguna döner.
Gerekmedikçe bunları yapmaman lazım, yapısal programlamada önemli olan blokları uygun şekilde terketmektir.
Basitçe raise Exception.Create('Button Tıklandı'); işini görür.
Gerekmedikçe bunları yapmaman lazım, yapısal programlamada önemli olan blokları uygun şekilde terketmektir.
Basitçe raise Exception.Create('Button Tıklandı'); işini görür.
Re: acil cikis
Kısaca "Abort" kullanabilirsin. "try except end" bloğu içinde olmadığı sürece ana procedure dahil herşeyin dışına gider. Hata mesajı da vermez.
Re: acil cikis
Bende buna benzer bir yöntem kullanıyorum, sistemde döngüler olduğu için tıklanma biraz geç algılacaktır. Çoğu noktaya processmessages eklemekte ayrı bir uğraş. Ben şu şekilde bir yol da izliyorum bazen. Asıl kodlarımı thread içinde çalıştırıyorum. İptal'e basınca thread'ı kapatıyorum. Hızlı şekilde tepki vermiş oluyor.