Lista 6 - ruszczak.po.opole.pl
Transkrypt
Lista 6 - ruszczak.po.opole.pl
7 lista zadań DELPHI Zadanie 1. StringGrid1.Cols[5] Panele StringGrid1.Cells[4,1] StringGrid1.Rows[1] StringGrid Edit Panele Aplikacja zawiera tabele StringGrid z listą cenową produktów (jak na rys.). Program ma umożliwić obliczanie kwot VAT oraz wartości brutto cen, dodawanie ostatniego wiersza oraz usuwanie wybranych wierszy, wyszukanie produktu o danej nazwie lub o maksymalnej cenie. 1. 2. 3. 4. Na formatkę wstaw komponenty według powyższego rysunku. Ustaw właściwości komponentu StringGrid następująco: - Align – AlLeft (ustawienie tabeli na cała lewą powierzchnie formatki), - ColCount – 6 (liczba kolumn), - RowCount – 2 (liczba wierszy), - FixedCols/ FixedRows – 1 (liczba kolumn/wierszy widocznych stale, bez możliwości edycji), - GoEditing – True (możliwość edytowania wartości w tabeli), - GoColSizing – True (możliwość zmiany szerokości kolumny), +Options - GoColMoving – True (możliwość przenoszenia kolumn), - GoRowMoving – True (możliwość przenoszenia wierszy), - GoTabs – True (możliwość przenoszenia się po komórkach za pomocą klawisza Tab), W zdarzeniu OnCreate formatki aplikacji należy ustawić początkowe wartości komórek tabeli: with StringGrid1 do begin Cells[0,0]:='Nr'; Cells[1,0]:='Produkt'; Cells[2,0]:='Wartosc netto'; Cells[3,0]:='Stawka VAT'; Cells[4,0]:='Kwota VAT'; Cells[5,0]:='Wartosc brutto'; Cells[0,1]:='1'; Cells[1,1]:='Rower Giant Sierra'; Cells[2,1]:='800,00'; Cells[3,1]:='22'; … end; Dla zdarzenia OnClick kolejnych przycisków, należy wpisać poniższe procedury: - obliczenie wartości VAT: procedure TForm1.Button1Click(Sender: TObject); var i:Integer; cena,vat: Currency; begin for i:=1 to StringGrid1.RowCount-1 do begin cena:=StrTocurr(StringGrid1.Cells[2,i]); vat:=StrTocurr(StringGrid1.Cells[3,i]); StringGrid1.Cells[4,i]:=CurrToStrF(cena*vat/100,ffNumber,2); StringGrid1.Cells[5,i]:=CurrToStrF((cena*vat/100)+cena,ffNumber,2); end; end; - dodanie ostatniego wiersza: StringGrid1.RowCount:=StringGrid1.RowCount+1; //dodanie wiersza StringGrid1.Cells[0,StringGrid1.RowCount-1]:=IntToStr(StringGrid1.RowCount-1); //dodanie numeru produktu 5. - usunięcie wiersza: procedure TForm1.Button5Click(Sender: TObject); var i,nr:Integer; begin nr:=StringGrid1.Row; for i:=nr to StringGrid1.RowCount-1 do begin StringGrid1.Rows[i]:=StringGrid1.Rows[i+1] ; //przepisywanie wiersza StringGrid1.Cells[0,i]:=IntToStr(i); //korekta numerów produktów end; StringGrid1.RowCount:=StringGrid1.RowCount-1; //usunięcie ostatniego wiersza end; - znalezienie produktu po nazwie: procedure TForm1.Button1Click(Sender: TObject); var produkt: String; i:Integer; jest: boolean; begin jest:=false; //jest oznacza czy product znaleziono czy nie produkt:=Edit1.Text; //odczytanie wartości z Edit for i:=1 to StringGrid1.RowCount do begin if StringGrid1.Cells[1,i]=produkt then begin StringGrid1.Row:=i; //zaznaczanie komorki w danym wierszy StringGrid1.Col:=1; //zaznaczanie komorki w danej kolumnie jest:=true; break; end; end; if jest=false then Application.MessageBox(Pchar('Brak produktu ' + Edit1.Text + '!'), 'Uwaga!',MB_OK+MB_ICONWarning); end; Oprogramuj procedurę dla zdarzenia OnClick przycisku znajdującego produkt o maksymalnej cenie. Zadanie 2. - Na formatce umieść tabelkę ( obiekt StringGrid) oraz 3 przyciski, obiekty EDIT i LABEL. - przycisk „Ustaw liczbę wierszy i kolumn” ustawia odpowiednie rozmiary dla obiektu stringGrid ( Rows / Cols ) - przycisk „Wylosuj Liczby” losowo wypełnia tabelę (liczby losowe od 1 – 5) - przycisk „Zsumuj Liczby” sumuje wszystkie liczby z tabelki