Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie wizualne

Podobne prezentacje


Prezentacja na temat: "Programowanie wizualne"— Zapis prezentacji:

1 Programowanie wizualne
PW – LAB2 Wojciech Pieprzyca

2 1. CheckBox CheckBox jest komponentem, który pozwala na wybór opcji spośród wielu możliwości poprzez ich zaznaczenie. A zatem komponent CheckBox może przyjąć jeden z dwóch stanów – zaznaczony (Checked) lub niezaznaczony (Unchecked). Najważniejszą właściwością komponentu CheckBox jest Checked. Wskazuje ona, czy dany komponent został wybrany czy też nie. Możemy to sprawdzić na przykład za pomocą instrukcji if. if (CheckBox1->Checked) //komponent został wybrany Nazwę opcji CheckBox ustala się poprzez właściwość Caption.

3 2. RadioButton RadioButton służy do wyboru jednej z grupy wielu dostępnych opcji. Właściwość Checked wskazuje czy dana opcje jest wybrana czy też nie, np. RadioButton1->Checked Alternatywnie można użyć komponentu RadioGroup. Posiada on właściwość Items, w której można określić nazwy RadioButton’ów wchodzących w skład grupy. Komponent RadioGroup posiada właściwość ItemIndex wskazującą na numer wybranego RadioButton’a w ramach RadioGroup. Numerowanie indeksów rozpoczyna się od 0.

4 3. ComboBox (1) ComboBox używany jest zazwyczaj do wyboru jednego z elementów podanych na liście wyboru, Dodawanie nowych elementów: - jeżeli z góry wiemy jakie elementy będą znajdować się na liście to możemy je dodać do listy poprzez właściwość Items już na poziomie projektowania aplikacji, - jeżeli będziemy dynamicznie budować listę w trakcie działania programu to należy posłużyć się funkcją Add(”element”) np. ComboBox1->Items->Add(”opcja1”); - do usuwania elementu służy funkcja Delete(x) gdzie x jest numerem indeksu elementu (indeksy numerują kolejne elementy listy 0,1,…,N). ComboBox1->Items->Delete(1)

5 ComboBox (2) Aktualny indeks elementu można uzyskać z właściwości ItemIndex, a opis elementu z właściwości tablicy Strings właściwości Items: np. ComboBox1->ItemIndex ComboBox1->Items->Strings[i] za pomocą funkcji indexOf(opis) możemy sprawdzić czy element o podanym opisie istnieje już na liście np. poniższy kod sprawdza czy element istnieje na liście, jeśli nie to dodaje go do listy if (ComboBox1->Items->IndexOf(opis) == -1) ComboBox1->Items->Add(opis); - styl csDropDownList pozwala na wybór tylko elementów z listy, styl csDropDown pozwala także wpisywać użytkownikowi własne opcje z klawiatury.

6 4. ListBox (1) Dodawanie nowych elementów do listy
- podobnie jak przy ComboBox jeżeli z góry wiemy jakie elementy będą znajdować się na liście to możemy je dodać do listy poprzez właściwość Items już na poziomie projektowania aplikacji, - jeżeli będziemy dynamicznie budować listę w trakcie działania programu to należy posłużyć się funkcją Add(”element”) np. ListBox1->Items->Add(”opcja1”); - do usuwania elementu służy funkcja Delete(x) gdzie x jest numerem indeksu elementu (indeksy numerują kolejne elementy listy 0,1,…,N). ListBox1->Items->Delete(1)

