ZASADY PROGRAMOWANIA semestr zimowy 2003/2004 Zajecia: 11 Zajecia z Delphi: 4

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

Wprowadzenie do systemu Delphi

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

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

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

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

Delphi podstawy programowania. Środowisko Delphi

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

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

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

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

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

1. Otwórz swój program. 2. Przejdź do źródła. Posłuży ci do tego funkcja Toggle Form/Unit lub naciśnięcie klawisza F12. [rys.1]

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

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

Instrukcja obsługi programu:

Programowanie obiektowe

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Tworzenie własnych komponentów

Laboratorium 15: Bazy Danych Tworzenie bazy danych i programowanie elementów nawigacyjnych aplikacji stworzonej przy pomocy technologii dbexpress

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

Podstawy Programowania 2

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

Niniejszy ebook jest własnością prywatną.

jako integralna część Regionalnego Systemu Informacji Przestrzennej (RSIP)

UMOWY INSTRUKCJA STANOWISKOWA

Wykład 7: Lazarus GUI

Tablice, DataGridView

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

W dowolnej przeglądarce internetowej należy wpisać poniższy adres:

Zaprojektuj grę logiczną NIM. Program losuje w każdym rzędzie od 1 do 10 grzybów. Gracz

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.

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Makropolecenia w PowerPoint Spis treści

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Delphi. Lazarus. Kompilatory Delphi. Linki do stron o Delphi

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

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800.

Materiały do laboratorium MS ACCESS BASIC

Przygotowanie komputera do pracy w trybie LAN-LAN

1. Logowanie się do panelu Adminitracyjnego

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

Delphi podstawy programowania. Pliki INI

Informatyka 1. Przetwarzanie tekstów

Krótka instrukcja instalacji Adobe Acrobat Reader

W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1:

(wersja robocza) Spis treści:

Niniejszy ebook jest własnością prywatną. Został zakupiony legalnie w serwisie Netpress.pl, będącym oficjalnym Partnerem Wydawcy.

Modelowanie obiektowe - Ćw. 1.

Wykład 03 JavaScript. Michał Drabik

VBA praca z makrami w Excelu

programu Neofon instrukcja obsługi Spis treści

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

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

Wprowadzanie danych organizacyjnych szkoły

Podręczna pomoc Microsoft Power Point 2007

Instrukcja uŝytkowania programu

Pracownik dodawanie danych o pracownikach

Podręcznik użytkownika. Instrukcje

VBA praca z makrami w Excelu

4 Net-Device Monitor. Net-Device Monitor

Rozmiar pola (długość danych)

Podręcznik użytkownika Obieg dokumentów

Podstawy obsługi modułu administracyjnego

Formy dialogowe w środowisku Gnome

Instrukcja Arkusz ZSZ

Operacje. instrukcja obsługi wersja 2.9.2

5.2. Pierwsze kroki z bazami danych

BAZY DANYCH Panel sterujący

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

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

Instrukcja obsługi. Helpdesk. Styczeń 2018

Baza danych część 8. -Klikamy Dalej

INSTRUKCJA OBSŁUGI DLA FUNKCJONALNOŚCI PIELĘGNIARKI AMBULATORYJNEJ PIELĘGNIARKI ŚRODOWISKOWEJ. Wersja 1.0

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Po uruchomieniu Lazarusa należy wybrać z paska górnego opcję Projekt i następnie Nowy Projekt. Pokaże się okno:

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

ZINTEGROWANY SYSTEM ZARZĄDZANIA TREŚCIĄ

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.

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

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

Widok po uruchomieniu. Widok w trakcie gry

Instrukcja warunkowa i wyboru

Informatyzacja Przedsiębiorstw

PROGRAMOWANIE OBIEKTOWE ĆWICZENIE 1

Instrukcja obsługi Zaplecza serwisu biznes.gov.pl dla Pracowników Instytucji w zakresie weryfikacji opisów procedur przygotowanych przez Zespół epk

Munsol - dokument zmian. MUNSOL - Dokument zmian

Instrukcja obsługi programu Do-Exp

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Wstęp do programowania 2

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

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

Instrukcja obsługi Zaplecza epk w zakresie zarządzania tłumaczeniami opisów procedur, publikacji oraz poradników przedsiębiorcy

Klasy i obiekty cz II

Połączenie AutoCad'a z bazą danych

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Edytor Edit+ - dodawanie zdjęć i. załączników. Instrukcja użytkownika

PRACA Z PLIKAMI I FOLDERAMI

Transkrypt:

