Nesnenin onDock olayını nasıl anlar ve sonladırabilirim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Nesnenin onDock olayını nasıl anlar ve sonladırabilirim

Mesaj gönderen kahraman1285 »

Mrb.

TrzLabel ve Tcxİmage neseneleri bulunan bir formum var burada nesnelerin özellikleri şunlar

Kod: Tümünü seç

Dragkind : dkDock
Drag mode : dmManual
ve şu kodla dock olayı başlıyor
If Button=mbleft Then
  begin
  (sender as trzlabel).BeginDrag(true);
  end;
Resim
bu noktada ben programda bi işlem yapmadan önce herhangibir nesnenin dock olyında olup olmadığını kontrol edip,eğer dock görünümünde nesne varsa onu dkdock olayını sonlandırmak istiyorum...

Teşekkürler...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Sorunu anlamadım... :oops:

- Kullanıcı bir nesneyi BeginDrag durumunda iken başka hangi unsur gerkçesiyle programın bunu sonlandırcak. Timer, ServerClient TCP tetikleme, Windows WM_ Mesajı vs. gibi üçüncü durum varsa bunu ifade eder misin ?

- Eğer bir tetik durumu varsa yapacağın işlem CancelDrag(); komutu vermek. Sorunun çözümü bu olmalı ?!
Resim
Resim ....Resim
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Hocam biraz karışık anlattım sanırım.
Form üzerinde kullandığım TrzLabel ve Tcxİmage nesneleri dockable yapılabiliyor yani fare ile form üzerinde yerleri değiştirilebiliyor.

Ben program kapanırken bu nesnelerin left ve top özelliklerini bi ini dosyasında saklıyorum.

Ancak eğer bu neslerden biri "Floatting" durumunda ise o nesnenin left ve top özelikleri 0,0 oluyor. ben bunu engellemek için 2 şey yapabilirim.

1.tüm nesnelerin Floating özelliklerini kontrol edip eğer True ise kullanıcıya uyarı ile bu durumu düzelttirmek (ama ben bunu tercih etmedim).

2.Tüm nesneleri kontrol ederek Floatıng durumunda olanları eski haline getirerek left top özelliklerinin kaydedilmesini sağlamak.(Left ve Top özelliklerini TcxProperties Store komponentine kod yazmadan yaptırıyorum)

kullandığım TcxPropertis store Komponenti floatıng durumunda olan nesnenin left ve top özellikerini 0 ,0 görüyor.O yüzden Floatıng durumundaki nesneyi eski haline getirmeliyim.(Bu arada Floatıng özelliği read only)

Teşekkürler...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Şimdi oldu... :idea:

- Yapacağın şey basit, floating özelliği kalktığı her durumda bileşenlerin son durumlarını global değişkenlerde veya global bir liste / array vb. içeriğinde saklarsan, onclose olayında bişey kapatmaya ihtiyacın olmaz.

- Bu durumda kapanana kadar alınmış en son değerleri direkt kaydedersin.
Resim
Resim ....Resim
Cevapla