Merhaba;
Arkadaşlar, ajanda ve randevu içeren bir program yapmaya çalışıyorum. Saatleri temsil eden 30adet panelim var. Bu panellere ters tıklayarak çıkacak menüden işlem yaptırmak istiyorum fakat hangi panele ters tıkladığımı bulamıyorum. Yardımcı olursanız sevinirim.
İyi akşamlar.
Hangi bileşen tıklandı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Hangi bileşen tıklandı
Merhaba,
Tüm panellerin metodlarını işlemek, tek bir panelin metodlarını işlemek ile aynıdır. Burada kullanmanız gereken TPanel(sender)...
İlk olarak işlemek istediğiniz bir panelin metodunu ele alıp gereken kodları yazdıktan sonra diğer panellerin metodunu yazdığınız bu metoda bağlamalısınız.
Olayın basitçe anlaşılması adına, şöyle basit bir örnek verebilirim ;
- Forma bir adet panel ekleyin, ardından panelin onmousedown metodunu aşağıdaki şekilde düzenleyin.
-Ardından Tasarım ekranında, paneli kopyala yapıştır yaparak istediğiniz sayıda çoğaltın. Ve Projeyi Çalıştırın.
Tüm panellerin metodlarını işlemek, tek bir panelin metodlarını işlemek ile aynıdır. Burada kullanmanız gereken TPanel(sender)...
İlk olarak işlemek istediğiniz bir panelin metodunu ele alıp gereken kodları yazdıktan sonra diğer panellerin metodunu yazdığınız bu metoda bağlamalısınız.
Olayın basitçe anlaşılması adına, şöyle basit bir örnek verebilirim ;
- Forma bir adet panel ekleyin, ardından panelin onmousedown metodunu aşağıdaki şekilde düzenleyin.
Kod: Tümünü seç
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
begin
showmessage(TPanel(sender).Caption);
end;
end;
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Hangi bileşen tıklandı
Teşekkür ederim
Önce panelTag diye bir değişken tanımladım.
bu kod ile ters tıkladığım panelin tag'ını alıp o tag'a göre popupmenu de kullandım.
Biraz dolambaçlı oldu ama işimi gördü.
Teşekkür ederim.
Önce panelTag diye bir değişken tanımladım.
Kod: Tümünü seç
procedure TfMainForm.Panel23MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case Button of
mbRight: panelTag := TPanel(Sender).Tag;
end;
end;
Kod: Tümünü seç
case panelTag of
1:Showmessage('1 nolu panel');
2:Showmessage('2 nolu panel');
3:Showmessage('3 nolu panel');
end;
Teşekkür ederim.