(source as TListbox) oluyo da(target as TListbox)niye olmuyo

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

(source as TListbox) oluyo da(target as TListbox)niye olmuyo

Mesaj gönderen huseyinkucuk »

Merhabalar. Diyelim ki 5 tane Listbox bileşeni yerleştirdim formuma. Şimdi bunlar arasında DragDrop yaparak satırları birinden alıp öbürüne taşıyorum. Ama maalesef OnDragDrop metodunu hepsi için ayrı ayrı yazmak zorunda kalıyorum. Niye mi?

Şu yüzden: Şimdi DragOver için herhangi birinin DragOver metoduna (source as TListBox) yazıyorum, böylelikle diğer bütün Listbox'lar bu metodu kullanıyor (yani kaynak listbox sürekli değişebiliyo). Ama dragdrop u bütün listboxlar için ayrı ayrı yazmam gerekiyo. Listbox1.add();
Listbox2.add gibi... Hani dedim belki hedef anlamında (Target As TListbox) vardır, denedim, olmadı. Acaba böyle bişey var mı. Varsa bana bu konu hakkında bilgi verebilir misiniz? Hepinize kolay gelsin. Şimdiden teşekkürler...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
sizinde gördüğünüz gibi procedurenin tanımında target isimli bir değişken yok.
sanırım bu noktada yanılıyorsunuz. sizin aradığınız değişken sender sender dragover işleminin çalıştığı listbox source ise taşıdığınız eleman.
kolay gelsin.
birde as operatörü ile işlem yapmadan önce is operatörü ile gelen objenin sizin istediğiniz obje olup olmadığını kontrol etmenizde fayda var. nitekim formda listboxdan başka sürüklenen bi eleman olduğu zaman kod hata üretecektir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
huseyinkucuk
Üye
Mesajlar: 142
Kayıt: 29 Nis 2005 10:03
Konum: İstanbul
İletişim:

teşekkür ediyorum.

Mesaj gönderen huseyinkucuk »

hocam teşekkür ediyorum. Delphi'de yeniyim (anladığınız gibi), o yüzden böyle basit şeylere takılabiliyorum. is operatörünü kullanın demişsiniz nesnenin TListBox olduğunu anlamak için. Hocam kontrol işini dragover'da yapıyorum. (Valla kitapta öyle yazıyo: Zirvedeki Beyinler). Heralde bi problem olmaz. Çok teşekkür ediyorum. Eve gittiğim gibi uygulayım çözümü...
29.04.2005 tarihi itibariyle Delphi öğrenmeye başlayan yeni bir kullanıcı sayılabilirim.
Cevapla