Zasady Programowania (Projektowanie) C++ - część 6 1/9 Programowanie Wizualno Obiektowe (3)

Podobne dokumenty
Programowanie Wizualno Obiektowe - zajęcia 2 (PWO_BCPP_2_2) Tworzenie i kompilowanie projektów Programowanie Wizualno Obiektowe Zajęcia 2, część 2

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Ćwiczenie 6 Proste aplikacje - podstawowe komponenty.

Podstawowe kontrolki graficzne. Obsługa plików poprzez kontrolki

5.2. Pierwsze kroki z bazami danych

Wprowadzenie do systemu Delphi

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Programowanie Wizualno Obiektowe - zajęcia 5 (PWO_BCPP_5_1) 1 Tworzenie plików pomocy Programowanie Wizualno Obiektowe Zajęcia 5, część 1

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Ćwiczenie 4 Aktualizacja tabel. 1. Skopiuj aplikację przygotowaną na poprzednich zajęciach w katalogu SKOKI1 do nowego katalogu SKOKI2.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Programowanie Obiektowe GUI

Delphi podstawy programowania. Środowisko Delphi

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

Zaawansowane aplikacje internetowe - laboratorium

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Jak napisaś edytor tekstowy w Delphi (wersja Delphi 2009)

TabControl kontrolka odpowiedzialna za wyświetlenie zestawu zakładek. PageControl podobnie jak TabControl ale posiada wbudowane strony.

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Programowanie w środowisku graficznym GUI

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

KROK 17 i 18. Cel: Tworzymy oddzielne okno - O autorze. 1. Otwórz swój program. 2. Skompiluj i sprawdź, czy działa prawidłowo.

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

W kolejnym odcinku zajmiemy się umieszczaniem w naszym projekcie zestawu ikon służących szybkiemu korzystaniu z opcji programu.

Tworzenie okna dialogowego w edytorze raportu SigmaNEST. część 1

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

Tablet bezprzewodowy QIT30. Oprogramowanie Macro Key Manager

Instrukcja redaktora strony

Programowanie obiektowe

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Programowanie obiektowe

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

DIAGNOSTYKA DIAGNOSTYKA

Programowanie Wizualno Obiektowe - zajęcia 6 (PWO_BCPP_6_1) 1 Tworzenie plików pomocy Programowanie Wizualno Obiektowe Zajęcia 6, część 1

5.4. Tworzymy formularze

Dodanie nowej formy do projektu polega na:

Utworzenie interfejsu graficznego za pomocą formularza użytkownika w VBA

1. Logowanie do systemu

Ćwiczenie 5 Menu programu

Metodyka programowania. Edytor tekstu. Specyfikacja

5. Kliknij teraz na ten prostokąt. Powinieneś w jego miejsce otrzymać napis. Jednocześnie została wywołana kolejna pozycja menu.

Przypisy i przypisy końcowe

Tworzenie bazy danych na przykładzie Access

Ćwiczenia 9 - Swing - część 1

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

UMOWY INSTRUKCJA STANOWISKOWA

Modelowanie obiektowe - Ćw. 1.

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Przygotowanie formularza do wypożyczenia filmu:

Informatyka II. Laboratorium Aplikacja okienkowa

Wykład 7 Okna dialogowe, menu, pasek stanu itp.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

BAZY DANYCH Panel sterujący

Laboratorium 8 ( Android -pierwsza aplikacja)

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

Pamiętałeś o kopiowaniu i zapisywaniu swojego programu do kolejnych folderów? Jeżeli tak, to:

DODAWANIE ARTYKUŁÓW DO STRONY INTERNETOWEJ

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Temat: Organizacja skoroszytów i arkuszy

Wykład 10 Kolekcje, pliki tekstowe, c.d. Przykład: Notatnik

Dodawanie operacji dodatkowych w WAPRO Mag.

Krzysztof Kluza proste ćwiczenia z baz danych

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Programowanie komputerów

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Tworzenie szablonów użytkownika

