Programowanie w środowisku DELPHI

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

description

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 - PowerPoint PPT Presentation

Transcript of Programowanie w środowisku DELPHI

Page 1: Programowanie w środowisku DELPHI

Programowanie w środowisku DELPHI

• Wstęp do środowiska Delphi

• Proste typy danych

• Funkcje i procedury- pojęcie podprogramu

Page 2: Programowanie w środowisku DELPHI

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

Page 3: Programowanie w środowisku DELPHI

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

Widok środowiska

Elementy środowiska Delphi

Page 4: Programowanie w środowisku DELPHI

Pliki projektu

Rozszerzeniepliku

Przeznaczenie pliku

*.dpr Główny plik projektu, tworzonyautomatycznie

*.pas Plik z modułem, zawiera kodźródłowy formularza

*.dfm Plik zawierający informacje owłasnościach formularza ikomponentów

*.exe Plik wynikowy programu

Page 5: Programowanie w środowisku DELPHI

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

Page 6: Programowanie w środowisku DELPHI

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

Page 7: Programowanie w środowisku DELPHI

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

Page 8: Programowanie w środowisku DELPHI

Widok środowiska

Page 9: Programowanie w środowisku DELPHI

Inspektor obiektów

Page 10: Programowanie w środowisku DELPHI

Plik modułu

Page 11: Programowanie w środowisku DELPHI

Budowa pliku programu

Page 12: Programowanie w środowisku DELPHI

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

Page 13: Programowanie w środowisku DELPHI

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

Page 14: Programowanie w środowisku DELPHI

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

Page 15: Programowanie w środowisku DELPHI

Zad 3: Zamknięcie programu z klawisza ESC lub dowolnie innego

•Powtórz czynności z zadania 1

•Możesz wykorzystać zdarzenie KeyPress lub KeyDownprocedure 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ży jego 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;

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.

Page 16: Programowanie w środowisku DELPHI

Zamknięcie programu z komunikatem ostrzegawczym

•Powtórz czynności z zadania 2

•Uzupełnij procedurę klikniecia klawisza naprocedure 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);

Page 17: Programowanie w środowisku DELPHI

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żejprocedure TForm1.Button2Click(Sender: TObject);begin Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrToInt(Edit2.Text));end;

Page 18: Programowanie w środowisku DELPHI

•Podstawowe informacje

• Deklaracja danych

• Proste typy danych

• Funkcje konwersji

• Konwersja- proste zadanie

Page 19: Programowanie w środowisku DELPHI

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

Rodzaj zmiennej

stała zmienna

const

g=9.81;

s=‘szkola’;

var

a:real;

t:word;

Przykład

Page 20: Programowanie w środowisku DELPHI

Przykład lokalizacji zapisu zmiennychunit 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 globalnyvar Form1: TForm1;//zasięg globalnyimplementationvar 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.

Page 21: Programowanie w środowisku DELPHI

Proste typy danych (wybrane)

Typ Rozmiar FormatShortint –128..127 8-bitSmallint –32768..32767 16-bitInteger –2147483648..2147483647 32-bitCardinal 0..4294967295 32-bitInt64 –2 6̂3..2 6̂3–1 64-bitByte 0..255 8-bitWord 0..65535 16-bitLongword 0..4294967295 32-bit

Typ Rozmiar FormatReal 5.0 x 10 –̂324 .. 1.7 x 10 3̂08 8 bitówReal48 2.9 x 10 –̂39 .. 1.7 x 10 3̂8 6 bitówSingle 1.5 x 10 –̂45 .. 3.4 x 10 3̂8 4 bitówDouble 5.0 x 10 –̂324 .. 1.7 x 10 3̂08 8 bitówExtended 3.6 x 10 –̂4951 .. 1.1 x 10 4̂932 10 bitówComp –2 6̂3+1 .. 2 6̂3 –1 8 bitów

Currency–922337203685477.5808.. 922337203685477.5807 8 bitów

typ znakowy Chartyp łancuchowy Stringtyp logiczny Boolean

Pozostałe

Page 22: Programowanie w środowisku DELPHI

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ą

Page 23: Programowanie w środowisku DELPHI

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;

Page 24: Programowanie w środowisku DELPHI

Funkcje i procedury- pojęcie podprogramuPodprogram 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

Page 25: Programowanie w środowisku DELPHI

Postać procedury i funkcji

A) Bez parametrów

PROCEDURE nazwa ;VAR część deklaracyjnaBEGIN instrukcje proceduryEND;

B) Z parametrami

PROCEDURE nazwa (parametr1:typ; parametr2 : typ;...);VAR część deklaracyjnaBEGIN instrukcje proceduryEND;

A)Bez parametrów

FUNCTION nazwa:typ funkcji;VAR część deklaracyjnaBEGIN instrukcje funkcjiEND

B) Z parametrami

FUNCTION nazwa(parametr1:typ;parametr2:typ;...):typ funkcji;VAR część deklaracyjnaBEGIN instrukcje funkcjiEND

Page 26: Programowanie w środowisku DELPHI

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;

Page 27: Programowanie w środowisku DELPHI

•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łówkabeginend;

•Zasięg wewnątrz klasy i poza klasątMapa=class (TOmegaSurface)private procedure Rysuj;// wewnątrz klasypublic procedure Ruch(const AVX,AVY:single);//Dostępna poza klasąend;

Uwaga : w części implementacyjnej należy opisać cała tych procedur

Page 28: Programowanie w środowisku DELPHI

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;