HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Egyedi kinézetű TStringGrid


Példaprogram letöltése

9120 bájt

Ebben a példában egy olyan komponenst készítünk a TStringGrid-ből származtatva, melynél egy tetszőleges színátmenet jelenik meg minden egyes cella hátterén.
A példát felhasználva megtudhatjuk, hogy miként érhető el, hogy tetszőleges, egyedi megjelenítést biztosítsunk a TStringGrid celláinak.

A mellékelt példaprogram megnyitása előtt a CustomStringGrid.pas-ban lévő komponenst telepítenie kell a Delphi alá.

A komponens celláinak színátmenetét a ColorStart, illetve a ColorEnd property-ken keresztül állíthatjuk be.

Megvalósításhoz szükséges lesz a DrawCell eljárás felülírására, mely az egyes cellák megjelenítéséért felelős.
procedure DrawCell(ACol, ARow: Integer; ARect: TRect; 
    AState: TGridDrawState);
Az eljárás első két paraméterében kapjuk az adott cella X, Y koordinátáját. Az ARect paraméterből megtudhatjuk, hogy az adott cellának mekkora a területe. A kirajzolás elvégzésekor ezt feltétlenül vegyük figyelembe, hogy grafikánk ne csússzon bele egy másik cellába. Az AState paraméterből megtudhatjuk a cella aktuális állapotát. Ezt felhasználva eldönthetjük például azt, hogy az aktuálisan megjelenítendő cella fix-e vagy sem. Ha fix, akkor a kirajzolást az ős osztálybeli DrawCell-re bízzuk.
if gdFixed in AState then begin
  inherited DrawCell(ACol, ARow,ARect,AState);
end else begin
  ...
end;
Ha viszont nem, akkor először megjelenítjük a szükséges színátmenetet, majd erre ráírjuk az adott cella szövegét.



Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 100. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |