dbgrid de seçilen hücrenin editte gösterimi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
dbgrid de seçilen hücrenin editte gösterimi
formda aradım bulamadım verildi ise affola
edit1.text:=dbgrid1.columns.grig.fields[1].text;
edit1.text:=dbgrid1.columns.grig.fields[1].text;
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: dbgrid de seçilen hücrenin editte gösterimi
gridin bağlı bulunduğu datasource'nin onchange olayına
edit1.text:=tableALAN_ADI.ASstring ;
yazın yeterli.
edit1.text:=tableALAN_ADI.ASstring ;
yazın yeterli.
Re: dbgrid de seçilen hücrenin editte gösterimi
Merhaba
DBGrid'in hangi datasate'e bağlı olduğunu hatırlamak zorunda olmak istemiyorsn ( olur ya onlarca veritabanı tablosu, bir okadar da DBgrid ve DataSource ) şu şekilde deneyin. Örneğimizde DBGrid1 olarak verdim.
DBGrid'in hangi datasate'e bağlı olduğunu hatırlamak zorunda olmak istemiyorsn ( olur ya onlarca veritabanı tablosu, bir okadar da DBgrid ve DataSource ) şu şekilde deneyin. Örneğimizde DBGrid1 olarak verdim.
Kod: Tümünü seç
Var
Veri : String;
begin
With DBGrid1 do
Veri := DataSource.DataSet.FieldByName( Columns[0].FieldName ).AsString;
ShowMessage(Veri);
end;
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: dbgrid de seçilen hücrenin editte gösterimi
Benzeri bir durumu bir projemde kullandım. Gridde üzerinde bulunulan kayıt değerini aşağıdaki kodla yazmışım. label1 yerine edit kullanılabilir.
Kod: Tümünü seç
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
if Sender is TDBGrid then with TDBGrid(Sender) do begin
if Assigned(SelectedField) then
if SelectedField.IsNull then label1.Caption:='Null'
else label1.Caption:=SelectedField.AsString
else label1.Caption:='Yok'
end;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: dbgrid de seçilen hücrenin editte gösterimi
Buda güzel bir yöntem. Gridin DrawColumnCell özelliğine yazabilirsiniz.
If (gdSelected in state) then // eğer seçili ise
begin
DBGrid1.Canvas.Brush.Color := $00FD959C; // zemin rengi
DbGrid1.Canvas.Font.Color := clYellow; // font rengi
Edit1.Text:=dbgrid1.Fields[1].Text;
end
Re: dbgrid de seçilen hücrenin editte gösterimi
@F.Atagun bu riskli bir yöntem.
Riski şurada, sen mouse'u DBGrid'in ilgili alanı üzerinde dolaştırıken, form/grid yeniden boyutlandırılırken, öne başka form gelir sonra arkadaki grid içeren form yeniden görüntülenirken... KISACA grid renk boyama işleminde herhangi bir şekilde değşiklik olduğunda EDIT içindeki text defaten değiştirilmeye çalışılır.
EDIT içine giriş yapılırken değerlerin eski değere dönmesi her zaman memnuniyet getiren bir uygulama olmaz. Bu nedenle DRAW olaylarını sadece boyama / çizim işlerine bırakmakta fayda var diye altını çizmek istiyorum.
Riski şurada, sen mouse'u DBGrid'in ilgili alanı üzerinde dolaştırıken, form/grid yeniden boyutlandırılırken, öne başka form gelir sonra arkadaki grid içeren form yeniden görüntülenirken... KISACA grid renk boyama işleminde herhangi bir şekilde değşiklik olduğunda EDIT içindeki text defaten değiştirilmeye çalışılır.
EDIT içine giriş yapılırken değerlerin eski değere dönmesi her zaman memnuniyet getiren bir uygulama olmaz. Bu nedenle DRAW olaylarını sadece boyama / çizim işlerine bırakmakta fayda var diye altını çizmek istiyorum.
Re: dbgrid de seçilen hücrenin editte gösterimi
Teşekkürler Hocam,
Bu detay bilgiyi bilmiyordum
Bu detay bilgiyi bilmiyordum
Re: dbgrid de seçilen hücrenin editte gösterimi
mrmarman yazdı:Merhaba
DBGrid'in hangi datasate'e bağlı olduğunu hatırlamak zorunda olmak istemiyorsn ( olur ya onlarca veritabanı tablosu, bir okadar da DBgrid ve DataSource ) şu şekilde deneyin. Örneğimizde DBGrid1 olarak verdim.
Kod: Tümünü seç
Var Veri : String; begin With DBGrid1 do Veri := DataSource.DataSet.FieldByName( Columns[0].FieldName ).AsString; ShowMessage(Veri); end;
Merhaba, verdiğiniz kodu biraz değiştirdim ama beceremedim

