devexpress vertical grid

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

devexpress vertical grid

Mesaj gönderen kayipgemi »

S.a. Arkadaşlar

projede kullandığım bir mem (virtual table) tablom var bu tabloyu xml okuyarak dolduruyrum ve bu table yi vertical grid e oluşturuyorum, vertical grid de bilgiler gözüküyor ama
seçtiğim elemana tıklayınca onun değerini okumak istiyorum, şimdiden yardımlarınız için teşekkür ederim
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: devexpress vertical grid

Mesaj gönderen vkamadan »

Merhaba ,

Vertical grid OnCLik olayında "TVerticalGrid.FocusedRow" size seçili satırı verir, eğer editörRow harici tipte row kullandıysanız önce editör row olup olmadığını kontrol edip değeri alabilirsiniz şöyle ;

Kod: Tümünü seç

 if VerticalGrid.FocusedRow is TcxEditorRow then showmessage(TcxEditorRow( VerticalGrid.FocusedRow ).Properties.Value);
Volkan KAMADAN
www.polisoft.com.tr
kayipgemi
Üye
Mesajlar: 88
Kayıt: 14 Kas 2005 03:07

Re: devexpress vertical grid

Mesaj gönderen kayipgemi »

cevabınızla sorun çözüldü, teşekkür ederim, emeğinize yüreğinize sağlık
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: devexpress vertical grid

Mesaj gönderen vkamadan »

Rica ederim.
iyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: devexpress vertical grid

Mesaj gönderen smokie »

vkamadan yazdı:Merhaba ,

Vertical grid OnCLik olayında "TVerticalGrid.FocusedRow" size seçili satırı verir, eğer editörRow harici tipte row kullandıysanız önce editör row olup olmadığını kontrol edip değeri alabilirsiniz şöyle ;

Kod: Tümünü seç

 if VerticalGrid.FocusedRow is TcxEditorRow then showmessage(TcxEditorRow( VerticalGrid.FocusedRow ).Properties.Value);
Merhabalar,

Multieditorrow alanlarda değeri nasıl alabiliyoruz.


teşekkürler
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: devexpress vertical grid

Mesaj gönderen vkamadan »

smokie yazdı: Merhabalar,

Multieditorrow alanlarda değeri nasıl alabiliyoruz.

teşekkürler
Merhabalar ,
Evet MultiEditorRow da durum biraz daha farklı , TcxVerticalGrid.Controller altında Protected olarak tanımlı olan CellIndex property si size focused olan hücre indisini verir sizde bu index i kullanıp MultiEditorRow un gerekli hücresine ulaşırsınız kullanımına şöyle bir örnek verelim ,
ilgili property protected olduğundan OOP kuralları gereği TcxVerticalGrid i miras alan yeni bir sınıf tanımlayın ,

Kod: Tümünü seç

type  TYeniVerticalGrid = class ( TcxVerticalGrid );
sonra aşağıdaki gibi bir yapıyla aktif multieditorRow un aktif hücresinin içeriğini okuyun.

Kod: Tümünü seç

      if VerticalGrid.FocusedRow is TcxMultiEditorRow then
        begin
          showmessage( TcxEditorRowItemProperties ( TcxMultiEditorRow ( VerticalGrid.FocusedRow ).Properties.Editors[ TYeniVerticalGrid(VerticalGrid).Controller.CellIndex ] ).Value );
        end;
Volkan KAMADAN
www.polisoft.com.tr
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: devexpress vertical grid

Mesaj gönderen smokie »

Cavabın için teşekkürler.

İki şey daha sorsam

Seçimlere bağlı kayıt yapmak istiyorum. kayıt işlemi birden fazla tabloyu ilgilendirdiği için,
CxDBVerticalEdit yerine CxVerticalEdit kullanıyorum.

focus anında bilgileri almak yerine
gerekli bilgiler girildikten sonra hücrelerdeki verileri bu şekilde alıyorum.

Kod: Tümünü seç

var
  AValue,AValue2 Variant;
begin
AValue :=  cxVerticalGrid1EditorRow2.Properties.Value;
 AValue2 :=  cxVerticalGrid1MultiEditorRow5.Properties.Editors[0].Value;
Dogrumu yapıyorum, ilerde bir sorun çakışma yaratır mı.
çünkü, verticalgirdde, 2 adet lookupcombobox 3 adet imagecombobox ve calceditler var.
daha önce verticalgrid kullanmadım, denemelerde bir sorun yaratmadı ama insan yinede tırsıyor,
Dogru bir yol izliyorum?

ikinci sorum, hücreye setfocus olayı.

Tekrar Teşekkür ederim..
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Re: devexpress vertical grid

Mesaj gönderen vkamadan »

Merhaba @smokie,

ilk sorunuz için ,
Zaten belirttiğiniz gibi bir durum için focused olan nesnenin değerini almak gereksiz ve hatta iyi yönetilmezse oldukça soruna açık bir yoldur, konuyu açan arkadaşın sanırım amacı farklı direk sorduğu tıklanan nesnenin değerini okumak bizde tıklandığında ilgili nesnenin focused nesne olması özelliğinden yola çıkarak bu gibi sonuçlar ürettik. sizin durumda takip ettiğiniz yöntem doğru olan yöntemdir sorun çıkmaz. fakat Variantlar la çalışırken VarIsNull gibi kavramları kullanmanız ya da korumalı dönüşüm fonksiyonlarına başvurmanız sizi olası olumsuzluklardan koruyacaktır.

örneğin ;
datasette string tipindeki bir alana string bir değerin girileceğini bildiğiniz bir verticalgrid rowundan atama yaparken VarToStr() fonksiyonu içinde değeri okuyun çünkü eğer değer girilmemişse yani Variant boşsa kırılma oluşacaktır ilgili fonksiyon variant boşsa boş String döndürecektir.

diğer sorunuz ;

Kod: Tümünü seç

TcxVerticalGrid.FocusRow(ARow : TcxCustomRow ; ACellIndex : Integer = 0)
metodu mevcuttur , focus olmak istediğiniz editorRow yada MultiEditorRow u verebilir, eğer MultiEditorRow veriyorsanız ihtiyaca göre ikinci parametreye de hücre indexini belirtebilirsiniz.

İyi çalışmalar.
Volkan KAMADAN
www.polisoft.com.tr
smokie
Üye
Mesajlar: 72
Kayıt: 01 Tem 2007 10:26

Re: devexpress vertical grid

Mesaj gönderen smokie »

Cevapların için çok mu çoook Teşekkür ederim.

İyi Çalışmalar Dilerim..
Cevapla