WWW: E-mail: Adres: Instytut Informatyki ul. Będzińska 39 41-200 Sosnowiec Pokój 214 Telefon: 32 3689765 Zaliczenie zajęć: Ocena z projektu + aktywność + 1-2 kolokwia. Obecność na zajęciach obowiązkowa.
1. Marian Wybrańczyk: C++Builder 6 i bazy danych. Helion, 2005. 2. Andrzej Daniluk: C++Builder. Kompendium programisty. Helion, 2003. 3. Kent Reisdorph: C++ Builder 6 dla każdego. Helion, 2003. 4. Stephen Prata : Szkoła programowania. Język C++. Helion, 2006. 5. Pliki pomocy programu C++ Builder.
Łagodny start Pierwsze aplikacje okienkowe Programowanie sterowane zdarzeniami
Komunikaty powinny byd szczegółowe by odzwierciedlad naturę błędu. Uzywaj fantazyjnych czcionek, poszerzasz dzieki temu horyzonty uzytkownika!
Uwagi od użytkowników są najważniejsze. Natychmiast implementuj i realizuj wszystkie ich sugestie. Niech wiedzą, że Ci na nich zależy. Masz super inteligentnych użytkowników systemu, którym nigdy nie przyda się instrukcja obsługi. Jej i tak nikt nie czyta.
1. Słuchaj użytkowników krytycznie. 1. Generation-gap 2. Geek mode 2. KISS! 3. Użytkownik Twoim przyjacielem - To jest za trudne by się tego nauczyć 4. Hej, to można kliknąć!
Komputery coraz lepiej naśladują rzeczywistość Fotorealistyczna grafika Efekty przezroczystości Trójwymiarowość Bezpośrednia interakcja Realistyczna fizyka Ale czy dla GUI to dobre?
http://ignorethecode.net/blog/2010/01/21/realism_in_ui_design
Widok drzewa elementów Komponenty Forma tu rozkładamy elementy GUI Kod Właściwości wybranego elementu
Klasy definicje klas stanowiących szablon dla obiektów. Obiekty egzemplarze klas zdefiniowanych w VCL, składające się z metod (funkcji składowych), właściwości oraz zdarzeń. Właściwości reprezentują dane obiektu, metody operacje realizowane prze obiekt, zdarzenia warunki na które obiekt odpowiada wykonaniem akcji. Wszystkie obiekty dziedziczą właściwości klasy TObject. Komponenty to obiekty posiadające wizualną reprezentację, którymi można manipulować w czasie projektowania aplikacji. Wszystkie komponenty dziedziczą właściwości z klasy TComponent. Podprogramy globalne podprogramy (procedury i funkcje pochodzące z biblioteki VCL i RTL. Nie są częściami klas, są jednak intensywnie wykorzystywane z metod obiektów. Stałe i zmienne globalne predefiniowane stałe lub zmienne, z których można korzystać w programie bez ich definiowania (np. Application).
Klasa TForm reprezentuje standardowe okno aplikacji. Dla każdego okna tworzonego w ramach aplikacji definiowana jest jego własna klasa, dziedzicząca właściwości z klasy TForm. Klasy domyślnie otrzymują nazwy TForm1, TForm2, itd. W typowych sytuacjach każde okno tworzone z wykorzystaniem VCL jest obiektem klasy pochodnej od TForm. Forma zwykle jest właścicielem obiektów reprezentujących elementy występujące w oknie przycisków, linii edycyjnych, list itp. Obiekty reprezentujące formy są domyślnie tworzone automatycznie i żyją przez cały czas wykonania programu. Programista może jednak powoływać obiekty życia dynamicznie, kontrolując czas ich życia.
Frames (czyli ramki): umożliwiają stworzenie gotowych programów w programach zarówno kodu, jak i elementów interfejsu graficznego MainMenu pozwala na stworzenie menu głównego (zwykle umieszczanego tuż pod górną belką aplikacji). C++ Builder pozwala rzecz jasna na tworzenie wielopoziomowego menu głównego. PopupMenu tworzenie menu kontekstowego, wywoływanego prawym klawiszem myszy. Tych komponentów może być więcej niż jeden i można je podpinać do różnych innych elementów formy. Label prosty (ale nie ubogi!), zwykle statyczny tekst na formie Edit stosowany jako pole wejściowe do krótkich form tekstowych. Memo jw., ale do dłuższych form tekstowych. Może mieć własne suwaki pionowe i poziome. Button po prostu przycisk
Checkbox stosowany do tworzenia pól wielokrotnego wyboru RadioButton jw. ale dla pól jednokrotnego wyboru ListBox pole z listą elementów do wyboru. Można je przestawić, aby możliwy był wybór wielokrotny. ComboBox podobne do powyższego, ale używa się go wyłącznie do wyborów jednokrotnych. Oprócz tego wyświetla zwięzłą listę rozwijaną. ScrollBar suwak używany do precyzyjnego wyboru wartości; jest on identyczny do automatycznie wyświetlanych suwaków przesuwających formę po zmniejszeniu jej rozmiaru. GroupBox element grupujący przyciski RadioBox tworzy oddzielną grupę przycisków typu radio. Pozwala np. na stworzenie wielu pytań z oddzielnymi grupami odpowiedzi Panel podstawowy element grupujący ActionList przydatny przy dużych projektach, tworzy spis procedur, które mogą być wykonywane przez inne komponenty.
Skrót F11 Caption
Właściwości komponentów: Można zmieniać za pośrednictwem Inspektora Obiektów w trakcie projektowania. można zmieniać programowo w trakcie działania programu: Przykład: Form1->Height = 100; Form1->Width = 300; Form1->Caption = "Okienko"; Form1->BorderStyle = bsdialog; Przy założeniu, że forma nazywa się Form1
Ważne właściwości: Text Określa tekst jaki pojawia się w kontrolce. Font Kontroluje atrybuty związane z czcionką tekstu wewnątrz kontrolki Edit (krój, wielkość, kolor). Autosize pozwala na zmianę wysokości pola w zależności od wielkości wybranej czcionki. ReadOnly określa czy użytkownik może zmienić tekst wewnątrz pola. MaxLength definiuje liczbę znaków jakie mogą zostać wpisane. SelText zawiera aktualnie zaznaczony fragment tekstu. SelStart, SelLength określa początek oraz długość zaznaczonego tekstu HideSelection określa czy zaznaczenie tekstu (wykonane z poziomu kodu) jest widoczne, gdy kontrolka traci focus. AutoSelect określa, czy tekst wewnątrz kontrolki jest automatycznie zaznaczany, gdy kontrolka zyskuje focus. PasswordChar - jeżeli jest ustawione, kontrolka zamienia wprowadzony tekst na zestaw podanych znaków.
Ważne właściwości: Aligment określa wyrównanie tekstu (taleftjustify, tacenter, tarightjustify). CaretPos określa pozycję kursora (x, y) wewnątrz kontrolki. Lines służy do manipulacji tekstem w komponencie memo linia po linii (do pracy z pełnym tekstem lepiej wykorzystać właściwość Text). WordWrap określa zawijanie słów. Wybrane metody: Clear() czyści cały tekst. Memo1->Clear(); Odwołanie się do tekstu w trzeciej linii: Memo1->Lines->Strings[2]; Wyznaczenie liczby linii: Memo1->Lines->Count; Dodanie nowej linii: Memo1->Lines->Add("Ala ma kota"); Usunięcie pierwszej linii: Memo1->Lines->Delete(0); Odwołanie do całości tekstu: Memo1->Text;
Zaprojektuj następujące interfejsy jednookienkowe: Dla kantoru wymiany walut (funkcjonalności: wprowadzenie kursów wymiany, przeliczanie walut) Dla programu obliczającego średnią ze studiów (zakładamy liczbę stałą liczbę przedmiotów w każdym semestrze) Dla programu analizującego częstość występowania danej litery w zadanym tekście wprowadzanym z klawiatury Postaraj się trzymać metodyki KISS
Komponenty wstawiane na formę reprezentowane są w kodzie za pośrednictwem wskaźników, tworzeniem i usuwaniem obiektów zajmuje się kod biblioteki.
Dyrektywa #pragma hdrstop Jeżeli po zakończeniu listy plików nagłówkowych użyjemy tej dyrektywy (ang. header stop), poinformujemy kompilator, że właśnie wystąpił koniec listy plików nagłówkowych, które mają być prekompilowane. Dyrektywa #pragma argsused Użycie tej dyrektywy zapobiega ewentualnemu wyświetlaniu komunikatu będącego ostrzeżeniem, że jeden z argumentów funkcji nie jest wykorzystywany. Dyrektywę #pragma argsused (ang. arguments used) należy umieszczać przed funkcją. Dyrektywa #pragma package(smart_init) Zapewnia, że inicjalizacja modułów odbywa się we właściwej kolejności (w przypdku, gdy Unit1 zależy od Unit2 najpierw inicjowany jest Unit2). Dyrektywa #pragma resource "*.dfm Oznacza moduł jako wykorzystujący formę i zapewnia że istnieje odpowiedni plik nagłówkowy dla pliku dfm. Konwencja fastcall (szybkie wywołanie) zapewnia, że parametry konstruktora zostaną przekazane poprzez rejestry procesora.
Proszę wejść na stronę internetową http://programowanie.siminskionline.pl/?page_id =85 Oraz pobrać i zapoznać się z działaniem, zastosowanymi komponentami, ustawionymi właściwościami oraz kodem następujących programów:» Obramowanie okna,» Okno z dziurami,» Znikające okno, Jakie nieomówione jeszcze komponenty zostały tam użyte? Do czego one służą? Jakie nowe funkcje zostały tam zastosowane?
Uzupełnij programy, których GUI stworzyłeś kilka minut temu o podstawową funkcjonalność: Kantor: wpisywanie kursów, wybór waluty do przeliczenia, przyciski wykonujące operacje, itp. Średnia: pola do wpisywania ocen, przyciski do zerowania i wysyłania formy, opisy elementów, itp.. * Częstość: duże pole do wpisu tekstu, co więcej?