Program APEK Użytkownik Instrukcja użytkownika

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Microsoft Visual C++

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Edycja szablonu artykułu do czasopisma

Moduł Handlowo-Magazynowy Przeprowadzanie inwentaryzacji z użyciem kolektorów danych

Lekcja 1: Origin GUI GUI to Graficzny interfejs użytkownika (ang. GraphicalUserInterface) często nazywany też środowiskiem graficznym

KaŜdy z formularzy naleŝy podpiąć do usługi. Nazwa usługi moŝe pokrywać się z nazwą formularza, nie jest to jednak konieczne.

Podstawy WINDOWS 9x, 2000, XP

Instrukcja instalacji Asystenta Hotline

Serwery Statefull i Stateless

Microsoft Visual C : praktyczne przykłady / Mariusz Owczarek. Gliwice, cop Spis treści

Podstawy Programowania 2

NAGŁÓWKI, STOPKI, PODZIAŁY WIERSZA I STRONY, WCIĘCIA

PRACA Z PLIKAMI I FOLDERAMI

Instrukcja obsługi programu:

Dokładny opis instalacji programów RFD można znaleźć w pliku PDF udostępnionym na stronie w zakładce Downland > AutoCAD > Instalacja

Programowanie w Javie

Wybierz polecenie z menu: Narzędzia Listy i dokumenty

Dialogi, Memo i Image. Modified właściwość typu Boolean. Jest automatycznie ustawiana na True kaŝdorazowo po dokonaniu zmian treści wpisanej w Memo.

Transkrypt:

Zasady Programowania (Projektowanie) C++ - część 6 1/9 Zasady Programowania (Projektowanie) C++ część 6 Temat: Programowanie Wizualno Obiektowe. Komponenty podstawowe, aplikacje wielookienkowe, menu z przyciskami szybkiego dostępu, okna dialogowe. Zadanie: Należy napisać aplikację, która będzie umożliwiała tworzenie spisu osób (imię i nazwisko). W aplikacji wykorzystać menu główne, menu przycisków szybkiego dostępu, pola edycyjne, etykiety, oraz komponent TMemo. Wyjście z programu zrealizować poprzez okno dialogowe. Dodatkowo: Zapisywanie danych do pliku i odczytywanie danych z pliku zrealizować korzystając ze standardowych okien dialogowych do otwierania i zapisywania plików. 1. Otwieramy nową aplikację File>NewApplication 2. Zapisujemy projekt przy pomocy File>Save All w katalogu gdzie będzie kompilowany nasz projekt 3. Tworzymy interfejs Rysunek 1. Interfejs programu i spis komponentów

Zasady Programowania (Projektowanie) C++ - część 6 2/9 Dodajemy odpowiednie komponenty w kolejności 1 pole edycyjne Memo (paleta Standard) o nazwie (własność Name): memosoby 2 etykiety Label (paleta Standard) 2 pola edycyjne (paleta Standard) o nazwach edtimie edtnazwisko 1 komponent Button (paleta Standard) o nazwie: btndodaj 1 komponent MainMenu (paleta Standard) 1 komponent Toolbar (paleta Win32) 1 komponent ImageList (paleta Win32) 1 komponent OpenDialog (paleta Dialogs) 1 komponent SaveDialog (paleta Dialogs) 4. Ustawienie własności formularza W celu wyświetlania nazwy programu należy wpisać ją w pole Caption Formularza. Przykładowo może być to nazwa 'Program Osoby v.1'. 5. Projektowanie menu głównego. Po kliknięciu na komponent MainMenu otworzy się tzw. Menu Designer służący do zaprojektowania głównego menu tekstowego. Z każdą opcją można skojarzyć odpowiednią kombinacje klawiszy która ją wywołuje. Skróty klawiszowe można dodać do każdego elementu menu zmieniając jego własność ShortCut->Skrót. Należy zaprojektować menu główne tak, aby miało następujące funkcje - Plik - Otwórz Plik (skrót Ctrl+L) - Zapisz do Pliku (skrót Ctrl+S) - Koniec (skrót Ctrl+Q) Rysunek 2. Projektowanie głównego menu

