DBGrid jak odwołać się do konkretnej komórki

0

Witam

Mam problem z odwołaniem do konkretnej komórki w tabeli DBGrid.

w StringGrid miałem np:

Edit1.text:= StringGrid1.Cells[1,1];

tu zwraca mi zaznaczony wiersz z 3 kolumny:

Edit1.Text:=dbGrid1.Fields[3].AsString;

a jak odwołać się konkretnie do 3 kolumny i 3 wiersza.

1

DBgrid jest kontrolką wizualizającą dane z dataseta, i sam jako taki nie przchechowuje żadnych danych.
Informacji musisz szukać w datasetcie
np.

myStr:=myDataset.fieldbyname('anyField').asstring

myStr:=myDbgrid.datasource.dataset.fieldbyname('anyField').asstring

https://docwiki.embarcadero.com/Libraries/Sydney/en/Data.DB.TDataSet

0

Dbgrid nie przechowuje danych mysisz sie odwolqc do dataset czyli quety.locate ustawiasz na odpowiednim wierszu/rekordzie i po prostu fieldbyname aby odwołać się do właściwej kolumny

0

Zrobiłem coś takiego, działa i zwraca mi wartość komórki ale w DBGridzie zaznacza mi ją idzie to jakoś wyłączyć

datasource1.dataset.RecNo:=3;
Edit1.Text:=DataSource1.DataSet.FieldByName('Nazwa').asstring;
2

musisz najpierw zapamiętać numer zaznaczonego rekordu a później do niego wrócić, np;

var
  rno: Integer;
begin
  rno := DataSource1.DataSet.RecNo;
  DataSource1.DataSet.DisableControls;
  DataSource1.DataSet.RecNo := 3;
  Edit1.Text := DataSource1.DataSet.FieldByName('Nazwa').AsString;
  DataSource1.DataSet.RecNo := rno;
  DataSource1.DataSet.EnableControls;
end;
0

@Paweł Dmitruk
Masz rację. Tylko taki kod może doprowadzić użytkownika do oczopląsu.
Po ustawieniu DataSource1.DataSet.RecNo := rno; grid może się nieco "przescrollować"

1
grzegorz_so napisał(a):

@Paweł Dmitruk
Masz rację. Tylko taki kod może doprowadzić użytkownika do oczopląsu.
Po ustawieniu DataSource1.DataSet.RecNo := rno; grid może się nieco "przescrollować"

TDataSet.DisableControls kiedyś się używało

0

TDataSet.DisableControls kiedyś się używało

I dale się używa :) Ale to nie niweluje "oczopląsu" i scrollowania Grida.
Mam kod który to eliminuje. I postaram się go wkleić

1 użytkowników online, w tym zalogowanych: 0, gości: 1