Slike, Crtanje i Meniji u Delphiju

7

Click here to load reader

description

Lekcija iz programiranja u Delphi-ju

Transcript of Slike, Crtanje i Meniji u Delphiju

Slike, crtanje i kreiranje menija u Delphi-ju

Komponenta Memo (bitna svojstva Lines, ScrollBars, Alignment i metoda LoadFromFile)

Komponenta Image (additional tools) za prikaz slike na formi

Svojstvo AutoSize ako je True, komponenta Image se prilagoava veliini slike.

Svojstvo Strech ako je True, veliina slike se prilagoava veliini komponente Image

Svojstvo Picture izbor slike koja e se prikazati u komponenti Image (obratiti panju na podrane formate). Izborom svojstva Picture otvara se prozor Picture Editor u kojem na dugme Load otvaramo prozor Open i biramo sliku koju elimo.

U kodu ako elimo da prikaemo neku sliku svojstvo Picture koristimo uz metodu LoadFromFile na ovaj nain:

image1.Picture.LoadFromFile('c:\Documents and settings\ucenik\my documents\slika1.jpg');

Komponenta Shape (additional tools) za dodavanje jednostavnih oblika na formu.

Svojstvo Brush etka, popuna unutranjosti nacrtane figure

Podsvojstva: color (boja), style (dezen)

Svojstvo Pen olovka, odreuje liniju nacrtane figure

Podsvojstva: color (boja), style (vrsta linije, takasta, isprekidana, puna), width (deblina, vea od jedan samo ako je puna linija).

Svojstvo Shape oblik

Oblici: stCircle (krug), stEllipse (elipsa), stSquare (kvadrat), stRectangle (pravougaonik), stRoundRect (zaobleni pravougaonik), stRoundSquare (zaobleni kvadrat)

Kada elimo u Delphi-ju da nacrtamo neto mi u stvari crtamo preko odreenog platna (Canvas) koje se prostire preko nae aplikacije ili objekta na kome crtamo. Ovo platno, ili mrea se sastoji iz niza piksela, odnosno mrea je podelena horizontalnim i vertikalnim linijama.

Tako svaki piksel ima svoje X i Y koordinate.

Koordinatni poetak ovog platna je u gornjem levom uglu. Taka u gornjem levom uglu ima koordinate X=0 i Y=0, dok taka u donjem desnom uglu prozora ima koordinate X=ClientWidth-1 i Y=ClientHeight-1, gde ClientWidth i ClientHeight predstavlaju irinu i visinu klijentske oblasti (najee aktivne forme).

Canvas poseduju komponente : Form, Image, Printer, StringGrid, PaintBox. Svojstva klase Canvas (neka vanija)

Svojstvo Pen pero za bojenje, odreuje nain crtanja linija oko zatvorenih povrina. Pen ima svoja svojstva : Color boja, Style stil (psSolid (puna), psDot (takasta), psClear (nevidliva)), Width irina

Svojstvo Brush etka za bojenje, odreuje nain popunjavanja unutranjosti zatvorenih povrina. Brush ima svoja svojstva : Color bojaStyle stil (bsSolid (popunjeno), bsDiagonal (kose crte), bsHorizontal (vodoravne linije))

Svojstvo Font font, odreuje vrstu i veliinu slova koja se iscrtavaju. Font ima svoja svojstva: Color boja, Style stil, Size veliinaName ime

Metode klase Canvas (neka vanija)

LineTo (X, Y); linija do

(crta pravu liniju od trenutnog poloaja pera do take sa koordinatama X,Y)

MoveTo (X, Y); pomeri se do

(pomera se pero do take sa koordinatama X,Y, na ekranu se ne ostavla trag)

Rectangle(x1,y1, x2,y2) pravougaonik

Crta pravougaonik kojem je gornji levi ugao u taki (x1,y1), a donji desni ugao u taki (x2,y2), ako su vrednosti koordinata (x1,y1) manja od (x2,y2). Ako su vrednosti prvog para koordinata vee od vrednosti drugog para koordinata, onda se obru i temena pravougaonika. Isti pravougaonik, na istom mestu na formi bie iscrtan sa obe naredbe: canvas.Rectangle(200,300,50,50); canvas.Rectangle(50,50,200,300);

Ellipse(x1,y1,x2,y2) elipsa

Crta i popunjava elipsu koju ograuje pravougaonik sa datim koordinatama (elipsa ucrtana u pravougaonik)

Ispisivane teksta

Takoe, u Delphi-ju moemo da ispiemo odreeni tekst na nekim koordinatama a to se postie metodom TextOut koja je u obliku : TextOut(x,y,Tekst) gde su x i y koordinate teksta a argument Tekst je tekst koji se ispisuje. Tako bi naredba TextOut (50,100,Tekst koji se ispisuje) ispisala na poziciji 50,100 odgovarajui tekst.

Primeri:

canvas.Pen.Color:=clred;canvas.Pen.Style:=psdash;canvas.MoveTo(20,20);canvas.LineTo(320,20);

canvas.Rectangle(100,260,260,100); canvas.Ellipse(480,50,280,250);

canvas.TextOut(80,100,'tekst koji se ispisuje');

MENIJI

Komponenta MainManu se nalazi u standardnoj paleti sa alatkama. Kada se ova komponenta postavi na formu, njen poloaj nije bitan, poto se za vreme izvravanja aplikacije ne vidi, slui kao pristup alatu za dizajniranje menija i pristup svojstvima u ObjectInspector-u.

Dodavanje stavki u meni se vri tako to dupli klik na komponentu MainManu (koja je na formi) otvara urednik menija u kojem unosimo elemente menija (slika ispod). U pravougaonike upisujemo stavke menija, a u ObjectInspector-u moemo videti da svaka stavka dobija podrazumevano ime, koje se moe menjati. Svojstvo Caption je ono to smo uneli u pravougaonik.

Ako se ispred nekog slova stavi znak &, slovo e biti podvueno i opcija e se moi aktivirati kombinacijom tastera ALT+podvueno slovo.Pri pokretanju aplikacije meni stoji odmah ispod naslovne linije.

Kreiranje dogaaja za neku stavku menija moe da se realizuje tako to se u uredniku menija klikne dva puta na stavku menija. Pojavie se urednik koda sa procedurom vezanom za tu stavku gde unosimo eleni kod.

Zadatak sa slikamaKreirati aplikaciju u Delphi-ju koja e izgledati kao na slici:

Na D: disku u folderu Lavovi nalaze se potrebne slike (lav, lav1, lav2, lav3). Kreirati aplikaciju koja e klikom na nazive menjati sliku i tekst u Memo komponenti (za Osobine slika je lav1 a tekst je Ovo je tekst vezan za sliku1! a po istom principu i za Staniste i za Hranu). Kada se program pokrene memo komponenta treba da je prazna a slika treba da bude lav.jpg!

Reenje (kod za klik na RadioGroup komponentu):procedure TForm1.RadioGroup1Click(Sender: TObject);beginif radiogroup1.ItemIndex=0 then begin image1.Picture.LoadFromFile('D:\Lavovi\lav1.jpg'); memo1.Text:='Ovo je tekst vezan za sliku Lav1!'; end; if radiogroup1.ItemIndex=1 then begin image1.Picture.LoadFromFile('D:\Lavovi\la21.jpg'); memo1.Text:='Ovo je tekst vezan za sliku Lav2!'; end; if radiogroup1.ItemIndex=2 then begin image1.Picture.LoadFromFile'D:\Lavovi\lav3.jpg'); memo1.Text:='Ovo je tekst vezan za sliku Lav3!'; end;end;