ZASADY PROGRAMOWANIA semestr zimowy 2003/2004 Zajecia: 11 Zajecia z Delphi: 4 Temat: Zadanie: Obsluga standardowych okien dialogowych. Komponenty: TMainMenu, TPanel, TradioButton, TComboBox, TMemo, TStatusBar. Program powinien: umozliwic wprowadzanie danych osobowych (imie i nazwisko) do tablicy typu rekordowego oraz usuwanie ostatniego elementu; po wybraniu opcji dodatkowych za pomoca okna wyboru z rozwijanym menu oraz za pomoca alternatywnego wyboru opcji, powinien wyswietlic dane w oknie edycyjnym zgodnie z wyborem uzytkownika; zawartosc okna powinien móc zapisywac do pliku tekstowego. 1. Otwieramy nowa aplikacje: File>New>Application. 2. Zapisujemy projekt wraz z modulem: File>Save All w katalogu, w którym kompilator bedzie mógl utworzyc plik exe. 3. Dodajemy komponenty w kolejnosci (zmieniamy cechy Name i Caption): panele Tpanel (paleta Standard) oraz ich elementy okno TMemo pasek stanu TstatusBar (paleta Win32) menu programu TmainMenu (paleta Standard) oraz komponent standardowego okna zapisywania do pliku TsaveDialog (paleta Dialogs) na oknie Memo po uruchomieniu programu nie beda one widoczne.

2 Panele grupuja elementy na nich umieszczone tworza strukture drzewiasta (patrz. Object TreeView). Ustawienie suwaków dla okna Memo: zakladka Properties okna Objecy Inspector, pole ScrollBars wybieramy ssboth. 4. Projektowanie menu programu rozpoczynamy od dwukrotnego klikniecia na komponencie MainMenu pojawia sie Menu Designer, wprowadzajac poszczególne pozycje otrzymujemy: 5. Dwukrotne klikniecie na element menu Wyjscie doda funkcje obslugujaca zdarzenie onclick, gdzie na poczatku wpisujemy tylko (elementy dopisywane kursywa): procedure TForm1.Wyjscie1Click(Sender: TObject); Close; PRZYPOMNIENIE: jezeli nie mamy pewnosci jakie pola i metody posiada dany obiekt nalezy wpisac jego nazwe i kropke. Kompilator wyswietli liste dostepnych opcji. W tym przypadku mozna bylo napisac Form1. i poczekac: wybór wystarczy zatwierdzic enterem.

3 6. Za pomoca kodu programu mozna utworzyc panele na pasku statusu oraz ustalic ich szerokosci, aby wykonac to w momencie uruchomienia programu nalezy wybrac zdarzenie OnCreate zakladka Events dla obiektu Form1. procedure TForm1.FormCreate(Sender: TObject); var i : integer; for i := 0 to 4 do form1.statusbar1.panels.add; form1.statusbar1.panels[0].width:=75; form1.statusbar1.panels[1].width:=75; form1.statusbar1.panels[2].width:=150; form1.statusbar1.panels[3].width:=150; 7. Deklarujemy nasz typ rekordowy i wektor danych przed deklaracja klasy (te deklaracje moga byc równiez umieszczone w czesci prywatnej naszej klasy TForm): type osoba = record imie : string; nazwisko : string; dane = array[1..10] of osoba; oraz nasze zmienne (w czesci prywatnej klasy TForm1): private MojeDane : dane; Ostatni : integer; PokazPierwszy : boolean; PokazWszystkie : boolean; PokazImie : boolean; PokazNazwisko : boolean;

