Delphi - TEdit szövegének igazítása jobbra, középre, balra

forráskód letöltése
Egy TEdit komponensben csak balra igazított szöveg jelenhet meg. Ha esetleg ez nem lenne elegendő igényeinknek, akkor egy egyszerű kiegészítéssel elérhetjük, hogy a szöveg jobbra, vagy akár középre igazítva jelenjen meg a TEdit komponensen belül.

Ha már a TEdit-en belül igazítjuk a szöveget, akkor az sem ártana, ha magát a komponenst igazíthatnánk a Form-on belül annak valamely széléhez, vagyis kellene még egy Align property is a TEdit komponenshez. Mellékelt példában ezt is megvalósítjuk. A mellékelt példa megnyitása előtt az AlignEdit.pas-ban lévő komponenst telepítenie kell a Delphi-be.

Két teendőnk van tehát: létre kell hozni egy Align nevű property-t, amely már a többi komponenshez képest megszokott módon igazítja az adott TEdit komponenst valamely oldalhoz. Másodszor pedig kell egy Alignment property, amely a komponensen belüli szöveg igazítását írja elő.

Az első feladat igen egyszerű: mivel az Align property a TEdit ős osztályában deklarált és funkciói is megvalósítottak, így csupán láthatóvá kell tennünk az Object Inspector számára is ezt a property-t. Ehhez csak annyit kell tennünk, hogy a Published kulcsszó után beírjuk a property Align; deklarációt és már készen is vagyunk. Az Align property ettől kezdve rendeltetésszerűen használható.

Az Alignment property-vel kissé több dolgunk akad. Első lépésként deklaráljuk azt szintén a Published kulcsszó után és TAlignment típusként. Ez a típus három konstans értéket tartalmaz, melynek segítéségével választhatunk, hogy balra, középre, vagy jobbra szeretnénk igazítani. Ez a típusú property megtalálható például a TLabel komponensnél is.


A property értékadásához egy SetAlignment nevű eljárást hozunk létre. Az eljárásban elvégezzük az értékadást a FAlignment változó részére, amely tárolja a property aktuális értékét, majd a RecreateWnd eljárás hívásával megszüntetjük és újból létrehozzuk a komponenst. Mivel létrehozásnál meghívásra kerül a CreateParams nevű - jelen komponensben felülírt - eljárás, így itt megadhatjuk a komponens stílusát, amelyben szabályozhatjuk, hogy mi legyen a szöveg igazításnak az értéke. Ezt a FAlignment változóban tárolt érték alapján vesszük és adjuk hozzá a Params változó Style mezőjéhez.

Fontos tudnivaló, hogy korábbi verziójú windows-ok esetén (Win95, régebbi WinNT) ez a trükk nem működik, mivel ott csak többsoros szövegbeviteli eszköznél (TMemo) írható elő a szöveg igazítása.