Delphi - Memo megjelenítése a cellában

TDBGrid 3. rész

forráskód letöltése
A TDBGrid komponens alaphelyzetben nem képes arra, hogy celláiban megjelenítse egy MEMO típusú mező tartalmát. Ilyenkor csupán egy (MEMO) felirat szokott megjelenni a cellában.

Sok esetben pedig jól jönne, hogy ha a hosszú többsoros MEMO tartalmát viszontláthatnánk, sőt szerkeszthetnénk is a TDBGrid cellájában.

Mellékelt példában ezt valósítjuk meg. A megoldáshoz csupán arra van szükségünk, hogy a TDBGrid komponens tartalmát ne maga a komponens rajzolja ki, hanem ezt saját magunk végezzük.

Ekkor fel kell használnunk az OnDrawColumnCell eseményt. Itt minden egyes cellának egyedi képet adhatunk, így akár a MEMO tartalmát is kiírhatjuk.

Az esemény paramétereként kapunk egy Column nevű TColumn típusú változót. Ezen keresztül képesek vagyunk elérni az adott cellához tartozó adatbázis mezőt. Meghatározhatjuk a típusát is. Ha azt találjuk, hogy ez MEMO típusú, akkor a kiírás előtt a több soros szöveget először konvertáljuk a ReplaceEnter nevű függvényünkkel egysoros szöveggé.

Ez a konverzió csupán abból áll, hogy a szövegben található enter jeleket kivesszük.

A MEMO mező szerkesztéséhez létrehozunk egy külön Form-ot, melyben lehetőség van egy TDBMemo-n keresztül, több soros szövegként szerkeszteni annak tartalmát.

TDBGrid cikksorozat

Az alapok - TDBGrid 1. rész
TDBGrid komponens - TDBGrid 2. rész

Memo megjelenítése a cellában - TDBGrid 3. rész