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

Podobne dokumenty