Delphi Can

Orjinalini görmek için tıklayınız: Formu üsteki çarpıdan veya komut ile kapatma
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2
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.

Screenshot_1.jpg

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ı Sad İş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
Merhaba.

- @ssahinoglu uygun olur diye bekledim, soru açık kalmasın; Windows Mesajlarını takip etmek için şahsen de çok beğendiğim MS SpyPlusPlus programdır. Bu GitHub linkten indirebilirsiniz.

qbjzonprm84mvicfvhgz.png
Sayfalar: 1 2