7 ListBox (2) dodatkowo możemy ustalić możliwość wyboru wielu elementów z listy naraz poprzez ustawienie właściwości MultiSelect na true, liczbę elementów na liście wskazuje właściwość Count, np. pętla po wszystkich elementach listy for (int i=0; i<ListBox1->Count; i++) {…} z kolei, aby sprawdzić czy wybrano jakieś elementy na liście wystarczy zbadać właściwości: dla list MultiSelect=true – właściwość SelCount np. if (ListBox1->SelCount<1) { //nie zaznaczone nic} dla list MultiSelect=false - właściwość ItemIndex np. if (ListBox1->ItemIndex==-1) { //nie zaznaczone nic}

8 ListBox (3) Sprawdzenie czy dany element jest wybrany możliwe jest dzięki tablicy Selected, np. poniższy kod sprawdza czy element i jest wybrany, if (ListBox1->Selected[i]) {//obsługa wybranego elementu} pobranie tekstu opisującego daną opcję umożliwia tablica Strings[i] listy elementów, gdzie i w tym wypadku oznacza indeks elementu którego opis chcemy poznać np. String opis = ListBox1->Items->Strings[i]; za pomocą funkcji indexOf(opis) możemy sprawdzić czy element o podanym opisie istnieje już na liście np. poniższy kod sprawdza czy element istnieje na liście, jeśli nie to dodaje go do listy if (ListBox2->Items->IndexOf(opis) == -1) ListBox2->Items->Add(opis);

9 5. ScrollBar Komponent ScrollBar służy do wyboru wartości całkowitych za pomocą poziomego suwaka, Wartości do wyboru określa się poprzez ustalenie zakresu (własności Min i Max komponentu ScrollBar), Aktualnie wybrana wartość podana jest we własności Position, Ważnym zdarzeniem dla komponentu ScrollBar jest zdarzenie onChange. Zachodzi ono zawsze wtedy, gdy zmienia się wartość wybrana na suwaku.

10 6. Try-catch Instrukcje try-catch służą do przechwytywania tzw. wyjątków, a więc sytuacji wyjątkowych kiedy program zachowuje się nieprawidłowo i trzeba na to zareagować, Jeżeli samodzielnie nie przechwycimy niektórych wyjątków, to program będzie wyświetlał okno ze standardowym oknem błędu co zwykle nie dostarczy użytkownikowi informacji o rodzaju błędu i sposobie jego rozwiązania, Przepis na napisania bloku kodu try-catch jest następujący: try { //instrukcje mogące powodować wyjątek } catch (…) { //reakcja na błąd, np. komunikat z wyjaśnieniem ShowMessage(”Blad spowodowany…”); }

11 7. Ćwiczenia (1) Stworzyć program do zamawiania pizzy ;-) Poszczególne elementy tak jak na dołączonym rysunku. Dodatkowo program powinien na początku automatycznie ustalić ceny tak jak na rysunku. Po naciśnięciu przycisku Oblicz program sumuje kwoty zaznaczonych opcji i wyświetla w polu cena. Program powinien także być odporny na wpisywanie innych znaków niż liczby i znak , w poszczególnych polach cen. Aby się przed tym zabezpieczyć należy użyć konstrukcji try-catch podczas obliczania sumy. Potrzebna będzie także funkcja StrToFloat do konwersji tekstu na liczby rzeczywiste. Proszę nazywać (właściwość Name) komponenty odpowiednio do ich opisu np. duzaRadioButton zamiast RadioButton1 albo duzaCenaEdit zamiast Edit1. Komponenty otoczone są GroupBox’em.

12 Ćwiczenia (2) Rozbudować program pierwszy o wybór (za pomocą komponentu ComboBox w stylu csDropDownList) darmowego napoju dla klienta. Dodatkowo należy stworzyć pole edycyjne i przycisk, dzięki któremu będzie można dodawać nowe napoje do listy ComboBox. Nie pozwalać na dodawanie napoi, które są już na liście. Po wybraniu napoju powinno pojawić się okienko z jego nazwą. Można to zrealizować w reakcji na zdarzenie onChange komponentu ComboBox za pomocą funkcji ShowMessage();

13 Ćwiczenia (3) 3. Dokonać dalszej rozbudowy programu o ankietę zrealizowaną za pomocą 2 komponentów ListBox oraz 2 przycisków – ‘Dodaj’ oraz ‘Usuń’. Na pierwszym ListBoxie są wszystkie proponowane promocje, a na drugim pojawiają się te które wybrał klient. Z pierwszego ListBoxa powinna istnieć możliwość przekopiowania jednej lub wielu pozycji (naraz) do drugiego ListBoxa realizowana po zaznaczeniu promocji i naciśnięciu przycisku Dodaj. Z kolei zaznaczając elementy na ListBox2 i naciskając przycisk Usuń kasujemy wybraną pozycję z ListBox2. Na ListBox2 powinna istnieć możliwość wyboru tylko jednego elementu naraz. Dodatkowo nie pozwalać użytkownikowi na wybranie 2 razy tej samej promocji.

14 Ćwiczenia (4) 3. Koncepcja rozwiązania zadania 3
//kopiowanie elementów z ListBox1 do ListBox2 Pętla po wszystkich elementach ListBox1 { jeżeli dany element jest zaznaczony jeżeli elementu nie ma na ListBox2 dodaj element zaznaczony do ListBox2 } //usuwanie elementów z ListBox2 (tutaj nie trzeba pętli bo wybrany może być //tylko jeden element naraz) Skasuj element o indeksie ListBox2->ItemIndex

15 Ćwiczenia (5) 4. Napisać program wykorzystujący komponent ScrollBar do zmiany koloru formularza. Kolory wybierane są za pomocą 3 suwaków R,G,B. Zmiana powinna następować dynamicznie, natychmiast po przesunięciu wartości na jednym z suwaków. Do zmiany koloru formularza należy napisać jedną funkcję i wywoływać ją w reakcji na zmianę wartości na suwakach. Dodatkowo na początku programu suwaki powinny być ustawione na wartości (127,127,127) i powinno zostać to od razu odzwierciedlone na ekranie (podpowiedź: należy wykorzystać zdarzenie onCreate formularza i tam wywoływać funkcję zmiany koloru formularza). Do zmiany koloru wykorzystać poniższą instrukcję: Form1->Color = TColor(RGB(r,g,b));


Pobierz ppt "Programowanie wizualne"

Podobne prezentacje


Reklamy Google