Kun DBGridissä klikataan jotain "solua", miten sen sisällön
saa esim. Edit-kenttään??
Siis klikatun rivin klikattua fieldiä, sen sisältöä.
procedure TForm1.DBGrid1CellClick(Column: TColumn); begin DBEdit1.Text:=column.Field.Value; end;
Mod. korjasi kooditagit!
Nämä molemmat tekee saman,
Edit1.Text:=Column.Field.Value;
Edit1.Text:=DBGrid1.SelectedField.AsString;
mutta kumpikaan ei tee mitään, jos ensimmäinen
klikattava on "ekana oleva alkio", kun ohjelma alkaa.
Eli minun DBGrid näyttää tältä:
123456789
234567890
345678901
456789012
Jos klikkaan 123456789 ei tapahdu mitään.
Kun klikkaan 234567890 homma OK.
Ja sen jälkeen klikkaan 123456789 homma OK.
Eli jos osoitin ei siirry eri "riville" ei homma toimi!??!?
MIKÄ AVUKSI????
Ajetaanko noita edes? Eli laukeaako CellClick tapahtuma jos klikataan jo valittuna olevaa.
Itse tekisin niin, että mitään ei aluksi ole valittuna, tai jos on pakko olla niin sitten laittaisin sen valmiiksi valitun arvon valmiiksi siihen tekstilootaan.
Ei muuten ajeta! Miksiköhän. DBGrid1DblClick kyllä ajetaan.
DBGridin "loota" muuttuu kyllä siniseksi, muuta ei tapahdu.
Mikään ei saa olla valmiiksi valittuna, koska noita DBGridejä on
yhteensä 4 ja kaikista haetaan tieto klikatessa samaan EDIT-kenttään.
jjude kirjoitti:
Mikään ei saa olla valmiiksi valittuna
Kuitenkin sulla on kaikissa dbgrideissä eka rivi valittuna? Kuulostaa epäloogiselta.
(Se rivi muuttuu siniseksi, koska dbgrid saa fokuksen)
Grez kirjoitti:
jjude kirjoitti:
Mikään ei saa olla valmiiksi valittuna
Kuitenkin sulla on kaikissa dbgrideissä eka rivi valittuna? Kuulostaa epäloogiselta.
(Se rivi muuttuu siniseksi, koska dbgrid saa fokuksen)
Tarkoitin sitä, ettei edit-kentällä saa olla arvoa.
Pystyykö tuon DBGridn valintaa edes estämään/säätelemään?
Ainakin Delphi 2009 OnCellClick event noutaa arvon joka kerta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.