Herkese merhabalar ,
Öğrenmek istediğim birşey var çok basit olabilir emin değilim ama ben beceremedim yani dolaylı olarak yapıyorum ama doğrusunu da öğrenmek istiyorum eğer öyle birşey mümkünse ,
Yapmak istediğim şu formun üzerindeki "x" işaretine basıldığında veya form kodla kapatıldığında bu iki durumu birbirinden ayırmak istiyorum ,
bunu şu anda bir değişkeni true / false yaparak kontrol ederek yapmaya çalışıyorum ama bazen o da sorun olabiliyor ,
özetlersek yukarıdaki çarpı butonundan kapattığımızda farklı aşağıdaki butondan kapattığımızda farklı bir mesaj versin istiyorum, Aslında bu ikisini ayırmak istiyorum.
umarım anlatabilmişimdir.
herkese çok teşekkür ediyorum.
OnCloseQuery evet'ını inceleyin hocam
cevabınız için teşekkür ederim , aslında onlarla ilgili baya bir deneme yaptım ama pek bir işe yaramadı

İşe yaramadı demiyelim belkide yapılıyor ama ben beceremedim.
Selamlar,
Anlatabilmek adına forma bir tane edit, bir tane buton koyun.
Kodları şu şekilde yapılandırabilirsin.
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text := 'buton';
close;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if edit1.Text = 'buton' then
begin
showmessage('butondan kapatıldı');
end
else
showmessage('program çarpıdan kapatıldı');
end;
(07-02-2019, Saat: 16:16)wiseman Adlı Kullanıcıdan Alıntı: [ -> ]Selamlar,
Anlatabilmek adına forma bir tane edit, bir tane buton koyun.
Kodları şu şekilde yapılandırabilirsin.
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text :='buton';
close;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if edit1.Text = 'buton' then
begin
showmessage('butondan kapatıldı');
end
else
showmessage('program çarpıdan kapatıldı');
end;
teşekkür ederim , yukarıda da belirtiğim gibi bende değişkeni "true" / "false" yaparak bunun kontrolünü sağlıyorum ama istediğim formun üstündeki çarpıya basılıp basılmadığını anlamak. Yinede ilginiz için çok teşekkür ediyorum.
FormClose'daki Sender parametresini kullanabilirsiniz belki.
İlk aklıma gelen sistem mesajlarına odaklanmak oldu..
private
procedure WMSysCommand(var MSG: TWMSysCommand); message WM_SYSCOMMAND;
{ Private declarations }
procedure TForm1.WMSysCommand(var MSG: TWMSysCommand);
begin
if MSG.CmdType = SC_CLOSE
then ShowMessage(' Köşedeki çarpıdan kapatıldı... ');
inherited;
end;
Üstteki cevaplar çok güzel.
Hepsini alternatif olarak bilip gerektiği yerde kullanmak iyidir.
Mrmarman üstadımızın cevabına ek olarak mesaj sürecini görmek de faydalı olacaktır.
(07-02-2019, Saat: 19:43)ssahinoglu Adlı Kullanıcıdan Alıntı: [ -> ]Üstteki cevaplar çok güzel.
Hepsini alternatif olarak bilip gerektiği yerde kullanmak iyidir.
Mrmarman üstadımızın cevabına ek olarak mesaj sürecini görmek de faydalı olacaktır.
Sırası ile Win. mesajlarını siz yakalayıp ekran görüntüsü mü aldınız, eğer öyle ise profileri öğrenmek isterim