Kod: Tümünü seç
Var
Veri : String;
begin
With DBGrid1 do
Veri := DataSource.DataSet.FieldByName(Columns[0].FieldName).AsString;
if Veri='3' then
ShowMessage('Evet');
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: dbgrid de seçilen hücrenin editte gösterimi
Bu işi grid kullanmadan çok basit bir yolla halledebilirsiniz. İlgili alanın onGetText olayınakodunu yazmayı denemelisiniz.
Kod: Tümünü seç
procedure TForm1.Table1DenemeGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.AsString='3' then
Text :='Evet';
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: dbgrid de seçilen hücrenin editte gösterimi
Hayırlı Geceler!
Gün içerisinde baya aradım, googledande araştırdım ancak bulamadım, en yakın bu topic de buldum ancak istediğim şekilde değil, combobox kullanıyorum,
Yukarıdaki 5 farklı şekilde de denediğimde DBGridde 2 veya daha fazla kayıt var ise en üstteki kayıdı veriyor, ben edit2 ye girilen bir kaydı "bul" isimli butona basarak aratıyorum dbgridde kalan değerler için combobox1.text alanına, DBgrid de bir alt satıra indiğimde ilgili satırdaki istediğim alanın bilgisinin gelmesini istemekteyim. yardımcı olabilir misiniz?
Gün içerisinde baya aradım, googledande araştırdım ancak bulamadım, en yakın bu topic de buldum ancak istediğim şekilde değil, combobox kullanıyorum,
Kod: Tümünü seç
combobox1.Text:=dbgrid1.DataSource.DataSet.FieldValues['MAĞAZA ADI'];
combobox1.Text:=dbgrid1.DataSource.DataSet.FieldByName('MAĞAZA ADI').Value;
with dbgrid1 do
combobox1.Text:= dbgrid1.Fields[3].Value;
combobox1.Text:= DataSource.DataSet.FieldByName( Columns[3].FieldName ).AsString;
combobox1.text:=dbgrid1.columns.grid.fields[3].text;
Re: dbgrid de seçilen hücrenin editte gösterimi
Merhaba, acaba ComboBox nesnesinin Style özelliği csDropDown veya csSimple dışında bir değere ayarlanmış olabilir mi?
Re: dbgrid de seçilen hücrenin editte gösterimi
csdropdown style özelliği üstadım
Re: dbgrid de seçilen hücrenin editte gösterimi
Kod: Tümünü seç
rocedure TForm28.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
combobox1.Text:=dbgrid1.DataSource.DataSet.FieldValues['MAĞAZA ADI'];
end;
procedure TForm28.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
combobox1.Text:=dbgrid1.DataSource.DataSet.FieldValues['MAĞAZA ADI'];
end;

Re: dbgrid de seçilen hücrenin editte gösterimi
Bu yazdığınız iki adet prosedürü DataSource.OnDataChange() olayına aşağıdaki şekilde dönüştürebilirsiniz. Aşağıdaki örnek kodda kullanılan TypeSafe ".AsString" ifadesinin yardımı ile boş kayıtlarda da sorun yaşamamanız gerekli.
Ayrıca kullanıcı fare ile kayıtlar arasında dolaştığı zaman da bilgiler ComboBox içinde güncel olarak gösterilecektir.
NOT: Yukarıdaki kodu kullanır iken kendi yazdığınız iki adet prosedürü silmeli/kapatmalısınız
Ayrıca kullanıcı fare ile kayıtlar arasında dolaştığı zaman da bilgiler ComboBox içinde güncel olarak gösterilecektir.
Kod: Tümünü seç
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
// Eğer bilgi girişi/değişikliği yapılmayan bir Grid/DataSet ise bu kontrole gerek yoktur
if DataSource.State = dsBrowse then
begin
ComboBox1.Text := DBGrid1.DataSource.DataSet.FieldByName('MAĞAZA ADI').AsString;
end;
end;
Re: dbgrid de seçilen hücrenin editte gösterimi
Teşekkür ederim ilginiz için, bu daha iyi oldu,