Zasady Programowania (Projektowanie) C++ - część 6 3/9 6. Wczytywanie danych osób Piszemy odpowiednie procedury do wczytywania danych osób i wypisywania ich przy pomocy komponentu memosoby. Wczytywanie danych osób można zrealizować poprzez wciśnięcie przycisku btndodaj czyli poprzez obsługę zdarzenia OnClick tego przycisku. Dodatkowo wykorzystuje się metodę Lines->Add(tekst) która dodaje nową linijkę z tekstem do zawartości komponentu memosoby. Metoda realizująca dodawanie osób: void fastcall TForm1::btnDodajClick(TObject *Sender) this->memosoby->lines->add(this->edtimie->text+" "+this->edtnazwisko->text); //--------------------------------------------------------------------------- 7. Projektowanie menu przycisków szybkiego dostępu. Menu przycisków szybkiego dostępu zwykle znajduje się pod głównym menu i zawiera przyciski do najważniejszych opcji menu głównego oraz programu. Menu przycisków szybkiego dostępu projektuje się wykorzystując komponenty ImageList (paleta Win32), oraz Toolbar (paleta Win32). Dodawanie przycisków szybkiego dostępu wykonuje się w następujący sposób: Kliknąć na komponent ImageList. Powinno pokazać się okienko do ustawiania własności obrazków, które później pokażą się na przyciskach szybkiego dostępu. Zostało to przedstawione na rysunku 3. Rysunek 3. Okno do ustawiania własności listy obrazków Każdy z rysunków, które indeksowane są od 0, można dodać wciskając Add i wybierając odpowiedni rysunek z katalogu: C:/Program Files->Common Files->Borland Shared->Images->Buttons UWAGA: Nie zawsze katalog znajduje się na dysku C, może też mieć inną nazwę. Katalog ten jest tworzony w momencie instalacji oprogramowania firmy Borland. Z tego powodu mogą wystąpić różnice jeśli wykorzystywany jest inny kompilator.

Zasady Programowania (Projektowanie) C++ - część 6 4/9 Jeśli podczas wybrania rysunku dzieli się on na dwa rysunki należy jeden z nich skasować (szary rysunek pokazujący się podczas dezaktywacji przycisku). Wybrać jeden rysunek odpowiednio do każdej z funkcji wywoływanej z paska skrótów. W przypadku opisywanego programu mogą być to trzy funkcje: otwieranie pliku, zapisywanie do pliku, wyjście z programu. Kolejne przyciski można dodać klikając prawym przyciskiem myszy na komponent ToolBar, po otworzeniu menu pomocniczego, przy pomocy komendy New Button, oraz ewentualnie przerwę pomiędzy grupami przycisków przy pomocy komendy New Separator (utworzyć 3 przyciski). Chcąc powiązać przyciski z rysunkami należy we własnościach komponentu ToolBar ustawić własność Images na nazwę komponentu z listą obrazków ImageList np. ImageList1. 8. Wykorzystanie standardowych okien dialogowych (Dialogs) Okna dialogowe pozwalają na komunikacje z użytkownikiem i albo czekają na jego reakcję jak wybór, lub potwierdzenie albo przekazują mu informacje np. o programie, o wykonaniu zadania. Ponieważ są oddzielnymi formularzami, dodaje się je podobnie jak formularze. Należą one jednak do wyspecjalizowanych klas formularzy. W aplikacji zostanie wykorzystane standardowe okno dialogowe, przy pomocy którego będzie możliwe zamknięcie aplikacji dopiero po uzyskaniu potwierdzenia od użytkownika. Nie zamykając projektu dodajemy do niego okno dialogowe (nowy formularz) wybierając opcje File->New->Other->Dialogs i wybierając jedno z dostępnych standardowych okien dialogowych Standard Dialog. Rysunek 4. Standardowe okno dialogowe do zakończenia pracy z programem. Następnie należy w pliku związanym z tym oknem dialogowym (np. Unit2.h) sprawdzić, w linii zdefiniowanych zmiennych jak nazywa się obiekt odpowiadający za okno dialogowe TOKBottomDlg *OKBottomDlg; //--------------------------------------------------------------------- fastcall TOKBottomDlg::TOKBottomDlg(TComponent* AOwner) : Tform(AOwner)

Zasady Programowania (Projektowanie) C++ - część 6 5/9 Chcąc umożliwić wywoływanie okienka dialogowego z programu głównego, oraz pobierać z niego informacje, należy dołączyć plik z nim związany przy pomocy dyrektywy #include na początku programu związanego z formularzem w którym to okno dialogowe będzie wywoływane. #include "Unit2.h" Otwarcie okienka dialogowego wykonuje się poprzez wybranie metody (analogicznie do przełączania pomiędzy formularzami): OKBottomDlg->Show() - możliwe jest przełączanie pomiędzy oknami programu OKBottomDlg->ShowModal() -przełączanie pomiędzy oknami programu jest zablokowane Informacje o tym, który przycisk okna dialogowego został naciśnięty można uzyskać sprawdzając własność okienka dialogowego ModalResult. Każdy z przycisków ma przyporządkowaną wartość o standardowej nazwie: Przycisk OK Przycisk Cancel - OKBottomDlg->ModalResult==mrOk - OKBottomDlg->ModalResult==mrCancel Zrealizować zamykanie programu poprzez obsłużenie zdarzenia OnClick elementu Koniec głównego menu aplikacji oraz przycisku szybkiego dostępu w menu z przyciskami szybkiego dostępu w okienku głównym. Wywołane zostanie okno dialogowe w trybie modalnym (ShowModal), oczekujące na naciśnięcie któregoś przycisku. Okno dialogowe będzie zwracało wartość modalną ModalResult informującą, który przycisk został wciśnięty. Można zrealizować to w postaci następującej procedury void fastcall TForm1::Wyjscie1Click(TObject *Sender) OKBottomDlg->ShowModal(); if (OKBottomDlg->ModalResult==mrOk) this->close(); ; //--------------------------------------------------------------------------- UWAGA: Należy zwrócić uwagę na wykorzystanie identyfikatora ' this->', w tym przypadku ponieważ OKBottomDlg jest oddzielnym formularzem, nie jest on elementem (obiektem) należącycym do głównego formularza aplikacji. Identyfikator 'this->', odnosi się do aktualnego formularza i zakres jego wykorzystania jest tylko 'wewnątrz' danego fomularza i kodu związanego z danym formularzem (programowanie obiektowe).

Zasady Programowania (Projektowanie) C++ - część 6 6/9 Napisaną aplikację zmodyfikować poprzez dodanie następujących elementów 1. Wpisywanie danych z pliku tekstowego do pola Memo z wykorzystaniem okna dialogowego, wypisywanie informacji o pliku. 2. Wpisywanie danych do pliku tekstowego z pola Memo z wykorzystaniem okna dialogowego, wypisywanie informacji o pliku 3. Dodanie licznika osób wpisanych przez użytkownika 4. Czyszczenie pola Memo i zerowanie licznika osób

Zasady Programowania (Projektowanie) C++ - część 6 7/9 9.1 Wczytywanie pliku tekstowego do pola memosoby Aby zrealizować tą opcję, należy skorzystać ze standardowego okna dialogowego służącego do otwierania plików OpenDialog. We własnościach komponentu OpenDialog określić pliki, które mogą być wyświetlane wybierając własność Filter i definiując filtry do wyboru odpowiednich plików wykorzystując tzw. edytor filtrów FilterEditor i modyfikując pola: Filter Name nazwa odpowiedniego filtru np. plik tekstowy, Filter możliwe do otwierania rozszerzenia np. *.txt. Rysunek 5. Dodawanie filtrów do okna dialogowego Wczytywanie pliku tekstowego z wykorzystaniem okienka dialogowego jest wykonywane poprzez obsługę zdarzenia OnClick odpowiedniego elementu głównego menu. Informacja o otwartym pliku będzie wyświetlania na etykiecie lblnazwa. Otwarcie okna dialogowego do wyboru otwieranego pliku OpenDialog wykonuje się poprzez wywołanie metody tego okna Execute(). Powoduje to otwarcie okna dialogowego w trybie modalnym (bez możliwości przełączania pomiędzy oknami programu). Po wybraniu odpowiedniego pliku, jego nazwa przechowywana jest w zmiennej OpenDialog.FileName. Wpisanie zawartości pliku testowego wykonuje metoda LoadFromFile(nazwa_pliku) klasy TLines. Obiektem tej klasy jest własność Lines klasy TMemo.

