3735


Prof.nadzw.dr hab.inż. Władysław Brzozowski Cz*stochowa-Gliwice, 15.02.1999 r.

Politechnika Częstochowska

Instytut Elektroenergetyki

Wykłady z przedmiotu:

TECHNIKA PROGRAMOWANIA

studia magisterskie, kierunek Elektrotechnika,

specjalno** Informatyka w Elektroenergetyce, sem.VI

Wyk*ad 8. System Borland Delphi.

8.1. Og*lna charakterystyka systemu Borland Delphi

System Borland Delphi wywodzi si* g**wnie z Borland Pascal with Objects 7.0., jednak korzysta te* z pewnych rozwi*za* systemu Visual Basic.

Borland Delphi jest systemem typu RAD (Rapid Application Development), to znaczy mo*liwia b*yskawiczne tworzenie program*w u*ytkowych (aplikacji) o standardowym, profesjonalnym interfejsie. Aplikacje te s* przeznaczone do pracy w *rodowisku Windows. Podobnie i Borland Delphi dzia*a w tym *rodowisku; to znaczy obie platformy programowania (por. wyk*ad 3): IDE Platform oraz Target Platform s* typu Windows Environment. Borland Delphi od wersji 3.0 wsp**pracuje wy**cznie z Windows'95 oraz Windows NT, a w wersji 4.0 dodatkowo z Windows'98.

Borland Delphi wyr*cza programist* od *mudnych prac programowych nad tworzeniem r**nych podprogram*w narz*dziowych, w taki spos*b, *e tworzy kod *r*d*owy b*d*cy szkieletem programu i poszczeg*lnych jego modu**w, a tak*e podprogram*w tworz*cych r**ne struktury formalne (tzw. komponenty). Nie jest on jednak w stanie wygenerowa* kodu realizuj*cego stron* merytoryczn* programu. Z tego wzgl*du nadal programista musi opanowa* dobrze technik* programowania, szczeg*lnie obiektowego, najlepiej na bazie Borland Pascal w wersji co najmniej 7.0, a lepiej Object Windows.

Trzeba jednak zauwa*y*, *e j*zyk Borland Delphi jest prostszy (w zakresie struktury predefiniowanych obiekt*w) od Borland Pascal with Objects 7.0. - Object Windows, oferuj*c znacznie bogatsz* ofert* r**nych standardowych element*w (komponent*w). J*zykiem Borland Delphi jest Object Pascal. Jest on niemal identyczny jak Borland Pascal, jednak nazwy niekt*rych podprogram*w i funkcji standardowych mog* si* w nim nieco r**ni*, a tak*e mog* wyst*pi* nowe elementy tego j*zyka.

8.2. Modele aplikacji w systemie Borland Delphi

Z pomoc* Borland Delphi realizujemy programowanie zorientowane na obiekty (Object Oriented Programming) oraz r*wnocze*nie programowanie zorientowane na dokumenty (Document Oriented Programming). To drugie okre*lenie oznacza, *e u*ytkownik, realizuj*c aplikacj* b*dzie dzia*a* wy**cznie w obr*bie dokumentu. Dokument taki mo*e sk*ada* si* z jednego b*d* z wielu formularzy.

W systemie Windows (a tak*e odpowiednio w Borland Delphi) istniej* dwa podstawowe modele aplikacji: SDI (Single Document Interface) oraz MDI (Multiple Document Interface). Domy*lnym, a zarazem zalecanym modelem jest SDI. Bazuje on na pojedynczym dokumencie (jednak dokument taki, jak wspomniano, mo*e sk*ada* si* z wielu okien ekranowych - tzw. formularzy).

Model MDI bazuje na wielu dokumentach. Przyk*adem aplikacji w tym modelu jest edytor Word. W edytorze Word mo*na r*wnocze*nie otworzy* wiele dokument*w, jednak w danym momencie czasu praca odbywa si* tylko na jednym z nich. Dokumenty te s* od siebie ca*kowicie niezale*ne, cho*, korzystaj*c ze schowka (Clipboard), mo*na przenosi* pomi*dzy dokumentami pewne elementy - bloki tekstu, rysunki itp.