4 8. Deklarujemy wlasne procedury wpisywania danych do naszego wektora MojeDane. Deklaracje w czesci prywatnej: procedure DodajElement(imie:string;nazwisko:string); procedure UsunElement; oraz w czesci implementacyjnej kod procedur: procedure TForm1.DodajElement; Ostatni:=Ostatni+1; if Ostatni <11 then Form1.IlElementowLbl.Caption:=IntToStr(Ostatni); Form1.StatusBar1.Panels[1].Text:='Elementow '+IntToStr(Ostatni); MojeDane[Ostatni].imie:=imie; MojeDane[Ostatni].nazwisko:=nazwisko; Form1.UsunBtn.Enabled:=true; if Ostatni = 10 then Form1.TablicaZapelnionaLbl.Caption:='Tablica z danymi wypelniona'; Form1.StatusBar1.Panels[4].Text:='KONIEC WPROWADZANIA DANYCH'; Form1.DodajBtn.Enabled:=false; W nawiazaniu do przypomnienia, jezeli wpiszemy nazwe formularza, to potem po kropce mamy dostepne jego cechy (pola i metody). Zostalo to pokazane powyzej kursywa teksty wpisywane przez nas, a tekstem normalnym wykorzystane podpowiedzi kompilatora. W dalszej czesci pomijane bedzie takie formatowanie tekstu tego dokumentu. Nasza procedura usuwania nie bedzie usuwac elementów tylko zmieni wskaznik ostatniego elementu kolejne dodanie imienia i nazwiska spowoduje nadpisanie: procedure TForm1.UsunElement; Ostatni:=Ostatni-1; Form1.ImieEdit.Clear; Form1.NazwiskoEdit.Clear; Form1.IlElementowLbl.Caption:=IntToStr(Ostatni); Form1.StatusBar1.Panels[1].Text:='Elementow '+IntToStr(Ostatni); Form1.DodajBtn.Enabled:=true; Form1.TablicaZapelnionaLbl.Caption:=''; if Ostatni =9 then Form1.TablicaZapelnionaLbl.Caption:='jest jeszcze jedno miejsce'; Form1.StatusBar1.Panels[4].Text:=''; if Ostatni=0 then Form1.UsunBtn.Enabled:=false; Nalezy zwrócic uwage na blokowanie przycisków dodawania i usuwania. Jezeli nie mamy elementów, to nie mozemy ich usuwac. Kiedy mamy wypelniony wektor z danymi, to nie mozemy dalej dopisywac. Przcisk Usun nalezy na wstepie zablokowac (cecha Enabled). W tych procedurach odwolujemy sie do paneli paska stanu programu. Nalezy go utworzyc w czesci inicjalizujacej program. W tym celu nalezy kliknac na formularz i wybrac zdarzenie OnCreate i nastepnie zdefiniowac nasze parametry wejsciowe:

5 procedure TForm1.FormCreate(Sender: TObject); var i : integer; for i:=0 to 4 do form1.statusbar1.panels.add; form1.statusbar1.panels[0].width:=50; form1.statusbar1.panels[1].width:=75; form1.statusbar1.panels[2].width:=100; form1.statusbar1.panels[3].width:=150; Ostatni:=0; Form1.TablicaZapelnionaLbl.Caption:=''; Aby indeksowac petle nalezy dodac zmienna i pomiedzy czescia publiczna i implementacyjna: public { Public declarations } var Form1: TForm1; i : integer; implementation 9. Podlaczenie wlasnych procedur dodawania i usuwania pod przyciski Dodaj i Usun. procedure TForm1.DodajBtnClick(Sender: TObject); Form1.DodajElement(Form1.ImieEdit.Text,Form1.NazwiskoEdit.Text); procedure TForm1.UsunBtnClick(Sender: TObject); Form1.UsunElement; TForm1.DodajBtnClick i TForm1.UsunBtnClick informuje nas o tym, ze procedury dotycza zdarzenia OnClick. 10. Wykorzystanie obiektu ComboBox i RadioButton. Aby zdeklarowac liste wyborów obiektu ComboBox nalezy w zakladce Properties inspektora obiektów znalezc pole Items i kliknac w Tstrings, pojawi sie String List Editor. Wpisjemy kolejno ciagi znaków odpowiadajace naszym opcjom. UWAGA Pierwszy element listy ma indeks 0.

6 Jezeli dokonujemy wyboru za pomoca obiektu ComboBox nalezy uaktualnic nasze zmienne. W tym celu wybieramy zdarzenie OnChange. Dodatkowo odblokowujemy przycisk wyswietlania w momencie, gdy juz mamy zaznaczone któres z pól RadioButton. procedure TForm1.WyborCmbBoxChange(Sender: TObject); if Form1.PierwszeRadBtn.Checked or Form1.WszystkieRadBtn.Checked then Form1.WyswietllBtn.Enabled:=true; if Form1.WyborCmbBox.ItemIndex =0 then PokazImie:=true; PokazNazwisko:=false; end else if Form1.WyborCmbBox.ItemIndex =1 then PokazNazwisko:=true; PokazImie:=false; end else PokazImie:=true; PokazNazwisko:=true; Instrukcje uaktualniania naszych zmiennych mozna równiez umiescic w konstrukcji case of. Jezeli nie mielismy zaznaczonego wpierw zadnego z pól RadioButton zmiana wyboru ComboBox nie odblokuje przycisku Wyswietl, w zwiazku z tym nalezy stworzyc procedury, które umozliwia odblokowanie przycisku, w przypadku, kiedy wpierw dokonujemy wyboru z listy, a pózniej wyboru alternatywnego (za pomoca RadioButton). procedure TForm1.PierwszeRadBtnClick(Sender: TObject); if Form1.WyborCmbBox.ItemIndex in [0..2] then Form1.WyswietllBtn.Enabled:=true; procedure TForm1.WszystkieRadBtnClick(Sender: TObject); if Form1.WyborCmbBox.ItemIndex in [0..2] then Form1.WyswietllBtn.Enabled:=true;

7 11. Obsluga wyswietlania w oknie Memo. W zaleznosci od wybranych opcji, w oknie maja zostac wyswietlone imiona, nazwiska lub imiona i nazwiska z uwzglednieniem, czy maja to byc wszystkie elementy z wektora, czy tez tylko pierwszy. W petli indeksowanej do 1 lub do Ostatni dodawane sa linie w oknie Memo, które wczesniej sa skladane w stringu linia zgodnie z wyborem uzytkownika. Po dodanu nowej linii zmienna linia przyjmuje wartosc pusta. procedure TForm1.WyswietllBtnClick(Sender: TObject); var i,licznik:integer; linia:string; if Form1.PierwszeRadBtn.Checked then PokazPierwszy:=true; PokazWszystkie:=false; end else PokazWszystkie:=true; PokazPierwszy:=false; Form1.Memo.Clear; if PokazWszystkie then licznik:=ostatni else licznik:=1; for i:=1 to licznik do if PokazImie then linia:=mojedane[i].imie +' '; if PokazNazwisko then linia:=linia + MojeDane[i].nazwisko; Form1.Memo.Lines.Add(linia); linia:=''; Form1.Memo.Show; Jezeli wybralismy Pokaz pierwszy to nie wybralismy na odwrót, a jezeli nie bylby wybrany zaden, to nie moglibysmy uruchomic tej procedury, bo przycisk bylby zablokowany, stad konstrukcja if Pierwszy then... else.... Nalezy pamietac o tym, ze mozemy wielokrotnie dokonywac wyboru opcji wyswietlania. Jezeli raz wybierzemy tak, a potem inaczej, to musimy pamietac o wpisywaniu wartosci false do naszych zmiennych sterujacych wyswietlaniem, a nie tylko ustawiac je na wartosci true. Oczywiscie mozna nie poslugiwac sie zmiennymi pomocniczymi, tylko korzystac bezposrednio z wartosci odpowiednich pól komponentów sluzacych do wybierania opcji wyswitlania. 12. Wykorzystanie standardowego okna do zapisu do pliku. Na samym poczatku zostal umieszczony komponent SaveDialog. Kiedy go wywolamy, dopóki nie wprowadzimy nazwy pliku i nie zatwierdzimy przyciskiem OK nie mamy dostepu do naszej aplikacji jest to okno modalne. Potwierdzenie wykonania operacji zwraca pole Execute. W zwiazku z tym po kliknieciu w przycisk Zapisz do pliku (ZapiszBtn) powinnismy dopisac: procedure TForm1.ZapiszBtnClick(Sender: TObject); if Form1.SaveDialog.Execute then

8 Form1.Memo.Lines.SaveToFile(Form1.SaveDialog.FileName); Jak widac okno Memo ma mozliwosc zapisania calej swej zawartosci do pliku tekstowego. Podobna procedure nalezy powtórzyc dla menu Plik>Zapisz: procedure TForm1.Zapisz1Click(Sender: TObject); if Form1.SaveDialog.Execute then Form1.Memo.Lines.SaveToFile(Form1.SaveDialog.FileName); 13. Informacja o programie w menu O programie W Menu Designer dodajemu dodatkowo pozycje O programie. Otwieramy nowe okno (podobnie jak projektowanie okna dialogowego na poprzednich zajeciach) menu kompilatora: File>New>Other... zakladka Forms i wybieramy About box. Automatycznie zostaje dolaczony modul do tego okna. Zapisujemy go i dolaczamy w naszym module glównym, gdzie zawarlismy wszystkie nasze procedury dotyczace formularza Form1. W obsludze wywolania menu O Programie (klikamy w nasze menu O porgramie) wpisujemy (oczywiscie mozemy ustalic wiecej parametrów, wlacznie ze zmiana ikonki): procedure TForm1.Oprogramie1Click(Sender: TObject); AboutBox.ProductName.Caption:='PROGRAM TESTOWY'; AboutBox.ShowModal; nasze okno po uruchomieniu programu i wybraniu opcji z menu wyglada nastepujaco: