Arkadaşlar Selam,
Sürükle bırak işlemleri hakkında bilgi edinebileceğim bir Delphi örneği bilen varmıdır. Arama sonucunda bir cevabın içinde bir arkadaşımız bahsetmiş ama programın yerini ve adını vermemiş.Bilen arkadaşlar dan yardım eceklere şimdiden teşekürler.
Saygılarımla,
Sürükle Bırak işlemini anlamak için bir örnek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Sürükle Bırak işlemini anlamak için bir örnek
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
kim Millete hizmet ederse,
o milletin efendisidir."
Sürükle bırak en basit anlatımı
1. İki çeşit sürükleme vardır. Manual ve Automatic
Nesnenin dragmode özelliği ayarlanır.
2. Label'in Properties'inden DragMode özelliği Automatic seçilir.
3. Üstüne sürüklenen nesnenin dragover olayındaki accept true olacak. Yani statictext'in event bölümünde;
Accept:=True;
4. Sonra sürüklenen yerde ondragDrop olayı oluşur.
5. Kendi üzerine birşey sürüklenen nesnenin sürükleme işlemi devam ederken onDragDop olayı oluşur.
DragDrop : Çekti buraktı,
DragOver : Çekti dolaştırdı.
6. StaticText'in ondragDrop olayına yazılacak kod;
StaticText1.color:=(source as Tlabel).color;
Çalışma 3-1
Yukarıdaki uygulamada; edit1.text içindeki yazı label'lerin üzerine sürüklendiğinde label'lerin caption özelliğine kopyalansın.
Yapılacak İşlemler
1. edit1'in DragMode olayı dmAutomatic yapılır. (properties)
2. Label1'in onDragOver olayına Accept:=True; kodu yazılır:
3. Label1'in onDragDrop olayına Label1.caption:=edit1.text kodu yazılır.
Ama burda sadece bir label için oldu. Biz bütün Label'ler için olmasını istiyorsak eğer;
(sender as Tlabel).caption:=(source as Text).text; kodu yazılır.
Sender : Olayın meydana geldiği yer.
edit1.text:=(sender as Tbutton).caption;
Nesnenin dragmode özelliği ayarlanır.
2. Label'in Properties'inden DragMode özelliği Automatic seçilir.
3. Üstüne sürüklenen nesnenin dragover olayındaki accept true olacak. Yani statictext'in event bölümünde;
Accept:=True;
4. Sonra sürüklenen yerde ondragDrop olayı oluşur.
5. Kendi üzerine birşey sürüklenen nesnenin sürükleme işlemi devam ederken onDragDop olayı oluşur.
DragDrop : Çekti buraktı,
DragOver : Çekti dolaştırdı.
6. StaticText'in ondragDrop olayına yazılacak kod;
StaticText1.color:=(source as Tlabel).color;
Çalışma 3-1
Yukarıdaki uygulamada; edit1.text içindeki yazı label'lerin üzerine sürüklendiğinde label'lerin caption özelliğine kopyalansın.
Yapılacak İşlemler
1. edit1'in DragMode olayı dmAutomatic yapılır. (properties)
2. Label1'in onDragOver olayına Accept:=True; kodu yazılır:
3. Label1'in onDragDrop olayına Label1.caption:=edit1.text kodu yazılır.
Ama burda sadece bir label için oldu. Biz bütün Label'ler için olmasını istiyorsak eğer;
(sender as Tlabel).caption:=(source as Text).text; kodu yazılır.
Sender : Olayın meydana geldiği yer.
edit1.text:=(sender as Tbutton).caption;
"Millete efendilik olmaz,hizmet olur,
kim Millete hizmet ederse,
o milletin efendisidir."
kim Millete hizmet ederse,
o milletin efendisidir."
Re: Sürükle Bırak işlemini anlamak için bir örnek
Bu konu, yeni nesil için önem teşkil ettiğinden ben de somut bir örnekle katkıda bulunmak istedim; Kim bilir, belki kendi kütüphanemde bulamazsam bu foruma bakarım
Umarım yeni nesle yardımcı olur.
Aşağıda bir TListBox ve bir TMemo nesnesi arasındaki sürükle bırak işlevinin nasıl işlediğine yönelik örnek yer alıyor. Bu örneği çalıştırmadan önce formunuzda bazı düzenlemeler yapmalısınız

Aşağıda bir TListBox ve bir TMemo nesnesi arasındaki sürükle bırak işlevinin nasıl işlediğine yönelik örnek yer alıyor. Bu örneği çalıştırmadan önce formunuzda bazı düzenlemeler yapmalısınız
- Formunuza bir TListBox ve bir TMemo yerleştirmelisiniz
Formunuzdaki TListBox nesnesinin DragMode parametresini dmAutomatic yapmalısınız
Formunuzdaki TMemo nesnesinin OnDragOver olayına aşağıdaki kodu yazmalısınızKod: Tümünü seç
procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin { Eğer kaynak bir TListBox ise işlemi Kabul et. } Accept := (Source is TListBox); { Parantez içindeki değer sonuç olarak TRUE veya FALSE değerini üretir... } end;
- Formunuzdaki TMemo nesnesinin OnDragDrop olayına ise aşağıdaki kodu yazmalısınız;
Kod: Tümünü seç
procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer); begin { Kaynağın türü bir TListBox ise; } if (Source is TListBox) then begin { Olayı tetikleyen bir TMemo nesnesi ise; } if (Sender is TMemo) then begin { TMemo üzerinde farenin konumu (X ve Y)'na denk gelen yeri tespit et. } TMemo(Sender).SelStart := LoWord(TMemo(Sender).Perform(EM_CHARFROMPOS, 0, MakeLParam( X, Y))); { Kaynaktan gelen veriyi yapıştır. } TMemo(Sender).SelText := TListBox(Source).Items[TListBox(Source).ItemIndex]; end; end; end;