Zasady Programowania (Projektowanie) C++ - część 6 8/9 Komponent Memo realizuje prostą kontrolkę edycji wielowierszowej (patrz Zasady Programowania (Projektowanie) - C++ - część 5 ). Procedura do wczytania danych do pola Memo z pliku którego nazwa została wybrana przy pomocy okna dialogowego. void fastcall TForm1::Otworz1Click(TObject *Sender) if (this->opendialog1->execute()==true) this->memosoby->lines->loadfromfile(this->opendialog1->filename); //----------------------------------------------------------------------- W przypadku okien dialogowych do wyboru plików zmodyfikować należy dodatkowe pola, automatycznie ustawiające rozszerzenie i miejsce wybieranego pliku InitialDir Określa katalog w którym wybierane są pliki. FilterIndex Określa która opcja z listy filtrów jest wybrana (licznik od 1). DefaultExt Określa rozszerzenie pliku które jest automatycznie ustawiane (jeśli znajduje się na liście filtrów rozszerzeń), np. txt. 9.2 Zapisywanie informacji z pola memosoby do pliku tekstowego Aby zrealizować tą opcję, należy skorzystać ze standardowego okna dialogowego służącego do zapisywania plików SaveDialog. Właściwości tego komponentu zmienia się analogiczne jak właściwości komponentu OpenDialog. Procedura do wczytania danych z pola Memo do pliku którego nazwa została wybrana przy pomocy okna dialogowego. void fastcall TForm1::Zapisz1Click(TObject *Sender) if (this->savedialog1->execute()==true) this->memosoby->lines->savetofile(this->savedialog1->filename); //-----------------------------------------------------------------------

Zasady Programowania (Projektowanie) C++ - część 6 9/9 10 Licznik osób Kolejnym elementem dodanym do aplikacji będzie licznik osób i wyświetlenie ilości wpisanych osób. W tym celu można skorzystać z komponentu Label (paleta Standard), dodając go do aplikacji i i odpowiednio nazywając (własność Name LblIloscOsob). Następnie w aplikacji należy zadeklarować tzw. pole publiczne (zmienną typu integer). Pola publiczne są pojęciem z programowania obiektowego i są to elementy klas. W najprostszym przybliżeniu odpowiadają one zmiennym które są elementami struktur (rekordów). W celu zadeklarowania odpowiedniego pola należy przejść do kodu pliku nagłówkowego formularza 'Unit1.h'. Następnie znaleźć linijkę odpowiadającą polom publicznym: public: // User declarations Po tej linijce należy zadeklarować zmienną typu całkowitego, która będzie przechowywała ilość wpisanych osób. public: // User declarations int iloscosob; W kolejnym kroku należy zainicjować licznik osób (wpisać do niego wartość 0), co powinno zostać wykonane w momencie inicjowania aplikacji (zdarzenie oncreate Formularza). Procedura inicjacyjna może być następująca. void fastcall TForm1::FormCreate(TObject *Sender) this->iloscosob=0; //--------------------------------------------------------------------------- Następnie, należy dodać zmodyfikować procedurę dodawania osób, tak aby dodatkowo modyfikowany był licznik osób. void fastcall TForm1::Button1Click(TObject *Sender) this->memosoby->lines->add(this->edtimie->text+this->edtnazwisko->text); // modyfikacje this->iloscosob++; this->lbliloscosob->caption=inttostr(this->iloscosob);