[ franjo_tahi @ 10.12.2008. 09:20 ] @
Trebao bih postaviti dbedit u dbgrid, tako da se editiranje vrši u njemu. U stvari, moja kontrola, koja je nasljednik dbedita, a služi za editiranje datuma/vremena. Pokušao sam je staviti kao checkbox u OdDrawColumnCell, ali ne radi dobro. 1. ako provjeravam prije iscrtavanja da li je state gdSelected ili gdFocused - iscrtava se samo kad sam na koloni. 2. ako ne provjeravam state već ju iscrtavam uvijek - poziva se beskonačno... 3. klikom na kolonu - dbedit i početkom editiranja - editira se podatak u gridu, a ne u dbeditu i ne vidi se unos. Problem završetka unosa sam riješio u proceduri dbedit.OnKeyPress. Napravim post u dataset i gridu dam focus. To je ok. Problem je početak editiranja... Code: procedure TfmSud.dbgDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if (Column.Field.FieldName = dbDatKam.DataField) and (gdSelected in state) then begin dbDatKam.Left := Rect.Left + DBG.Left + 2; dbDatKam.Top := Rect.Top + DBg.top + 2; dbDatKam.Width := Rect.Right - Rect.Left; dbDatKam.Height := Rect.Bottom - Rect.Top; dbDatKam.BringToFront; end; end; Ideja kako to riješiti? |