1 / 28

Programowanie w środowisku DELPHI

Programowanie w środowisku DELPHI. Wstęp do środowiska Delphi Proste typy danych Funkcje i procedury- pojęcie podprogramu. Wstęp do środowiska Delphi. Elementy środowiska Delphi Pliki projektu Główne bloki projektu Etapy tworzenia aplikacji

duaa
Download Presentation

Programowanie w środowisku DELPHI

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programowanie w środowisku DELPHI Wstęp do środowiska Delphi Proste typy danych Funkcje i procedury- pojęcie podprogramu

  2. Wstęp do środowiska Delphi Elementy środowiska Delphi Pliki projektu Główne bloki projektu Etapy tworzenia aplikacji Podstawowe komponenty komunikacji :człowiek-program-człowiek Proste aplikacje

  3. Elementy środowiska Delphi Widok środowiska • Podstawowe narzędzia to: • formatka- to graficzny obraz widoku okna tworzonej aplikacji, na który można osadzać przy pomocy myszki dowolne komponenty pobranez palety • edytor kodu- to edytor tekstu, w którym pisze się ciało programu stosując identyczne operacje edycyjne jak w popularnych edytorach tekstowych • komponenty- to obiekty, które przyśpieszają tworzenie aplikacji, można podzielić ja na wizualne i niewizualne, ich liczba może być rozbudowywana, programista sam może je tworzyć • inspektor obiektów-to narzędzie służące do wizualnego ustawiania podstawowych właściwości aktywnego komponentu jak i do oprogramowania zdarzeń związanych z tym komponentem

  4. Pliki projektu

  5. Główne bloki projektu • W projekcie aplikacji znajdują się plik zawierające kod w języku Object Pascal: • pliki modułów(*.pas), które zaczynają się od słowa kluczowego unit ; plików tych może być więcej niż jeden • plik projektu (*.dpr), który zawiera główny blok zaczynający się od słowa kluczowego program ; istnieje tylko jeden taki plik w obrębie danego projektu

  6. Etapy tworzenia aplikacji • Wybrać z menu File\New\Application lub wykorzystać już istniejąca, która standardowo tworzona jest przy uruchomieniu środowiska • Umieścić komponenty na formatce zgodnie z zapotrzebowaniem • Oprogramować zdarzenia i właściwości związane z tymi komponentami • Oprogramować własne procedury i funkcje związane z tworzonym projektem • UWAGA nie ma reguły kiedy i w którym momencie tworzonego projektu należy go zapisać, ale należy pamiętać o możliwości stracenia całej swojej pracy jeżeli nie będzie ona co jakiś czas zapisywana. • Kompilacja odbywa się za pomocą polecenia z menu Run\Run lub klawisza F9; sama kompilacja bez uruchomienia pliku *.exe to CTRL+F9; sprawdzenie czy moduły są prawidłowo zbudowane to menu Project\Syntax Check • Na pracowni przed kompilacją zapisz swój projekt w utworzonym przez siebie folderze

  7. Podstawowe komponenty komunikacji: człowiek-program-człowiek TLabel- odpowiada Pascalowej instrukcji WRITE- wyświetla tekst TEdit- odpowiada Pascalowej instrukcji Read, służy do wprowadzania danych TButton- to komponent standardowego klawisza

  8. Widok środowiska

  9. Inspektor obiektów

  10. Plik modułu

  11. Budowa pliku programu

  12. Proste aplikacje Zad 1: Standardowe zamknięcie programu Zad 2: Zamknięcie programu z TButton Zad 3: Zamknięcie programu z klawisza ESC lub dowolnie innego Zad 4: Zamknięcie programu z komunikatem ostrzegawczym Zad 5: Suma dwóch liczb zapisanych w komponentach TEdit

  13. Zad 1: Standardowe zamknięcie programu • Wybierz z menu File\New\Application • Zapisz projekt • Skompiluj i uruchom projekt (klawisz F9)- wynikiem będzie czyste okno aplikacji a w folderze gdzie zapisałeś projekt pojawi się plik z rozszerzeniem EXE, jest to Twój program • Zamknij swój program kombinacją klawiszy ALT+F4

  14. Zad 2: Zamknięcie programu z Tbutton • Wybierz z menu File\New\Application • Zapisz projekt • Dodaj do formatki komponent Tbutton • W Inspektorze obiektów zmień właściwość CAPTION (zakładka Properties) komponentu TButton na : ZAMKNIJ • W inspektorze obiektów przejdź do zakładki EVENTS. Odszukaj zdarzenia OnClick i dwa razy szybko kliknij na białym polu obok nazwy tego zdarzenia • W edytorze kodu w pisz komendę close; procedure TForm1.Button1Click(Sender: TObject); • begin • close; • end; • Skompiluj projekt i kliknij myszką w obszarze klawisza

  15. Zad 3: Zamknięcie programu z klawisza ESC lub dowolnie innego Idea zadania to wykorzystanie tablicy kodów ASCII klawiszy do zamknięcia aplikacji przy pomocy wybranego klawisza oraz wykorzystaniu zdarzenia wciśnięcia klawisza wykrywanego przez formatkę aplikacji. • Powtórz czynności z zadania 1 • Możesz wykorzystać zdarzenie KeyPress lub KeyDown • procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); • begin • if key=#27 then close; • end; • procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; • Shift: TShiftState); • begin • if key=27 then close; • end; • Jeżeli na formatce istnieje np komponent TButton to należyjego zdarzenie KeyPress lub KeyDown podpiąć do zdarzeń formatki używając inspektora obiektów w przypadku innych komponentów można wykorzystać „ogniskowanie”aktywności po ich wykorzystani używając właściwości SetFocus wskazanego komponentu tu Button1.SetFocus;

  16. Zamknięcie programu z komunikatem ostrzegawczym • Powtórz czynności z zadania 2 • Uzupełnij procedurę klikniecia klawisza na • procedure TForm1.Button1Click(Sender: TObject); • begin • if MessageBox(handle,'Czy na pewno chcesz zamknąć','Komunikat',mb_OkCancel+mb_IconQuestion)=idOk then • close else exit; • end; • Jeżeli w Twoim programie chcesz się odwoływać do powyższego zdarzenia to wystarczy że wywołasz procedurę tego zdarzenia przykładowo: if key=#27 then Button1Click(Sender);

  17. Suma dwóch liczb zapisanych w komponentach Tedit • Powtórz czynności z zadania 2 lub 3 • dodaj 2 komponenty TEdit, 1 Tlabel i 1 Tbutton • W inspektorze obiektów ustaw TEdit.Text na 0; Tlabel.Caption na puste, TButton na + • Zdarzenie OnKeyPress Edit1 i Edit2 • procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); • begin • if (key=#8)or(key='-') then exit; • if key=#27 then Button1Click(Sender);//skok do proc. wyjscia • if (key<'0')or(key>'9')then key:=#0; • end; • Procedurę kliknięcia w klawiszu Button2 oprogramuj jak poniżej • procedure TForm1.Button2Click(Sender: TObject); • begin • Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text)); • end;

  18. Podstawowe informacje Deklaracja danych Proste typy danych Funkcje konwersji Konwersja- proste zadanie

  19. Deklaracja danych Nie zależnie od rodzaju danych obowiązują ścisłe reguły ich deklaracji. W zależności od miejsca deklaracji zmienna może mieć zasięg globalny, lokalny lub istnieć tylko w wybranej procedurze bądź funkcji. Sposób deklaracji Przykład Rodzaj zmiennej stała zmienna const g=9.81; s=‘szkola’; var a:real; t:word;

  20. Przykład lokalizacji zapisu zmiennych unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const s:string=‘Szkoła’; //zasięg globalny var Form1: TForm1;//zasięg globalny implementation var i:integer;//zasięg tylko w obrebie unitu, czyli lokalny {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); const //zasięg tylko wewnatrz procedury g=9.81; var a, t :real; i:word; begin end; end.

  21. Proste typy danych (wybrane)

  22. Funkcje konwersji Konwersja to proces zamiany jednego typu danych w drugi. Najczęściej wykonywana jest przy zwracaniu wyników ( liczby zamieniane są na tekst) • Wybrane funkcje konwersji • Val(tekst:string,var zmienna,kod błędu:integer);-zamiana tekstu na liczbę • Str(liczba,tekst:string); można tez podac dokładność po przecinku Str(t:8{długość w znakach }:3{liczba znaków po przecinku},s); • FloatToStr- z liczby rzeczywistej na tekst; StrToFloat- z tekstu na liczbę rzeczywistą • IntToStr- z liczby całkowitej na tekst; StrToFloat- z tekstu na liczbę całkowitą

  23. Konwersja- proste zadanie Utwórz aplikacje, która zamieni wczytany nr z klawiatury na znak z tablicy kodów ASCII (zakres liczbowy od 0 do 255) Przykładowa funkcja wykonująca zadaną konwersję: procedure TForm1.Button1Click(Sender: TObject); var i:byte; kodBledu:integer; begin Val(Edit1.Text,i,kodBledu); if kodBledu<>0 then begin Messagebox(handle,'Podaj liczbę z zakresu 0-255','Komunikat',mb_IconError); exit; end; Label1.Caption:=Char(i); end;

  24. Funkcje i procedury- pojęcie podprogramu Podprogram jest to ciąg instrukcji mogący zawierać własne deklaracje zmiennych określony jednym identyfikatorem (nazwą). W programie głównym jedna instrukcja pozwala wykonać podprogram. Podprogram może być wywoływany kilka razy w programie głównym. Ważną właściwością podprogramu są parametry - czyli pewne wartości (lub zmienne) dla których zostaje wykonany ciąg instrukcji w podprogramie.W Pascalu istnieją dwa typy podprogramów: funkcje i procedury. Funkcje różnią się od procedur tym, że można je traktować jako wartość określonego typu (inaczej określa się to że funkcje zwracają wartość) - oznacza to że mogą występować w wyrażeniach. Przykładem funkcji są funkcje SIN, COS, ORD itp.Procedury traktowane są jako nowa instrukcja języka - nie mogą być używane w wyrażeniach.Funkcje i procedury mogą mieć lub nie mieć parametrów. Ewentualne parametry przekazuje się w wywołaniu podprogramu w nawiasach okrągłych (np. x:= SIN(2*y)). Uwaga: Funkcja zwraca wynik przez nazwę lub przez słowo kluczowe result:= Patrz zadanie ZADANIE

  25. Postać procedury i funkcji A)Bez parametrów FUNCTION nazwa:typ funkcji; VARczęść deklaracyjnaBEGINinstrukcje funkcjiEND B) Z parametrami FUNCTION nazwa(parametr1:typ;parametr2:typ;...):typ funkcji; VARczęść deklaracyjnaBEGINinstrukcje funkcjiEND A) Bez parametrów PROCEDURE nazwa ; VARczęść deklaracyjnaBEGINinstrukcje proceduryEND; B) Z parametrami PROCEDURE nazwa (parametr1:typ; parametr2 : typ;...); VAR część deklaracyjnaBEGINinstrukcje proceduryEND;

  26. Uwagi • Parametry przekazywane do funkcji lub procedury mogą być przekazywane na kilka sposobów: • procedure nazwa(x,y:integer); • procedure nazwa(const x,y:integer); to samo dotyczy funkcji • procedure nazwa(var x,y:integer); • Procedury jak i funkcje mogę mieć własne podprocedury lub podfunkcje • procedure nazwa(x,y:integer); • procedure nazwa1(var x:integer); • begin • end; • Var • begin • end;

  27. Zasięg procedury lub funkcji • O zasięgu działania procedury lub funkcji decyduje miejsce jej deklaracji • Zasięg globalny • ..... • procedure a1; //deklaracja nagłówka procedury • .......... • implementation • ............ • {$R *.DFM} • procedure a1; // implementacja procedury, zasięg lokalny uzyska się w tedy jeżeli nie zastosuje się deklaracji nagłówka • begin • end; • Zasięg wewnątrz klasy i poza klasą • tMapa=class (TOmegaSurface) • private • procedure Rysuj;// wewnątrz klasy • public • procedure Ruch(const AVX,AVY:single);//Dostępna poza klasą • end; • Uwaga : w części implementacyjnej należy opisać cała tych procedur

  28. Zadanie Utwórz aplikację, która przy pomocy 4 funkcji wykonujących podstawowe działania matematyczne (+, -, *, /) na dwóch zmiennych pokaże wynik tych działań (z dokładnością do 3 miejsca po przecinku) po wciśnięciu odpowiedniego klawisza działań. Funkcje działań zadeklaruj jako funkcje globalne z parametrem, na przykład : function Dodaj(a,b:real):real; var wynik:string; Form1: TForm1; function Dodaj(a,b:real):real; implementation {$R *.DFM} function Dodaj(a,b:real):real; begin result:=a+b; end; procedure TForm1.Button1Click(Sender: TObject); begin str(Dodaj(StrToFloat(Edit1.Text),StrToFloat(Edit2.Text)):0:3,wynik); LAbel3.Caption:=wynik; end; procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key='.' then key:=','; end;

More Related