IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @728
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Dala som si poradiť

O moje peniaze je postarané. A o vaše? www.partnersgroup.sk

Zbavte sa viazanosti

Za Samsung Galaxy Ace so zlatým O2 Paušálom zaplatíte teraz 12 €! pausal.o2.sk

Stavebný materiál Porfix

Skvelé tepelne izolačné vlastnosti stavebných materiálov Porfix! www.Porfix.sk

Spoločnosti Online s.r.o.

Ponúkame čisté spoločnosti. Obchodný register vybavíme za vás! www.spolecnostionline.cz

Problémy s nadváhou?

Zistite viac o dosiahnutí ľahšej a zdravšej hmotnosti. www.janinblog.com

padajuce gulicky

Zaslať odpoveď
AutorSpráva
martinmertel
Užívateľ
Užívateľ

Založený: 05.01.2012
Príspevky: 1

PríspevokZaslal: Št 05.01.12 20:32Odpovedať s citátomNávrat hore

zdravim,
dostal som za ulohu spravit projekt, s ktorym mam mensie problemy:

Vytvorte program zobrazujúci padajúce červené bodky. Nová bodka sa vytvára kliknutím do kresliacej plochy a jej počiatočný polomer je 6. Ak klikneme na už existujúcu bodku, jej polomer sa zväčší o 2. Každých 200 milisekúnd sa všetky bodky posunú smerom nadol o 4 pixely. Ak pri páde nadol vyjde bodka z kresliacej plochy, objaví sa v hornej časti kresliacej plochy.
Upravte program tak, aby pri zväčšení za istú hraničnú veľkosť bodka zmizla.

A teraz moje otazky: viem, ze tam treba pouzit udalost on mouse down ale ako si mam uchovat hodnoty x,y ? treba pole alebo ako?
a este ako mam urobit to, aby sa polomer zvacsil o 2. napada ma len prikaz if Pixels[x,y]=clRed ale to sa mi zda prilis zlozite a nerobi to presne to, co by malo, lebo ked su dve gulicky cez seba a kliknem na hociktoru z nich, zvacsia sa obidve.
za kazdu radu vopred dakujem
Zobraziť informácie o autoroviOdoslať súkromnú správu
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1052

PríspevokZaslal: Št 05.01.12 21:25Odpovedať s citátomNávrat hore

Poziciu si uchovas jednoducho - staci gulicky reprezentovat ako instancie objektu, ktore budu mat poziciu ako svoj datovy clen. Ukazka:
kód:
TGulicka = class
private
    x, y: integer;    // koordinaty
    procedure SetX( newX: integer );
    procedure SetY( newY: integer );
    precedure Redraw();
public
    constructor Create( x, y: integer );
    property Left: integer read x write SetX;
    property Top: integer read y write SetY;
end;


( konstruktor si uz napis sam, taktiez metody SetX a SetY, tam len nastavis premenne x a y na newX a newY ). Gulicky budes jednoducho vytvarat volanim konstruktora triedy TGulicka a zmenu pozicie cez jej vlastnost Left a Top. Ukazka:
kód:
var
  gulicka1, gulicka2, gulicka3: TGulicka;     // neviem, kolko ich mas mat, ak viac, jednoducho pouzi pole

Volanie konstrutkora:
kód:
gulicka1 := TGulicka.Create( 100, 100 );

Funkcia redraw bude prekreslovat gulicku na nove pozicie. Tu si tiez dopln sam, akurat ti poradim, ze ich neznazornuj pixelmi - je to zdlhave a zbytocne. Pouzi metodu Ellipse triedy TCanvas:
kód:
Form1.Canvas.Ellipse( 100, 100, 120, 120 );


Jej prve dva parametre su x1 a x2, dalsie dve x2 a y2. To znamena, x2 - x1 dostanes priemer gulicky. Na ten som zabudol, tiez si ho predaj ako datovy clen triedy TGulicka + potrebne metody na jeho zvacsovanie/zmensovanie.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd