PR3

background image

P RO JE KT O WANI E O BI E KT O WE –

ûZLF]HQLD ODERUDWRU\MQH

TEMAT 3: Borland Delphi – podstawy tworzenia aplikacji cz. 3.

TEMAT 3: Borland Delphi – podstawy tworzenia aplikacji cz. 3.

1.

7ZRU]HQLH SDVND ] QDU] G]LDPL

'R WZRU]HQLD SDVND ] QDU] G]LDPL VáX*\ NRPSRQHQW ToolBar ] ]DNáDGNL Win32. Przyciski dodajemy na pasku,

NRU]\VWDMF ] PHQX SRGU F]QHJR NRPSRQHQWX ToolBar. 'R WDN XWZRU]RQ\FK SU]\FLVNyZ PR*QD SRGSLü OLVW REUD]NyZ

]D SRPRF NRPSRQHQWX ImageList.

Zadanie aplikacji: a

SOLNDFMD Z\ZLHWOD RNQR GR ZSLV\ZDQLD WHNVWX L WZRU]\ SDVHN ] QDU] G]LDPL GR NRSLRZDQLD

wklejania i wycinania tekstu.

1D IRUP ZVWDZ NRPSRQHQW\ Memo ] ]DNáDGNL Standard, ToolBar i ImageList ] ]DNáDGNL Win32.

Wyselekcjonuj ToolBar

L SUDZ\P SU]\FLVNLHP P\V]\ SU]HMG( GR PHQX

SRGU F]QHJR D QDVW SQLH Z\ELHU] F]WHURNURWQLH New Button;
w ten sposób dodajemy przyciski do paska ToolBar.

Wyselekcjonuj ImageList,

SUDZ\P SU]\FLVNLHP P\V]\ SU]HMG( GR PHQX

SRGU F]QHJR D QDVW SQLH Z\ELHU] ImageListEditor L XWZyU] OLVW REUD]NyZ QD

WZRU]RQH SU]\FLVNL QDU] G]LRZH

ƒ

ZFLQLM SU]\FLVN Add,

ƒ

wybierz z foldera: Borland Shared\Images\Buttons

REUD]NL NWyUH V

symbolami operacji wycinania, wklejania, kopiowania, czyszczenia,

ƒ

SRWZLHUG( SU]\FLVNLHP Yes SRG]LDá REUD]ND QD GZD PQLHMV]H L Z\NDVXM GUXJL

] SRZVWDá\FK REUD]NyZ ELWPDS\ Z NDWDORJX PDM UR]PLDU\ ZL NV]H QL* SU]\MPRZDQH SU]H] OLVW ImageList),

ƒ

]DWZLHUG( OLVW SU]\FLVNLHP OK.

Ustaw dla komponentu ToolBar

ZáDFLZRü Images, Z\ELHUDMF ] OLVW\ Z\ERUX QD]Z utworzonej listy obrazków.

'R ND*GHJR SU]\FLVNX XWZyU] G\PHN REMDQLDMF\ G]LDáDQLH

6SUDZG( G]LDáDQLH DSOLNDcji.


2. Korzystanie z pola Memo.

Komponent Memo –

WR SROH WHNVWRZH VáX*FH GR Z\NRQ\ZDQLD RSHUDFML QD WHNFLH

3RGVWDZRZH PHWRG\ L ZáDFLZRFL NRPSRQHQWX Memo:

CutToClipboard – metoda wycinania wyselekcjonowanego tekstu do schowka,
CopyToClipboard – metoda kopiowania wyselekcjonowanego tekstu do schowka,
PasteFromClipBoard –

PHWRGD ZNOHMDQLD WHNVWX ]H VFKRZND Z PLHMVFX SRáR*HQLD kursora,

ClearSelection – metoda odznaczenia tekstu,
Clear

PHWRGD F]\V]F]HQLD ]DZDUWRFL SROD Memo,

Lines

ZáDFLZRü W\SX RELHNWRZHJR 76WULQJV OLVWD áDFXFKyZ  GRW\F]\ OLQLL WHNVWX

7X ]DVWRVRZDQR GZLH PHWRG\ WHM ZáDFLZRFL

— Lines.LoadFromFile (nazwa

 6WULQJ áDGRZDQLH ]DZDUWRFL SOLNX R QD]ZLH danej parametrem nazwa

do pola Memo,

— Lines.SaveToFile (nazwa: String) zapisywanie

]DZDUWRFL SROD Memo w pliku

o nazwie danej parametrem nazwa.

Zadanie aplikacji:

SRSU]HGQLD DSOLNDFMD X]XSHáQLDQD MHVW SURFHGXUDPL REVáXJL SROD 0HPR UHDOL]XMF\PL NRSLRZDQLH

Z\FLQDQLH L ZNOHMDQLH WHNVWX 3RQDGWR GR DSOLNDFML GRGDZDQ\ MHVW SDVHN QDU] G]LRZ\ ]DZLHUDMF\ WU]\ SU]\FLVNL

V\PEROL]XMFH RSHUDFMH QD SOLNX &]\WDM =DSLV] &]\ü :FLQL FLH SU]\FLVNX Zapisz, powoduje zapisanie w pliku
tekstowym o nazwie moj.txt

]DZDUWRFL SROD 0HPR :FLQL FLH SU]\FLVNX &]\ü powoduje wyczyszczenie pola Memo.

Przycisk Czytaj

ZF]\WD GR SROD 0HPR ]DZDUWRü SOLNX moj.txt.

2WZyU] SRSU]HGQL DSOLNDFM 

Dla zdarzenia OnClick przycisków ToolButton wpisz procedury:

ƒ

dla przycisku Wytnij:

Memo1.CutToClipboard;

ƒ

dla przycisku Wklej:

Memo1.PasteFromClipboard;

ƒ

dla przycisku Kopiuj:

Memo1.CopyToClipboard;

ƒ

dla przycisku

:\F]\ü zaznaczone:

Memo1.ClearSelection.

8UXFKRP DSOLNDFM  :SLV] GR SROD Memo tekst, wyselekcjonuj klawiszami Shift +

L Z\SUyEXM G]LDáDQLH

SU]\FLVNyZ ] SDVND QDU] G]LRZHJR

'R SDVND QDU] G]LRZHJR GRGDM VHSDUDtor i kolejne trzy SU]\FLVNL V\PEROL]XMFH RSFMH Czytaj, Zapisz, &]\ü.

6SRVyE WZRU]HQLD RSLVDQ\ MHVW Z SRSU]HGQLP üZLF]HQLX

W zmiennych globalnych dodaj:

const st:string = 'c:\moj.txt';

 VWDáD W\SRZDQD LQDF]HM OLWHUDá

] QD]Z SOLNX

Dla zdarzenia OnClick przycisków ToolButton

ZSLV] WUHü SURFHGXU

dla przycisku Czytaj:

Memo1.Lines.LoadFromFile(st);

 ]DáDGRZDQLH GR SROD 0HPR ]DZDUWRFL SOLNX

dla przycisku Zapisz

: Memo1.Lines.SaveToFile(st);

 VFKRZDQLH GR SOLNX ]DZDUWRFL SROD 0HPR

dla przycisku

&]\ü

: Memo1.Clear;

 Z\F]\V]F]HQLH ]DZDUWRFL SROD 0HPR

6SUDZG( G]LDáDQLH DSOLNDFML

background image

 6WURQ\ ] ]DNáDGNDPL
3.1.

6WURQ\ ] ]DNáDGNDPL GOD SDVNyZ QDU] G]LRZ\FK

Komponentem prezentowanym tutaj jest PageControl

 6áX*\ RQ GR WZRU]HQLD VWURQ ] ]DNáDGNDmi na formie, notesu

] ]DNáDGNDPL OXE VWURQ ] SDVNDPL QDU] G]LRZ\PL 3U]HGVWDZLRQR WX VSRVyE tworzenia stron przez wykorzystanie menu

SRGU F]QHJR NRPSRQHQWX

Zadanie aplikacji:

DSOLNDFMD MHVW UR]V]HU]HQLHP SRSU]HGQLHM DSOLNDFML 3DVNL QDU] G]LRZH ToolBar XPLHV]F]RQH V QD

VWURQDFK ] ]DNáDGNDPL 1DSLV\ QD ]DNáDGNDFK 2SHUDFMH QD WHNFLH, Zapis, Odczyt. 7UHFL SURFHGXU Z\ZRá\ZDQ\FK

SU]H] SU]\FLVNL V G]LDáDQLD QD SROX Memo, DQDORJLF]QH MDN Z SRSU]HGQLP üZLF]HQLX

1D IRUPLH XPLHü NRPSRQHQW Memo oraz komponent PageControl

] ]DNáDGNL Win32 VáX*F\ GR WZRU]HQLD VWURQ ] ]DNáDGNDPL

8WZyU] GZLH VWURQ\ QRWDWQLND Z QDVW SXMF\ VSRVyE

ƒƒ wyselekcjonuj PageControl,

ƒƒ XDNW\ZQLM PHQX SRGU F]QH SUDZ\ SU]\FLVN P\V]\ 

ƒƒ wybierz New Page.

W ObjectInspectorze wybierz kolejno TabSheet1, TabSheet2 i ustaw

ZáDFLZRFL Caption ]DNáDGHN QD SRND]XMFH VL QD ]DNáDGNDFK

2SHUDFMH QD WHNFLH Zapis i Odczyt.

8PLHü QD VWURQLH SLHUZV]HM NRPSRQHQW ToolBar i utwórz przyciski

QDU] G]LRZH s\PEROL]XMFH NRSLRZDQLH Z\FLQDQLH L ZNOHMDQLH Wekstu.

1D GUXJLHM VWURQLH QRWDWQLND XWZyU] GUXJL SDVHN QDU] G]LRZ\ ] SU]\FLVNDPL GR RWZLHUDQLD pliku i zapisu do pliku.

:SLV] SURFHGXU\ REVáXJL GOD SU]\FLVNyZ ] SDVNyZ QDU] G]LRZ\FK

:\SUyEXM G]LDáDQLH


3.2.

1RWDWQLN ] ]DNáDGNDPL W\SX :LQ 3.1.

Ten typ not

DWQLND E\á SRZV]HFKQLH VWRVRZDQ\ Z SRSrzedniej wersji programu dla Win 3.11. Obecnie stosowany jest typ

oparty na PageControl,

QDWRPLDVW RSLVDQ\ QL*HM QRWDWQLN PR*QD ]EXGRZDü SRG NWHP LQQHJR W\SX ]DNáDGHN

Komponenty tu zaprezentowane to NoteBook – do tworzenia stron notesu, i TabSet

GR WZRU]HQLD ]DNáDGHN

3RGVWDZRZH ZáDFLZRFL L PHWRG\ NRPSRQHQWX NoteBook:

ActivePage –

ZáDFLZRü RNUHOD QD]Z VWURQ\ DNW\ZQHM

PageIndex –

ZáDFLZRü RNUHOD LQGHNV VWURQ\ QRWDWQLND

Refresh

PHWRGD SRZRGXMH RGZLH*DQLH notatnika.

3RGVWDZRZH ZáDFLZRFL NRPponentu Tabset:

TabIndex

RNUHODMFD LQGHNV ]DNáDGNL

Zadanie aplikacji:

DSOLNDFMD SUH]HQWXMH WU]\VWURQLFRZ\ QRWDWQLN ] ]DNáDGNDPL 3DVWZD, Miasta, Rzeki. Wybór danej

]DNáDGNL XZLGRF]QL RGSRZLHGQL VWURQ QRWDWQLND, gdzie w polu Memo Z\SLVDQH E G QD]Z\ NLONX SDVWZ PLDVW OXE
rzek.

8PLHü QD IRUPLH NRPSRQHQW Bevel ] ]DNáDGNL Additional (dla zaznaczenia
wyp

XNáRFL L XVWDZ MHJR ZáDFLZRü: Style na bsRaised.

Na komponencie Bevel

XPLHü ] ]DNáDGNL Win 3.1 komponent\ ZHGáXJ

SRQL*V]HJR V]NLFX

ƒƒ NoteBook – strona notesu

ƒƒ TabSet – ]DNáDGND QRWHVX

Wyselekcjonuj TabSet,

NOLNQLM QD ZáDFLZRü 7DEV L ZSLV] QDSLV\

SRND]XMFH VL QD ]DNáDGNDFK 3DVWZD 0LDVWD 5]HNL

Wyselekcjonuj NoteBook,

Z\ELHU] ZáDFLZRü Pages i nazwij trzy strony

notatnika: pierwsza, druga, trzecia,

Z\ELHUDMF ]D ND*G\P UD]HP przycisk Add (XVX SR]\FM Default).

Ustaw dla komponentu NoteBook

ZáDFLZRü ActivePage na pierwsza.

8PLHü QD VWURQLH SLHUZV]HM NRPSRQHQW Memo, NOLNQLM RERN ZáDFLZRFL Lines i wpisz tam w kolejnych liniach

QD]Z\ NLONX SDVWZ :áDFLZRü Enabled dla pola Memo ustaw na False.

3RZWyU] GZD SRSU]HGQLH SXQNW\ GOD NROHMQ\FK VWURQ QRWDWQLND ZSLVXMF odpowiednio nazwy miast i rzek. Ustaw
ponownie dla komponentu NoteBook

ZáDFLZRü ActivePage na pierwsza.

Wpisz dla zdarzenia OnClick komponentu TabSet

QDVW SXMF SURFHGXU V\QFKURQL]DFMD VWURQLF QRWDWQLND

] ]DNáDGNDPL 

procedure TForm1.TabSet1Click(Sender: TObject);
begin

Notebook1.PageIndex := Tabset1.TabIndex;
Notebook1.Refresh;

end;

Sp

UDZG( G]LDáDQLH QRWDWQLND

4. Komponent StringGrid –

Z\SHáQLDQLH WDEHOL

background image

Komponent StringGrid

VáX*\ GR Z\ZLHWODQLD áDFXFKyZ Z WDEHOL GZXZ\PLDURZHM SU]\SRPLQDMFHM DUNXV]

NDONXODF\MQ\ 3RGVWDZRZH ZáDFLZRFL

Cells[ACol, ARow

 ,QWHJHU@ W\S 6WULQJ ZáDFLZRü RGGDMFD Z SRVWDFL áDFXFKD ]DZDUWRü NRPyUNL ZVND]DQHM

parametrami,

Cols[Index

 ,QWHJHU@ W\S 76WULQJV ZáDFLZRü RGGDMFD Z SRVWDFL WDEOLF\ áDFXFKyZ NROXPQ o numerze Index,

Rows[Index

 ,QWHJHU@ W\S 76WULQJV ZáDFLZRü RGGDMFD Z SRVWDFL WDEOLF\ áDFXFKyZ ZLHUV] o numerze Index,

ColCount

W\S /RQJLQW ZáDFLZRü RGGDMFD OLF]E NROXPQ

RowCount

W\S /RQJLQW ZáDFLZRü RGGDMFD OLF]E ZLHUV]\

Zadanie aplikacji: dziennik elektroniczny –

DSOLNDFMD WZRU]\ QRWDWQLN QDSLV\ QD MHJR ]DNáDGNDFK V QD]ZDmi

SU]HGPLRWyZ 1D ND*GHM VWURQLH QRWDWQLND XPLHV]F]RQD MHVW WDEHOND ] OLVW RVyE Z JUXSLH ,VWQLHMH PR*OLZRü ZSLV\ZDQLD

RFHQ DOH RFHQ\ ZSLV\ZDQH GR WDEHOL QLH V ]DSDPL W\ZDQH 6SRVyE ]DSLVX GR SOLNX omawiany jest Z F] FL GRW\F]FHM
plików.

Wykorzystuj

F NRPSRQHQW PageControl zbuduj notatnik o liczbie stron

UyZQHM OLF]ELH SU]HGPLRWyZ NWyUH FKFHV] ZSLVDü GR G]LHQQLND 1DSLV\ QD

]DNáDGNDFK SRZLQQ\ E\ü QD]ZDPL SU]HGPLRWyZ

Na pierwszej stronie notatnika wstaw komponent StringGrid

] ]DNáDGNL

Additional. Ob

HMU]\M MHJR ZáDFLZRFL L ]GDU]HQLD =QDMG(

w Helpie typ TStringGrid

L ]DSR]QDM VL ] RSLVHP ZáDFLZRFL Cells,

RowCount, ColCount.

ƒƒ Ustaw w ObjectInspectorze ZáDFLZRFL NRPSRQHQWX StringGrid:

Align

alClient

 WDEHOD E G]LH Z\SHáQLDü FDá VWURQ

notatnika

ColCount

6 // liczba kolumn

FixedCols

2

 OLF]ED ]DPUR*RQ\FK NROXPQ VWDOH ZLGRF]QH EH] PR*OLZRFL edycji)

RowCount 10 // liczba wierszy w tabeli = liczba uczniów w grupie

ƒƒ 5R]ZL OLVW ZáDFLZRFL Options SU]H] SRGZyMQH NOLNQL FLH L XVWDZ

goEditing

7UXH  XPR*OLZL WR ZSLV\ZDQLH ZDUWRFL GR WDEHOL

goColSizing

7UXH  ]PLDQD UR]PLDUyZ V]HURNRFL NROXPQ\

goColMoving

7UXH  PR*OLZRü SU]HQRV]HQLD NROXPQ

goRowMoving

7UXH  PR*OLZRü SU]HQRV]HQLD ZLHUV]\

goTabs

7UXH  SU]HPLHV]F]DQLH VL SR NRmórkach klawiszem Tab

7DN SU]\JRWRZDQ WDEHO SU]HNRSLXM QD LQQH VWURQ\ QRWDWQLND Z\NRU]\VWXMF ] PHQX Edit\Copy, Edit\Paste
(w ObjectInspectorze

Z\ELHU] RGSRZLHGQL VWURQ L ]D]QDF] M P\V]N .

3U]HMG( GR HG\FML PRGXáX L SR F] FL Implementation wpisz pURFHGXU Z\SHáQLD RQD ZDUWRFL SRF]WNRZH
pojedynczej tabeli):

procedure pisztab(var s:TStringGrid);
var i: integer;
begin

with s do
begin

 WZRU]HQLH QDJáyZND WDEHOL ZáDFLZRü &HOOV SRELHUD OXE RGGDMH ZDUWRü HOHPHQWX WDEHOL

Cells[0,0] := 'NR';

Cells[1,0

@  1D]ZLVNR L LPL 

Cells[2,0 ] := 'Data';
Cells[3,0 ] := 'Ocena za okres';

// ustawienie numerów w tabeli

for i := 1 to 20 do

Cells[0,i ] := IntToStr(i);

// wpisanie nazwisk osób w grupie

Cells[1,1] := 'Nowak Anna';
Cells[1,2] := 'Kowalska Alicja';

&HOOV>@  1RZLVND (ZD 

Cells[1,4] := 'Maj Anna';

end;

end;

:\VHOHNFMRQXM IRUP L GOD ]GDU]HQLD OnActivate ZSLV] SURFHGXU Z\SHáQLDMF WDEHONL notesu:

procedure TForm1.FormActivate(Sender: TObject);
begin

pisztab(StringGrid1);
pisztab(StringGrid2);
pisztab(StringGrid3);
pisztab(StringGrid4);
pisztab(StringGrid5);
pisztab(StringGrid6);

end;

8UXFKRP DSOLNDFM L VSUDZG( MHM G]LDáDQLH

ƒƒ VSUDZG( PR*OLZRü ZSURZDG]DQLD GDQ\FK

ƒƒ SRZL NV] V]HURNRü NROXPQ\ SU]H]QDF]RQHM QD GDW  UR]VXZDMF QDJáyZHN NROXPQ\ P\V]

background image

ƒƒ VSUDZG( G]LDáDQLH NODZLV]D Tab i NODZLV]\ VWU]DáHN SR ]DWZLHUG]HQLX HG\FML NODZiszem Enter,

ƒƒ VSUDZG( *H Z\NRU]\VWXMF NODZLV] F2 PR*QD SRSUDZLü ZSLVDQ\ WHNVW

ƒƒ VSUDZG( PR*OLZRü SU]HQRV]HQLD P\V] ZLHUV]\ L NROXPQ WDEHOL FKZ\WDMF QDJáyZHN NROXPQy lub NRPyUN

z numerem wiersza).

background image

Zadania

Zadanie 10

=EXGXM DSOLNDFM SU]HGVWDZLDMF QRWDWQLN NWyUHJR ]DGDQLHP E G]LH

D SUH]HQWDFMD Uy*Q\FK VW\OyZ OLQLL EU]HJRZHM

E SUH]HQWDFMD Uy*Q\FK VW\OyZ Z\SHáQLDF]D

Wskazówka

Zbuduj notatnik dowolnego typu.

1D ]DNáDGNDFK QRWDWQLND XPLHü QD]Z\ D QD NDUWDFK NV]WDáW SURVWRNWD Z\NRU]\VWXMF

komponent Shape.

Zadanie 11
Zastosuj komponent StringGrid

GR Z\ZLHWOHQLD WDEOLF]NL PQR*HQLD ] ]DNUHVX RG O GR 10.


Zadanie 12

=EXGXM SRGU F]Q\ NDONXODWRU. W tabelce powLQQ\ E\ü F\IU\ L ]QDNL G]LDáD – Z\ELHUDP\ F\IU\ L G]LDáDQLH SU]H] NOLNQL FLH

P\V] D Z RNLHQNX HG\F\MQ\P SRND]XMH VL Z\QLN G]LDáDQLD

Wskazówka

:\SHáQLM F\IUDPL WDEHON NRPSRQHQWX StringGrid. Wykorzystaj zdarzenie OnSelectCell dla odbioru wyselekcjonowanej
komórki.


Wyszukiwarka

Podobne podstrony:
PR3 2010
073 GK pr3
039 LS pr3
Pr3
REKLAMA SPOŁECZNA VS REKLAMA PRODUKTU PR3
063 KP pr3
pr3
hmmm cos tam PR3
pr3 un3 t2
technika strzelnicza 2 pr3
107 BB pr3
pr3
PR3 2010
PR3
107 BB pr3
pr3
063 KP pr3

więcej podobnych podstron