oluşturduğum her butonun popupmenusu popfx adlı popupmenu
bunun içerisinde yeniden adlandır diye bir seçenek var
bu yeniden adlandır seçeneğini seçince
butonrename(Sender : Tobject) şeklindeki procedürü çalıştırmaya çalışıyorum
yalnız hangi butondayken popupmenun açıldığını nasıl anlayacağımı bilmiyorum.
çünkü butonrename procedure üne o butonun bilgilerini göndermeme gerekiyorda
popupmenuyü kim açtı
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
popupmenuyü kim açtı
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
Ek olarak Sender olarak sana TMenuItem Gelicektir. Bununda Name'inde Buttonun adını bulabirlirsin.(Sender.Name) hatta buradanda Yani TMenuItem danda PopupMenu yü bulabilirsin.Eğer birden fazla popmenu kullanıp,Itemların clicklerine aynı yere yönlendirdiysen
Kolay gele
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
abicim benim bir tane popup menum var
ama birden çok fazla butonum var.
popupmenüde yeniden adlandır diye bir seçenek var
butona sağ tıklanıp yeniden adlandır dediğim zaman bana sağ tıklana butonun adı lazım.
bunun için popup menunun onpopupda o yeniden adlandırma ile ilgili procedure çağırayım dedim ama olmadı çünkü. onpopup olayında sender olarak Tpopupmenu veriyor bana. ben ise sağ tıklanılan butonu yani Tbutton ı almak istiyorum çünkü procedurümde
(sender as Tbutton).name diye bir özelliğe ihtiyacım var
işte kod da şu şekilde
procedure tform1.sagtiklayan(sender : tobject);
var
butonname : string;
begin
if (sender is tfxbutton) then butonname := (sender as tfxbutton).Name;
showmessage(butonname + ' e sağ tıklandı');
end;
butonların kod ile oluşturulduğu için
buts : array[1..20] of TfxButton;
buts.OnMouseDown := sagtiklayan;
buts.PopupMenu := popbuton;
popbuton popupmenun adı
işte butona SAĞ tıklayınca yada SAĞ TIKLADIKTAN SONRA -> YENİDEN ADLANDIR itemi seçildikten sonra sagtıklayan procedurenün çalışmasını sağlamak istiyorum
ama birden çok fazla butonum var.
popupmenüde yeniden adlandır diye bir seçenek var
butona sağ tıklanıp yeniden adlandır dediğim zaman bana sağ tıklana butonun adı lazım.
bunun için popup menunun onpopupda o yeniden adlandırma ile ilgili procedure çağırayım dedim ama olmadı çünkü. onpopup olayında sender olarak Tpopupmenu veriyor bana. ben ise sağ tıklanılan butonu yani Tbutton ı almak istiyorum çünkü procedurümde
(sender as Tbutton).name diye bir özelliğe ihtiyacım var
işte kod da şu şekilde
procedure tform1.sagtiklayan(sender : tobject);
var
butonname : string;
begin
if (sender is tfxbutton) then butonname := (sender as tfxbutton).Name;
showmessage(butonname + ' e sağ tıklandı');
end;
butonların kod ile oluşturulduğu için
buts : array[1..20] of TfxButton;
buts.OnMouseDown := sagtiklayan;
buts.PopupMenu := popbuton;
popbuton popupmenun adı
işte butona SAĞ tıklayınca yada SAĞ TIKLADIKTAN SONRA -> YENİDEN ADLANDIR itemi seçildikten sonra sagtıklayan procedurenün çalışmasını sağlamak istiyorum
[ F X E R K A N © - E r k a n Ç İ F T Ç İ ]
ewt dedigin sekilde sender a buttonu gecirmek olmuyor
ama aklıma soyle bir sey geldi
mousun tıkladıgın yerdeki koordinatlarını biliyorsun
herhangi bir buton uzerinde sag tıkladıgın zaman
sırayla butonların left-top degerlerini karsılastırarak
hangi buton oldugunu bulabilirsin gibime geliyor
koaly gelsin
ama aklıma soyle bir sey geldi
mousun tıkladıgın yerdeki koordinatlarını biliyorsun
herhangi bir buton uzerinde sag tıkladıgın zaman
sırayla butonların left-top degerlerini karsılastırarak
hangi buton oldugunu bulabilirsin gibime geliyor
koaly gelsin
ÜŞENME,ERTELEME,VAZGEÇME
Ufak bir deneme yaptim ve calisiyor. Saniyorum isinizi gorur. Bos bir forma 2 tane button koyun. bir de Popupmenu . Buttonların popup menusu olarak ta koydugunuz popup menuyu secin.
1. Button'un mousedown eventine su kodu yazin :
Popup menunun de onpopup eventine su kodu yazin.
Kolay gelsin....
1. Button'un mousedown eventine su kodu yazin :
Kod: Tümünü seç
procedure TFRM_MAIN.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbRight then
MenuItem1.Hint:=TButton(Sender).Name;
end;
Popup menunun de onpopup eventine su kodu yazin.
Kod: Tümünü seç
procedure TFRM_MAIN.PopupMenu1Popup(Sender: TObject);
begin
ShowMessage(MenuItem1.Hint);
end;