Poslao: 08 Mar 2006 00:17
|
offline
- Peca

- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
Ajde da pokusamo ovog nekadasnjeg Delphi programera da rehabilitujemo
Radim u Lazarusu.
Kada neko polje u DBGrid tabeli izmenim, hocu da imam neki Event.
Ocekivao sam da ce se izvrsiti event 'dbGrid1.OnFieldEditMask'... medjutim, nista.
Koj event se izvrsava kada se promeni vrednost u polju u dbGrid tabeli?
I drugo pitanje.
Kako da procitam vrednost polja u aktivnoj koloni [ iz dbGrid tabele] ?
Probao sam dbGrid1.Columns.Items[1]... ali se odatle izgubim...
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 08 Mar 2006 01:01
|
offline
- beli0135

- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Mislim da mozes da iskoristis OnKeyPress. Trik je samo otkriti u kojem si tacno cell-u. To je sve.
Drugo pitanje...
DBGrid.Columns ima property Field (TField).
Ali nesto ovde ne stima. Mislim da ne postavljas pitanje kako treba. Ako je u pitanju DBGrid (ne StringGrid), to znaci da imas tabelu/query koji je vezan preko dataSource. Sta onda prckas po samom gridu?! Treba da prckas po bazi. Grid je tu samo da prikaze vrednosti.
Savet:
Da bi naucio lepo da baratas bazama, moja preporuka je da umesto DataAware komponente, tvog omiljenog grida, koristis TListView, sa propertijem Style na Report.
Zasto?
1. lakse ces da baratas vrednostima celija, ako ti je bas stalo da po njma prckas.
2. Komponenta nije vezana za automatsko popunjavanje. Ti si zaduzen za to = imas potpunu kontrolu
3. Prima ikonice i ostale zezancije (objekte)
4. Naucices da brljas direktno po dataset-u
|
|
|
|
Poslao: 08 Mar 2006 01:40
|
offline
- Peca

- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
ok, kako onda preko DataSource1 da dodjem bar do neke vrednosti nekog polja?
Datasource1.Components[1]. ?
|
|
|
|
Poslao: 08 Mar 2006 10:21
|
offline
- Srki_82

- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Kada ne koristis DataAware komponente onda ti DataSource i ne treba. Dovoljan ti je DataSet i iz njega vadis podatke.
DataSet objekti imaju Fields property koji drzi niz TField objekata ili objekata koji nasledjuju TField.
Pogledaj i ostale Field* property-e.
Tagodje imas i funkcije koje ti olaksavaju pronalazenje nekog TField objekta:
ClearFields
FieldByName
FindField
GetFieldNames
.
.
.
Sve u svemu, kad dobijes TField objekat (to je u sustini kolona u tabeli) mozes da upisujes ili iscitavas podatke. Najbolje od svega je sto podatak mozes da upises kao Variant i da se ne brines oko konverzije.
Pogledaj help za TDataSet, TFields i TField klase za vise informacija.
|
|
|
|
Poslao: 08 Mar 2006 14:33
|
offline
- beli0135

- Executor
- Pridružio: 03 Jan 2005
- Poruke: 2990
- Gde živiš: Beograd
|
Tacno je to sto Srki kaze.
Ako budes koristio TListView, onda ti samo treba tvoj dataset
Ako pak imas bilo koju dataaware komponentu, a nemas pristup datasetu (ako imas radi sa njim), onda je Grid.DataSource.DataSet. (sta bilo od dataseta, recimo, .fields[0])
|
|
|
|