Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
PROGRAMADOR
Üye
Mesajlar: 239 Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir
Mesaj
gönderen PROGRAMADOR » 15 Mar 2015 07:37
Merhaba,
Cxgridde verileri db'den çektikten sonra bir sütun (column) ekliyorum kod ile (Gerçi 4. sıraya eklemek istememe karşın en sona ekliyor, bu da bir sorun benim için).
Süton ekledikten sonra propertiesi lookupcombobox olarak ayarlıyorum. Fakat onchange olayını bi türlü tetikletemedim. Yardımınızı bekliyorum.
Kodum şöyle:
Kod: Tümünü seç
var
col: TcxGridDBColumn;
....
col := mview.CreateColumn;
col.name:='MESLEKADI';
col.Caption:='MESLEK ADI';
col.PropertiesClassName:='TcxLookupComboBoxProperties';
TcxLookupComboBoxProperties(col.Properties).DataController.DataSource:=ds;
TcxLookupComboBoxProperties(col.Properties).ListSource:=lookupds;
TcxLookupComboBoxProperties(col.Properties).KeyFieldNames:='ID';
TcxLookupComboBoxProperties(col.Properties).DataController.MasterKeyFieldNames:= 'MESLEKID'; //master table
TcxLookupComboBoxProperties(col.Properties).DataController.DetailKeyFieldNames := 'ID'; //detail table
TcxLookupComboBoxProperties(col.Properties).ListFieldNames:='MESLEKADI';
TcxLookupComboBoxProperties(col.Properties).ListOptions.ShowHeader:=false;;
TcxLookupComboBoxProperties(col.Properties).OnChange:=comboChange;
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
m_ekici
Kıdemli Üye
Mesajlar: 563 Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:
Mesaj
gönderen m_ekici » 16 Mar 2015 10:48
OnChange yerine onEditValueChanged kullansan daha iyi olmaz mı? Her karakter değiştiğinde OnChange olayına gelecek ve buradaki kodu çalıştıracak. Mouse ile combo seçildikten veya enter tuşuna basıldıktan sonra buradaki değeri almak istiyosan onEditValueChanged de yapsan daha iyi olur. (Eğer amaç buysa, sadece değişikliği algılamak istiyorsan kodu denemek lazım)
iyi çalışmalar
PROGRAMADOR
Üye
Mesajlar: 239 Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir
Mesaj
gönderen PROGRAMADOR » 16 Mar 2015 03:00
onEditValueChanged de yaptım sonuç aynı.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...
SimaWB
Üye
Mesajlar: 1316 Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:
Mesaj
gönderen SimaWB » 16 Mar 2015 04:07
Kod: Tümünü seç
col.PropertiesClassName:='TcxLookupComboBoxProperties';
yerine
Kod: Tümünü seç
col.PropertiesClass := TcxLookupComboBoxProperties;
denediniz mi?
There's no place like 127.0.0.1
PROGRAMADOR
Üye
Mesajlar: 239 Kayıt: 04 Oca 2008 01:53
Konum: Karşıyaka/İzmir
Mesaj
gönderen PROGRAMADOR » 16 Mar 2015 08:11
Merhaba,
Sanırım master detail ilişkisini cxgride yanlış gösterdiğim içim böyle bir hata alıyordum.
Kod: Tümünü seç
LookupTb:=TFDTable.Create(self);
LookupDS:=TDataSource.Create(self);
lookuptb.Connection:= frmMain.Conn;
lookuptb.TableName:=tbiscimeslekleri;
lookupds.DataSet:=lookuptb;
lookuptb.Active:=True;
col :=vwView.Columns[4];
col.Caption:='MESLEK ADI';
col.PropertiesClassName:='TcxLookupComboBoxProperties';
//TcxLookupComboBoxProperties(col.Properties).DataController.DataSource:=ds;
TcxLookupComboBoxProperties(col.Properties).ListSource:=lookupds;
TcxLookupComboBoxProperties(col.Properties).KeyFieldNames:='ID';
TcxLookupComboBoxProperties(col.Properties).DataController.MasterKeyFieldNames:= 'MESLEKID'; //master table
TcxLookupComboBoxProperties(col.Properties).DataController.DetailKeyFieldNames := 'ID'; //detail table
TcxLookupComboBoxProperties(col.Properties).ListFieldNames:='MESLEKADI';
TcxLookupComboBoxProperties(col.Properties).ListOptions.ShowHeader:=false;
TcxLookupComboBoxProperties(col.Properties).OnChange:=comboChange;
Kodu yukarıdaki gibi düzenleyince sorunum kalmadı.
In dubio pro reo...
Şüpheden sanık/özgürlük yararlanır...