üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Mustafa YILMAZ
Üye
Mesajlar: 14
Kayıt: 02 Oca 2008 04:55
Konum: İstanbul

üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen Mustafa YILMAZ »

üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen hi_selamlar »

S.A.

Kod: Tümünü seç

procedure TForm1.RadioGroup1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   case Button of
     mbLeft :  ShowMessage('Sol tuşa basıldı...');
     mbRight:  ShowMessage('Sağ tuşa basıldı...');
     mbMiddle: ShowMessage('Orta tuşa basıldı...');
   end;
end;

Kolay gelsin..
Herkes cahildir, bazi konularda.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen aslangeri »

s.a.
forma bir tane popupmenu koy
radiogroup un popupmenusunu bu koyduğun menuye bağla.
menuye birtane eleman ekle(bu gerekli olmayabilir)
popupmenunun on popup eventine

Kod: Tümünü seç

radiogroupx.itemindex:=-1;
abort;
yaz
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Mustafa YILMAZ
Üye
Mesajlar: 14
Kayıt: 02 Oca 2008 04:55
Konum: İstanbul

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen Mustafa YILMAZ »

procedure TForm1.RadioGroup1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case Button of
mbLeft : ShowMessage('Sol tuşa basıldı...');
mbRight: ShowMessage('Sağ tuşa basıldı...');
mbMiddle: ShowMessage('Orta tuşa basıldı...');
end;
end;

Object Inspector da RadioGroup MouseDown olayı yok, yukarıdaki kodu yazınca da çalışmıyor, bunu ben de denemiştim, olmamıştı. Form üzerinde 10-15 tane Radiogroup var ve hangisinin sağ üstüne tıklarsan itemindex'i -1 olsun istiyorum.

Popup ile yapılanı da pek anlayamadım, bu kod 10-15 radiogroup u kontrol eder mi
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen aslangeri »

her radio group için ayır bir popup menu koymanız lazım.
ve her popup menunun onpopup olayında kendiradiogroup unu kontrol etmeli.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Mustafa YILMAZ
Üye
Mesajlar: 14
Kayıt: 02 Oca 2008 04:55
Konum: İstanbul

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen Mustafa YILMAZ »

her radiogroup yanına buton koyarak da kod yazılabilir. Ancak amaç başka bileşene gerek olmadan bu nasıl yapılır. Nesne yönelimli program tekniği ile radiogroup miras alınarak mousedown olayı yazılabilir mi?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen aslangeri »

buttonun üzerine sağ tıkladığın zaman radiogroup un üzerindemi sağ tıklamış olacaksın nasıl olacak anlamadım.
Soruyu ilk başta bu şekilde sorsaydınız keşke.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Mustafa YILMAZ
Üye
Mesajlar: 14
Kayıt: 02 Oca 2008 04:55
Konum: İstanbul

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen Mustafa YILMAZ »

soruyu daha açok yazmak gerekiyor sanırım. Örnek ile anlatmaya çalışayım:

Formunuz üzerinde 10 farklı radiogroup olsun. Her radiogroup için itemindex=0 ve itemindex>-1 değerlerine göre belli (şarta bağlı) kod işlettiğinizi düşünün. Kodları yazdınız problem yok. Ancak programın kullanımı sırasında kullanıcının bir radiogroup seçeneğini yanlışlıkla itemindex>-1 olacak şekilde işaretlediği ve bunu geri almak istediğini düşünün. En basit yöntem her radiogroup yanına buton koyarsınız ve her butona kod yazarsınız Fakat bu haricen 10 adet button koymanız anlamına gelir. Bu işi basit bir kod ile çözmek gerek. TMS gibi 3. parti bileşenlerde sanırım radiogroup için mousedown olayı var ve bu olaya "eğer sağ tıklandıysa (Sender as Tradiogroup).itemindex:=-1; yazarak ve diğer radiogroup mousedown olayını bu koda yönlendirerekişi çözersiniz. Ancak can alıcı soru şu : bu işi delphi de bulunan standart radiogroup ile nasıl yaparız?
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen emin_as »

Tam olarak bu radiogroup larin neden kullanıldıgını bilmiyorum ama, basit bir yöntem şu olabilir.

Şöyle bir radiogroup var diyelim:
Tuttugunuz takim:
FB
GS
BJK

Burada seçilmeme durumu için bir kod koymaktansa şöyle de yapabilirsin.

Tuttugunuz takim:
Hiçbiri
FB
GS
BJK

Eger -1 olmasi gerçekten önemliyse de söyle bir kod ekleyebilirsin
i:=Radiogroup1.itemindex-1;

Eger hiçbiri seçildiyse i -1 gelecek, FB = 1, GS= 2, BJK = 3 gibi.
Geliştirmeye çalıştıgın programa uyar mı bilmiyorum, sadece bir fikir.
Mustafa YILMAZ
Üye
Mesajlar: 14
Kayıt: 02 Oca 2008 04:55
Konum: İstanbul

Re: üzerine sağ tıklanan radiogroup.itemindex=-1 nasıl yapılır?

Mesaj gönderen Mustafa YILMAZ »

İlginize teşekkür ederim. Ancak her radiogroup nesnesine 'hiçbiri' seçeneği eklemek, bu radiogroup lar üzerinde yapılan işlemlerde kod hamallığına yol açıyor. Bir ara şunu denedim: Form un mosedown olayına 'sağ tıklandıysa ve aktif bileşen Radiogroup ise aktif radiogroup itemindex değerini -1 yap'. Ama bu da işe yaramadı. Dediğim gibi radiogroup a ait mousedown olayı olsa olay çok basit ama yok!! Ne yapalım biraz daha kafa yoracağız veya gidip TMS gibi component alacağız.
Cevapla