cxgridde bazı satırları read-only yapma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
cxgridde bazı satırları read-only yapma
arkadaşlar cxgrid üzerinde bazı satırların sadece görülmesini yani read only olarak kalmasını istiyorum bunu nasıl yaparım denemiş arkadaşar var mı . örn. bir isim listesi çıkacak ama durumu 1 olanlar üzerinde seçim değişiklik yapımasını engelleyeceğim. teş.ettim
.net icat oldu mertlik bozuldu
Merhaba,
Lazım olmadığından denemedim ama şöyle bir vt siz cxgrid koyduğumda ve colonlarını oluşturduğumda ilgili kolonun propertisini textedit olarak ayarlayınca propertie özelliklerinde readonly özelliği kullanılabilir hale geliyordu. sizde grid gösterildiğinde if şartı ile ilgili alanda 1 olan varsa gridin ilgili kolonunu readonly yapabilirsiniz.
gibi. kolay gelsin
Lazım olmadığından denemedim ama şöyle bir vt siz cxgrid koyduğumda ve colonlarını oluşturduğumda ilgili kolonun propertisini textedit olarak ayarlayınca propertie özelliklerinde readonly özelliği kullanılabilir hale geliyordu. sizde grid gösterildiğinde if şartı ile ilgili alanda 1 olan varsa gridin ilgili kolonunu readonly yapabilirsiniz.
Kod: Tümünü seç
if falan alan =1 ise
gridin ilgili kolonunu.properties.readonly:=true;
end;
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Gridde satır bazlı read only
gridim bir vt ye baglı öncelikle bunu belirteyim. örneklememi yenileyim arkadaşlar. mesela seri numaraları listesi gelecek ekrana ama kullanılmış olanlar satır bazında pasif olacak yani görülecek ama seçilemeyecek
.net icat oldu mertlik bozuldu
gridin bağlı olduğu dataset ya da querynin afterscroll olayına kod yaz bence. after scrollda ilgili alanın değerini kontrol ettir. bu kontrol sonucuna göre readonly'yi true ya da false yaparsın.
@bobasturk yakın bir cevap vermiş ama o kolon bazında ele almış olayı.
sizin sorununuz ise satır bazında readonly olması.
aşağıdaki kod işinize yarar umarım.
@bobasturk yakın bir cevap vermiş ama o kolon bazında ele almış olayı.
sizin sorununuz ise satır bazında readonly olması.
aşağıdaki kod işinize yarar umarım.
Kod: Tümünü seç
procedure TData.arazi_srgAfterScroll(DataSet: TDataSet);
begin
try
begin
if araziisaretli.text='1' then
rxdbgrid1.readonly:=true;
else rxdbgrid1.readonly:=false;
end;
except end;
end;
merhaba,
@nitro ustam doğru söylersin. bende az önce yanlış yaptığımı anlamış ve foruma girip birdaha bakayım demiştim ve yanlışımı gördüm teşekkürler.
yalnız benimde kafama takıldı bu durumda tüm grid readonly olmazmı. belirli satırların read only olması gerekiyor sanırım.
kolay gelsin
@nitro ustam doğru söylersin. bende az önce yanlış yaptığımı anlamış ve foruma girip birdaha bakayım demiştim ve yanlışımı gördüm teşekkürler.
yalnız benimde kafama takıldı bu durumda tüm grid readonly olmazmı. belirli satırların read only olması gerekiyor sanırım.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

hocam dediğiniz gibi tüm grid readonly olur. ama bu readonly olayı veritabanındaki değere göre anlık değişeceği için kullanıcı bu farkı anlayamaz ve gözlemleyemez.
mesela değeri 1 olan bir satırdayız, grid o durumda readonly:=true olacak ve değişiklik yapamayacağız. daha sonra değeri 0 olan bir satırı tıkladık diyelim, afterscroll'a yazdığımız kod gridi readonly:=false yapacak ve satırda değişiklik yapabileceğiz
umarım anlatabilmişimdir.
mesela değeri 1 olan bir satırdayız, grid o durumda readonly:=true olacak ve değişiklik yapamayacağız. daha sonra değeri 0 olan bir satırı tıkladık diyelim, afterscroll'a yazdığımız kod gridi readonly:=false yapacak ve satırda değişiklik yapabileceğiz

umarım anlatabilmişimdir.
merhaba,
ustam teşekkür ve saygılarımla. konuyu böyle algılamamıştım. yani scroll olayı olsada grid readonly olarak açılacak ve öyle kalacak düşüncesi hasıl olmuştu.
tekrar teşekkürler kolay gelsin
ustam teşekkür ve saygılarımla. konuyu böyle algılamamıştım. yani scroll olayı olsada grid readonly olarak açılacak ve öyle kalacak düşüncesi hasıl olmuştu.
tekrar teşekkürler kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Re: cxgridde bazı satırları read-only yapma
mustafa hocam affınıza sığınarak konunun algılanması konusunda ufak bir hatırlatma yapıyorum.
biLaL türk
saygılarımlarahim123 yazdı:...... satırların sadece görülmesini yani read only olarak kalmasını istiyorum ....
biLaL türk
- kadirkurtoglu
- Üye
- Mesajlar: 748
- Kayıt: 22 May 2005 01:20
- Konum: Uzakta Görünen Tepeden...
Kod: Tümünü seç
cxGrid1DBTableView1.OptionsSelection.MultiSelect := true;
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.
Mevlana
OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
ışığında hiç bir şey kaybetmez.
Mevlana
OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
hocalar ayak oyunları iyide
peki read-only false olan satırların renginide değiştirmek istesem ne halt etçem ?? 

.net icat oldu mertlik bozuldu
kendi programımda kullandığım bir kodu gönderiyorum. kendi programına göre düzenlersen işini görür. Bu kodu söz konusu grid'in drawcolumncell eventine yazıyorsun.
bu kod dbgridde onay fieldi boş olmayan satırları maviye boyuyor.
kolay gelsin
Kod: Tümünü seç
procedure Ttaksit_kart.RxDBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if taksit_kart.rxdbgrid1.DataSource.DataSet.FieldByName('onay').text<>'' then
begin
taksit_kart.rxdbgrid1.canvas.Brush.Color:= clskyblue;
taksit_kart.rxdbgrid1.Canvas.FillRect(rect);
taksit_kart.rxdbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
kolay gelsin