Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Crearea obiectelor Delphi in timpul executiei

c



+ Font mai mare | - Font mai mic



Crearea obiectelor Delphi in timpul executiei

-> o componenta Tbutton a carei Caption se initializeaza cu 'Extrage'

-> Se aduc pe formular o componenta de tip TstringGrid (din pagina de componente Aditional) pentru care se modifica proprietatile FixedCols si FixedRows la 0



-> Se schimba proprietatea Name a formularului in Loto

   

-> Se declara la sectiunea private variabilele Prima de tip Boolean si Buton de tip sir de la 1 la 5 de componente TBitBtn ( Array[1..5] of TbitBtn )

-> Se adauga la lista uses, de la sectiunea interface, cuvantul cheie Buttons

->Se genereaza evenimentul Form Create. In cadrul acestui eveniment se initializeaza variabila Prima cu valoarea True si se apeleaza generatorul de numere aleatoare (Randomize;)

-> Se genereaza evenimentul FormActivate unde se declara variabila locala i de tip integer. Tot aici se initializeaza pentru componenta StringGrid proprietatile Width la 245, Height la 100, ColCount la 15, RowCount la 6, latimile si inaltimile tuturor celulelor la 15, numele fontului la Times New Roman, culoarea fontului la Blue, marimea fontului la 8, si se initializeaza toate celulele cu numarul corespunzator pozitiei in obiectul StringGrid:

with StringGrid1 do

begin

Width:=245;

Height:=100;

ColCount:=15;

RowCount:=6;

for i:=0 to ColCount-1 do ColWidths[i]:=15;

for i:=0 to RowCount-1 do RowHeights[i]:=15;

Font.Name:='Times New Roman';

Font.Color:=clBlue;

Font.Size:=8;

for i:=0 to 89 do

Cells[(i mod 15), (i div 15)]:=IntToStr(i+1);

end;

-> Se genereaza evenimentul Button1Click in cadrul caruia se declara variabilele locale Act, i, j, k de tip Byte, Wins de tip sir de la 1 la 5 de tip Byte (Array[1..5] of Byte) si Extras de tip set of Byte:

var

Act, i, j, k:Byte;

Wins: array [1..5] of Byte;

Extras: set of Byte;

Tot aici se trateaza extragerea propriu-zisa :

daca nu suntem la prima extragere trebuie sa eliberam memoria alocata obiectelor create dinamic la extragerea anterioara:

if not Prima then

for i:=1 to 5 do Buton[i].Free;

se goleste lista de numere extrase

Extras:=[];

se face extragerea propriuzisa si pentru fiecare numar extras, daca nu a mai fost extras la tragerea curenta, se memoreaza in sirul Wins[] si in lista de numere extrase:

j:=0;

while j<5 do

begin

Act:=Random(90)+1;

if not (Act in Extras) then

begin

j:=j+1;

Wins[j]:=Act;

Extras:=Extras+[Act];

end;

end;

se creeaza cele cinci butoane de tip TBitBtn din sir cu parintele Self (el insusi), apoi, in functie de valorile din sirul Wins se calculeaza indicii j si k ai celulei din StringGrid unde urmeaza sa fie pozitionat si se seteaza pentru fiecare dintre butoane proprietatile Left, Top, Width, Height, Font.Name, Font.Size, Font.Color si Caption.

for i:=1 to 5 do

begin

Buton[i]:=TBitBtn.Create(Self);

Buton[i].Parent:=Self;

j:=(Wins[i] mod 15);

k:=(Wins[i] div 15);

if j=0 then

begin

j:=15;

k:=k-1;

end;

Buton[i].Left:=StringGrid1.Left+(j-1)*16;

Buton[i].Top:=StringGrid1.Top+k*16;

Buton[i].Width:=16;

Buton[i].Height:=16;

Buton[i].Font.Name:='Times New Roman';

Buton[i].Font.Size:=8;

Buton[i].Font.Color:=clRed;

Buton[i].Caption:=IntToStr(Wins[i]);

end;

se semnalizeaza pentru urmatoarele extrageri ca prima extragere a fost deja tratata:

Prima:=False;

-> Se genereaza evenimentul FormDestroy in care se declara variabila locala i de tip integer. In cazul in care a avut loc cel putin o extragere, inainte de inchiderea aplicasiei, se trece la eliberarea memoriei ocupata de obiectele create dinamic in timpul extragerii

if not Prima then

for i:=0 to 5 do Buton[i].Free;


La executie se obtine:



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1046
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved