
A mellékelt példaprogram megnyitása előtt a Coordinate.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens használata
Helyezze el a komponenst a Form-on, állítsa be méreteit.
A StepX és StepY real típusú tulajdonságok beállításával adható meg az x és y tengely léptéke. A Digits tulajdonság meghatározza, hogy a tengelyeken megjelenítendő számok hány tizedes jeggyel rendelkezzenek. Ezeket a számokat a ShowNumbers tulajdonság értékének igazra vagy hamisra állításával jeleníthetjük meg, illetve tüntethetjük el. A DrawLines logikai típusú tulajdonsággal állíthatjuk be, hogy a függvények pontjai össze legyenek-e kötve. Így a pont függvényeket is tudjuk ábrázolni.
A komponens maximum 5 függvény egyidejű megjelenítésére képes. Egy függvény egy pontját az AddPoint metódussal adhatjuk át a komponensnek.
procedure AddPoint(IList: Byte; IPoint: TCPoint);
Az IList értéke 1-5-ig terjedhet. A függvényt azonosítja. Az IPoint egy TCPoint típusú objektum, amely egy képpontot ír le.
A TCPoint objektum a Coordinate.pas állományban van implementálva.
TCPoint = class(TObject)
public
X: Real;
Y: Real;
Color: TColor;
constructor Create;
destructor Destroy; override;
end;
A függvény egy megadott pontját a DeletePoint metódussal törölhetjük.
procedure DeletePoint(IList: Byte;IPoint: TCPoint);
A ClearPoints függvénnyel a teljes függvény törölhető.
procedure ClearPoints(IList: Byte);
A komponens elkészítése
A TCoordinate osztályt a TGraphicControl osztályból származtatjuk. A komponens megrajzolását a Paint metódus felülírásával tudjuk megvalósítani. Fontos, hogy minden egyes tulajdonság megváltoztatása után meghívjuk az Invalidate metódust, a komponens képének frissítése érdekében.
A komponens maximum 5 függvény megjelenítését teszi lehetővé. Ezt az öt függvényt egy 5 elemű tömbben tárolja el, ahol minden egyes elem TList típusú.
Points: array[1..5] of TList;
A koordináta tengelyeken megjelenítendő számskála real típusú számokat tartalmaz. Hogy megfelelően át tudjuk konvertálni ezeket a számokat string-é, a Digits tulajdonságnak megfelelően, szükséges egy függvény.
function TCoordinate.GetString(Number: Real): String;
begin
Result:=FloatToStrF(Number,ffFixed,4,FDigits);
end;
És most vegyük sorra a függvényt kialakító metódusokat.
Az AddPoint metódus
Egy függvény pontjait ezen a metóduson keresztül lehet felvenni, egyesével.
procedure TCoordinate.AddPoint(IList: Byte; IPoint: TCPoint);
Nagyon fontos, hogy egy függvény pontjait rendezett sorban, az x koordináta szerint növekvő sorrendben tároljuk. Ha ezt így tesszük, akkor nem lesz gondunk abból, hogy mely pontokat kössük össze a Paint metódusban, hiszen csak az egymás melletti pontokat kell összekötni majd.
A DeletePoint metódus
procedure DeletePoint(IList: Byte; IPoint: TCPoint);
Ez a metódus függvénypontok törlésére szolgál. Minden egyes pontot, amely a paraméterben megadott színnel és koordinátákkal rendelkezik, töröl a függvényből.
A ClearPoints metódus
procedure ClearPoints(IList: Byte);
A metódus a paraméterben megadott teljes függvényt törli.
A függvények megrajzolása
A függvényeket a Paint metódus rajzolja meg.
Egy függvénypont helyének kiszámítása és megrajzolása az alábbi módon történik.
Pixels[Width div 2+Round(p.X*30/StepX),Height div 2+Round((-1)*p.Y*30/StepY)]:=p.Color;