8.3. Elementy aplikacji SDI w systemie Borland Delphi

Aplikacja SDI w systemie Borland Delphi jest pakietem mikrokomputerowym, na kt*ry sk*adaj* si* nast*puj*ce g**wne pliki *r*d*owe:

Opr*cz powy*szych g**wnych plik*w *r*d*owych na pakiet sk*adaj* si* jeszcze pliki pomocnicze z rozszerzeniami .DFM, .DFO, .RES, .~DP, .~DF, .~PA, .HLP, .WMF, .BMP, .ICO.

Po kompilacji dochodzi jeszcze plik wykonawczy z rozszerzeniem .EXE oraz plik modu**w z rozszerzeniem .DCU.

Borland Delphi zapewnia automatycznie struktur* modu*ow* aplikacja i jej dzia*anie w trybie nak*adkowym.

Skompilowana aplikacja mo*e by* wykonana spod Borland Delphi (tj. opcj* RUN z menu systemu) lub spod Windows. W obu wypadkach uwidacznia si* ona jako pojedyncze lub wiele okien - formularzy. Okna te mo*na programowo w dowolnym momencie wizualizowa* lub ukrywa*. Wizualizowane okna mog* si* wzajemnie przys*ania*, jednak u*ytkownik mo*e nimi operowa* tak, jak wszystkimi innymi oknami w *rodowisku Windows (przesuwa*, powi*ksza* itd.).

W oknach formularzy uwidaczniaj* si* poszczeg*lne komponenty (przyciski, pola edycyjne itd.). Realizacja programu przez u*ytkownika polega wy**cznie na operowaniu w obr*bie tych komponent*w.

Przyk*adem aplikacji napisanej w systemie Borland Delphi jest program FILEATTR.EXE wizualizacji i zmiany atrybut*w plik*w dyskowych (Read Only, Hidden oraz Archive) z [5]. Program zosta* spolszczony oraz wzbogacony o komentarze przez autora wyk*adu.

Aplikacja sk*ada si* z jednego formularza (rys. 9.1, str. 228 z [5]) w kt*rym zawarto komponenty nast*puj*cego typu:

Tekst pliku *r*d*owego g**wnego aplikacji FILEATTR.DPR

program Fileattr;

uses

Forms,

Attrscr in 'ATTRSCR.PAS' {Form1};

{$R *.RES}

begin

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Tekst pliku *r*d*owego modu*u ATTRSCR.PAS

unit Attrscr;

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

Forms, Dialogs, StdCtrls, FileCtrl, Buttons, ExtCtrls;

type

TForm1 = class(TForm)

Bevel1: TBevel;

BitBtnOk: TBitBtn;

GroupBox1: TGroupBox;

BitBtnSave: TBitBtn;

BitBtnClose: TBitBtn;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

CheckBox4: TCheckBox;

Label1: TLabel;

Edit1: TEdit;

DirectoryListBox1: TDirectoryListBox;

FileListBox1: TFileListBox;

DriveComboBox1: TDriveComboBox;

procedure BitBtnOkClick(Sender: TObject);

procedure BitBtnCloseClick(Sender: TObject);

procedure BitBtnSaveClick(Sender: TObject);

procedure FileListBox1DblClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

var

Fname: String;

AttrByte: Byte {Integer};

procedure TForm1.BitBtnOkClick(Sender: TObject);

begin

Fname := Edit1.Text;

AttrByte := FileGetAttr(fname);

{pod zmienna AttrByte zostaje podstawiony byte tj.

ciag 8 bitow reprezentujacych atrybuty pliku

o fizycznej nazwie podstawionej do zmiennej Fname,

ktory jest wpisany w polu okienka edycyjnego.

W tym bajcie:

bit 0 - bit Read Only

bit 1 - bit Hidden

bit 2 - bit System

bit 3 - bit Volume ID

bit 4 - bit podkatalogu

bit 5 - bit Archive

bit 6 - nie uzywany

bit 7 - nie uzywany}

if AttrByte and faReadOnly = faReadOnly then

CheckBox1.Checked := True

else

CheckBox1.Checked := False;

{powyzsza instrukcja sprawdza czy w bajcie

AttrByte byl aktywny atrybut ReadOnly. Jesli

tak to nastepuje zaznaczenie odpowiedniego

pola wyboru (CheckBox). Metoda sprawdzenia

jest obliczenie iloczynu logicznego AND.

Tworzy sie iloczyn logiczny z wartosci

AttrByte (jesli atrybut ReadOnly byl wlaczony

to w tym bajcie na okreslonym miejscu jest

bit 1) i faReadOnly (jest to predefiniowana

stala rowna 1 byte, w ktorej na miejscu

zerowym jest bit 1, a wszystkie inne sa 0).

Jesli w AttrByte byl aktywny atrybut ReadOnly,

to iloczyn logiczny bedzie mial na miejscu

zerowym bit 1, a na pozostalych miejscach bity

0 (niezaleznie od stanu innych atrybutow) -

tj. bedzie identyczny jak faReadOnly. Ponizej

instrukcje analogiczne dla innych atrybutow.}

if AttrByte and faHidden = faHidden then

CheckBox2.Checked := True

else

CheckBox2.Checked := False;

if AttrByte and faSysFile = faSysFile then

CheckBox3.Checked := True

else

CheckBox3.Checked := False;

if AttrByte and faArchive = faArchive then

CheckBox4.Checked := True

else

CheckBox4.Checked := False;

end;

procedure TForm1.BitBtnCloseClick(Sender: TObject);

begin

Application.Terminate;

end;

procedure TForm1.BitBtnSaveClick(Sender: TObject);

begin

AttrByte := 0;

if CheckBox1.Checked = True then

AttrByte := AttrByte or faReadOnly;

{jesli pole wyboru dla atrybutu ReadOnly bylo

wcisniete, to obliczana jest nowa wartosc

AttrByte jako suma logiczna poprzedniej

wartosci AttrByte i faReadOnly. Wowczas w

nowej wartosci AttrByte pojawi sie bit 1 na

miejscu zerowym. Na wstepie AttrByte jest

zerowany, dlatego zostanie zapisany dokladnie

nowy stan przyciskow - jesli pole wyboru

nie bylo przycisniete to pozostanie 0.}

if CheckBox2.Checked = True then

AttrByte := AttrByte or faHidden;

if CheckBox3.Checked = True then

AttrByte := AttrByte or faSysFile;

if CheckBox4.Checked = True then

AttrByte := AttrByte or faArchive;

FileSetAttr(fname, AttrByte);

end;

procedure TForm1.FileListBox1DblClick(Sender: TObject);

begin

BitBtnOKClick(Self);

end;

end.

8.4. Elementy IDE (zintegrowanego *rodowiska programisty - Integrated Development Environment) w systemie Borland Delphi

Elementami IDE w systemie Borland Delphi (na przyk*adzie wersji 3.0) s*:

8.5. Komponenty systemu Borland Delphi (VCL)

8.5.1. Typy komponent*w

Ka*dy komponent systemu (przycisk, menu, pole edycji, pole wyboru itd.) jest opisywany zbiorem:

W*a*ciwo*ci komponentu i zdarzenia zwi*zane z komponentem s* wizualizowane w oknie Inspektora obiekt*w (Object Inspector). Mo*na je korygowa* w tym oknie lub zmienia* programowo (por.dalej).

Standardowe (programista mo*e te* wygenerowa* w*asne komponenty) komponenty systemu s* pogrupowane w poszczeg*lne karty (Standard, Additional, Win32, System, Internet, Data Access, Data Controls, Qreport, Dialogs, Win 3.1, Samples).

Oprogramowanie komponentu polega na:

Najcz**ciej stosowane komponenty umieszczone s* na kartach: Standard oraz Additional.

Na karcie Standard s* umieszczone nast*puj*ce komponenty:

Na karcie Additional s* umieszczone nast*puj*ce komponenty:

 Koniec wyk*adu 8

Plik W8TEPR99.DOC

Edytor WORD 6.0 PL



Wyszukiwarka

Podobne podstrony:
3735
3735
3735
3735
3735
3735
200408 3735
3735

więcej podobnych podstron