delphi ile yeni 2 haftadır uğraşıyorum
sitenizden ve diğer kaynaklardan oldukça fazla bilgi topladım
kendimi biraz daha geliştirebilmek için ufak projeler yapmaya çalışıyorum
ancak kod yazma hammallığından kurtulmak için delphinin ve sizlerin tavsiyeleri üzerine procedure yazmak daha mantıklı geliyor
bu örnek benim diğer kullanacağım özellikler için anahtar niteliğinde
sorum şu ;
form1 : mdiform
form2,form3,form4 vs. mdichild form
ben tüm formların formclose eventına
var
x:Integer;
begin
x:=MessageDlg('Form Kapanacak Eminmisiniz?',mtConfirmation,[mbYes,mbNo],0);
if x=6 then
begin
Action:=caFree ;
Main_Frm := nil;
end
else
Action:=caNone;
end;
yazıyorum bundan sonraki formlarda da bunları yazmak çok mantıklı gelmiyor aklıma parametreler diye bir form düzenleyip bir checkbox koyarak eğer checkbox işaretli ise bu soruları sormaya devam etsin değilse soru sormadan kapatsın
ve ben sadece formların formclose eventına bu procedure'yi ekleyeyim
umarım anlatabilmişimdir
sorum hangi formdan geldiğini nasıl tespit edeceğim (sender ile olacağını tahmin ediyorum procedure içinde nasıl kullanacağım)
procedure nasıl yazacağım
delphi kitabına göre ufak bir şöyle birşey yapmaya çalıştım ama algoritma yeterli olmadığından tıkanıp kaldım
procedure x_kapat;
var
xkapat:integer;
begin
begin
xkapat:=MessageDlg('Form Kapanacak Eminmisiniz?',mtConfirmation,[mbYes,mbNo],0);
if x=6 then
begin
Action:=caFree ;
hangiform?? := nil; // nereden geldi
end
else
Action:=caNone;// hangiform için??
end;
form kapatırken global procedure kullanmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- mustafasoy
- Üye
- Mesajlar: 154
- Kayıt: 02 Ağu 2013 05:00
- Konum: istanbul
- İletişim:
form kapatırken global procedure kullanmak
Nasıl ki Soru sorarak öğrendiyseniz , öğrendiklerinizi cevap vererek öğretiniz.
-
- Üye
- Mesajlar: 239
- Kayıt: 04 Oca 2008 01:53
- Konum: Karşıyaka/İzmir
Re: form kapatırken global procedure kullanmak
procedure içine form parametresi atamalısın.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
Şüpheden sanık/özgürlük yararlanır...
Re: form kapatırken global procedure kullanmak
FormCloseQuery ile yapabilirsin.
İlk formun FormCloseQuery sini bu şekilde hazırlayıp, diğer formların OnShow'una
Kod: Tümünü seç
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin // KapatSorma global değişken olarak tanımlanıp parametre formundan sor / sorma şeklinde değer atanabimeli. True / False yani.
if KapatSorma or (MessageDlg('Form Kapanacak Eminmisiniz?',mtConfirmation,[mbYes,mbNo],0) = idYes) then
begin
CanClose := True;
Self := nil; // Owner := nil; // de olabilir.
Action:=caFree;
end
end;
Kod: Tümünü seç
procedure TForm1.FormShow(Sender: TObject);
begin
FormCloseQuery := Form1.FormCloseQuery;
end;
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!