OpenDialog Döngüsünü ESC veya Cancel Düğmesi ile Durdurmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

OpenDialog Döngüsünü ESC veya Cancel Düğmesi ile Durdurmak

Mesaj gönderen Jire »

Kod: Tümünü seç

//Klasor
Klasor := INI.ReadString('ayarlar','klasor','');

if Klasor ='' then
begin

Repeat
MessageBox(Handle,'dosyayı tespit edin',pchar(Caption),MB_OK+MB_ICONINFORMATION);
Dosya.Execute;
Klasor := ExtractFilePath(Dosya.FileName);
Until ExtractFileName(Dosya.FileName) = const_dosya;

INI.WriteString('ayarlar','klasor', Klasor);
INI.Free;
end;
Burada aslında önemli olan kod değil ama ne olur ne olmaz koydum.
Ben burada yaptığım şey şu:

const_dosya bir exe dosyası ve ben kişiden bu exenin yerini bulmasını istiyorum.
taki adamın seçtiği dosya benim const_dosya ile eşletiğinde döngüyü bitiyor.

bu formun oncreate olayında gerçekleşiyor.
hadi diyelim ki adam çıkmak istedi nasıl yapacak gidipte ctrl+alt+del yapıp process'i kapatcak hali yok heralde :D
işte bu yüzden klavyeden esc'ye yada dialog'tan cancel'a bastığı anda programın kapanmasını istiyorum ama nasıl yapıcam pek bi bilgim yok
yardım ederseniz sevinirim..
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: OpenDialog Döngüsünü ESC veya Cancel Düğmesi ile Durdurmak

Mesaj gönderen vkamadan »

Merhabalar ;
Dosya.Execute;
TOpenDialog nesnesinin Execute Motodu bir fonksiyondur geriye Boolean döndürür, eğer açılan dialog görevini yaparak yani bir dosya seçildikten sonra AÇ tuşuna basarak kapatılırsa TRUE , IPTAL tuşuna basılarak yada pencere kapatma tuşuyla kapatılırsa FALSE döndürür , sizde aşağıudaki gibi bir yapıyla döngüden çıkabilirsiniz ,

Kod: Tümünü seç

if Dosya.Execute then 
  begin
 //geçerli bir dosya seçildiyse
end else 
 begin
 //seçilmeden iptal edildi yada kapatıldıysa
end;
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: OpenDialog Döngüsünü ESC veya Cancel Düğmesi ile Durdurmak

Mesaj gönderen aslangeri »

s.a.
öncelikle seninde bildiğin gibi OpenDialog döngüsü diye bir döngü yok. "OpenDialog Döngüsü" biraz eğreti olmuş.
kodu göndermen de iyi olmuş yoksa ne yapmaya çalıştığını anlamam biraz zor olacaktı.
neyse bir kontrol değişkeni ile sorununu çözebilirsin.
şöyle bişey olacak

Kod: Tümünü seç

var
iptal:boolean
.........
iptal:=false;
repeat
MessageBox(Handle,'dosyayı tespit edin',pchar(Caption),MB_OK+MB_ICONINFORMATION);
if Dosya.Execute then
begin
Klasor := ExtractFilePath(Dosya.FileName);
end else iptal:=True;
Until (ExtractFileName(Dosya.FileName) = const_dosya) or (iptal:=True);
.....
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Jire
Üye
Mesajlar: 167
Kayıt: 07 Eki 2007 01:20

Re: OpenDialog Döngüsünü ESC veya Cancel Düğmesi ile Durdurmak

Mesaj gönderen Jire »

Teşekkür ederim cevaplar için.
Cevapla