Delphi - Margó megadása egy TMemo komponensben

forráskód letöltése
Egy szövegbeviteli eszköznél, mint például a TMemo megadhatjuk, hogy mekkora legyen a margó a szöveg körül.
Alapesetben mindig a teljes komponens területét felhasználhatjuk szövegbevitelre, de ha ettől el akarunk térni, akkor megszabhatjuk, hogy mekkora üres terület maradjon a szöveg körül. Egy szövegbeviteli eszköznél, mint például a TMemo megadhatjuk, hogy mekkora legyen a margó a szöveg körül.
Alapesetben mindig a teljes komponens területét felhasználhatjuk szövegbevitelre, de ha ettől el akarunk térni, akkor megszabhatjuk, hogy mekkora üres terület maradjon a szöveg körül.


Ehhez csupán egy EM_SETRECT üzenetet kell küldenünk a komponens részére.

Ha növelni szeretnénk az aktuális margót, akkor ehhez ismernünk kell, hogy mi annak a mérete. Ezt a EM_GETRECT üzenet elküldésével tudhatjuk meg. A SendMessage függvénnyel elküldve ezt az üzenetet egy TRect típusba kapjuk vissza az eredményt.

Ennek a téglalapnak a méretét csökkentjük, majd az EM_SETRECT üzenettel visszaküldjük a TMemo komponensnek. Az eredmény szemmel látható.

Ha beállításra a EM_SETRECTNP üzenetet használjuk fel, akkor nem történik újrarajzolás a margó beállítása után, így az eredmény is csak akkor jelenik meg, ha valamilyen esemény hatására a komponens terület újrarajzolódik.

Ezt akkor célszerű használni, ha saját magunk rajzoljuk ki a komponens tartalmát is és így elkerülhető, hogy az állandó újrarajzolás miatt a komponens "villogjon".