[ osmica @ 10.11.2004. 16:21 ] @
| E ovako ako moze source code i kratko objasnjenje za sledece.Na interfejsu ima 6 slika(img1,img2,...img6)i sve se nevide.I imamo jedno dugme.Na svaki btn klik treba nasumice da se izabere jedna slika,prikaze i izbaci neka poruka(bla,bla).Znaci on treba nasumice da izabere jednu sliku i prikaze je zajedno sa porukom.Hvala |
[ masetrt @ 11.11.2004. 11:42 ] @
Ne zelim da ti dam source nego samo objasnjenje ,za source se malo sam iscimaj. Postavi niz od image boxova i nafiluj ih slikama koje hoces , postavi na poziciju koju hoces i setuj prop. Visible na false. Onda koristeci Random (u OnClick event-u button-a) funkciju (sa odgovarajucim skaliranjem dobijas broj izmedju 0 i 5(k). Onda za box sa indexom k+1 property visible postavi na true. Pre poziva Random-a ne zaboravi da pozoves Randomize. Ljudi pomucite se prvo malo pre nego sto pocnete da trazite gotova resenja od drugih
[ panjevic @ 11.11.2004. 11:49 ] @
e pa vidis ovako, neka se slicice zovu image1, 2.. 6. U var odeljku iznad implementation deklarises niz pokazivaca na klasu TImage
a : array[0..5] of ^TImage.
Dva puta klikes na formu i u matodu FormCreate kazes:
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
a[0] := @image1;
a[1] := @image2;
a[2] := @image3;
a[3] := @image4;
a[4] := @image5;
a[5] := @image6;
end;
Stavi novo dugme na formu. Dva puta klikni na dugme i sad pisi
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i : longint;
begin
for i := 0 to 5 do ((a[ i ]^).visible := false);
i := random(6);
showmessage(inttostr(i)); // poruku stavi kakvu god hoces
(a[ i ]^).visible := true;
end;
A sad ako te intersuje kako to radi. Pri kreiranju forme si pozvao proceduru randomize da se slike ne bi svaki put prikazivale u istom redosledu. Zatim si svakom elementu niza dodelio pokazivac na odredjenu sliku (zato onaj operator @ koji znaci "adresa od"). Na svaki klik dugmeta prvo se sakrivaju sve slike (ovo nije bas najsrecnije recenje). Operator ^ oznacava da hoces da pristupis objektu koji se nalazi na adresi a[ i ]. Onda u i upisujes random broj od 0 do 5 i zatim u zavisnosti od broja prikazujes sliku. showmessage prikazuje string poruku koju mu das kao argument. Umesto showmessage mozes da koristis MessageDlg koji ima jos gomilu opcija.
[ -zombie- @ 12.11.2004. 04:42 ] @
stvarno nema potrebe za korišćenje pointerske sintaxe.. svi delphi objekti već i jesu pokazivači, tako da nema potrebe da tako komplikuješ sebi život (tako bi mogao da programiraš i u c/c++, što je besmisleno ne iskoristiti čari delphia).
[ Rapaic Rajko @ 12.11.2004. 07:23 ] @
Hehe, klasican primer C programiranja u Delphi-ju...
Rajko
[ panjevic @ 15.11.2004. 15:16 ] @
ma da. samo ti to njemu objasni na engleskom i boli te da li ces ikad nauciti da programiras. :))
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.