.
Inprise
 Glavna stran
 Uvod
 Urejevalnik
 Rišimo
 Datoteke
 Baze
 Povezave

Jurij Petruna sonce@mailcity.com

December, 1999

Rišemo lahko na tiste gradnike, ki  vsebujejo  lastnost, imenovano  Canvas (površina). Najboljši za uporabo je gradnik PaintBox , iz paletne vrstice System. Njegova naloge je, da risanje omeji, oz. nam dodeli površino, da ne packamo po celotnem oknu Form1. Gradnik PaintBox ima naslednje Lastnosti:

Brush, Pen, Font, Pixels

 

Za lažje delo lahko v nad gradnikom PaintBox uporabimo nekaj metod, ki nam bodo olajšali delo.

MoveTo, LineTo, Rectangle, Ellipse, PollyGon, ...

Primer:

 

V gradniku PaintBox narišimo rdeèo toèko v središèu gradnika:

 

    • V Form1 potegnemo gradnik PaintBox
    • V Form1 potegnemo gradnik Button
    • Na podlogi dvakrat pritisnemo z desnim gumbom miške nad gumbom
    • Vpišemo kodo:

 

PaintBox1.Canvas.Pixels[PaintBox1.Width/2, PaintBox2.Height/2] := clRed

 

Torej: Gradniku PaintBox z lastnostjo Canvas, in  podlastnostjo  Pixels v doloèenih koordinatah doloèimo rdeèo barvo. Pri koordinatah smo uporabili tudi lastnosti Width in Height, ki doloèata višino in širino gradnika. Na podoben naèin lahko uporabimo tudi druge lastnosti in metode Canvas-a. Kako preprosto!

 

Delo oz. bolj pisanje si lahko olajšamo v primeru, ko moramo napisati veè zaporednih stavkov, ki se nanašajo na doloèen gradnik. Pri tem uporabimo stavek  with...do, ki ga Delphi pozna.

Primer:

with PaintBox.Canvas do

begin

  MoveTo(10,10);

  LineTo(20,20);

  LineTo(20,30);

  ...

end;

ta zapis je enakovreden zapisu

begin

  PaintBox.Canvas. MoveTo(10,10);

  PaintBox.Canvas. LineTo(20,20);

  PaintBox.Canvas.LineTo(20,30);

  ...

end;

 

Sedaj znamo narediti nek del aplikacije, ki se izvrši ob pritisku z miško na gumb. Sedaj pa si npr. zaželimo, da bi se narisani koordinatni sistem pojavil na zaslonu takrat, ko aplikacijo zaženemo. To naredimo na sledeèi naèin:

 

    • V ozadje povleèemo gradnik PaintBox, na katerega bomo risali.
    • Izberemo Form1 in spremenimo dogodek (events) OnActivate. Na okence zraven dvakrat pritisnemo z levim gumbom miške. V oknu Code Editor-je se nam pojavi predloga, v katero bomo vpisali zaporedje ukazov.

    procedure TForm1.FormActivate(Sender: TObject);

    begin

       with PaintBox1.Canvas do

       begin

       MoveTo(10,10);

       LineTo(10,PaintBox1.Height-5);

       MoveTo(5,PaintBox1.Height-10);

       LineTo(PaintBox1.Width-5, PaintBox1.height-10);

     

      end;

    end;

     

  • Sedaj moramo samo še nastaviti dogodek (events) OnPaint gradnika PaintBox.  Nastavimo ga na FormActivate.

 

 

BuiltByNOF