SlideShare una empresa de Scribd logo
1 de 40
Objektové programovanie Cvičenie  3
Obsah ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nový projekt randTrieda ,[object Object],[object Object],[object Object],[object Object]
Jednotka pre triedu TRand ,[object Object],unit   uRand1 ; interface implementation end . ,[object Object]
Deklarácia triedy unit  uRand1; interface type TRand =  class private public end ; implementation
Deklarácia triedy - atribúty TRand =  class private aSeed : LongInt; aStartSeed : LongInt; public
Deklarácia triedy – správy/metódy p ublic constructor  vytvor; destructor  zrus; function   rand : Real; procedure   reset; procedure   setStart( const   paSeed : LongInt); end;
Implementácia triedy Pomôcka: Ctrl+Shift+C – vygenerujú sa všetky kostry metód implementation { TRand } function  TRand.rand   : Real; begin end ; ...
Metóda rand function  TRand.rand : Real; begin system.RandSeed := aSeed; result := system.random; aSeed := system.RandSeed; end ;
Metóda reset procedure  TRand.reset; begin aSeed := aStartSeed; end ;
Metóda setStart p rocedure  TRand.setStart( const  paSeed: LongInt); begin aStartSeed := paSeed; reset; end ;
Konštruktor vytvor Inicializácia inštancie! constructor  TRand.vytvor; begin setStart(0); end ;
Deštruktor zrus destructor  TRand.zrus; begin end ;
GUI aplikácie
OnClick – tlačidlo rand procedure  TrandTriedaFrm.randBtnClick(Sender: TObject); var nahodneCislo : real; nahodneCisloAkoRetazec : ShortString; begin nahodneCislo :=  g enerator.rand; nahodneCisloAkoRetazec := FloatToStr(nahodneCislo); nahodneCislaMmo.Lines.Add(nahodneCisloAkoRetazec); end ;
Preklad nahodneCislo := generator.rand;
Deklarácia inštancie implementation {$R *.dfm} uses uRand1; var generator : TRand;
Preklad Inštancia neexistuje!
Vytvorenie generátora ,[object Object],[object Object],[object Object],procedure  TrandTriedaFrm.FormCreate(Sender: TObject); begin generator := TRand.vytvor; end ;
Zrušenie generátora procedure  TrandTriedaFrm.FormDestroy(Sender: TObject); begin generator.zrus; generator :=  nil ; end ; ,[object Object],[object Object],[object Object]
OnClick – tlačidlo reset procedure  TrandTriedaFrm.resetBtnClick(Sender: TObject); begin g enerator.reset; randBtn.SetFocus; end ;
OnExit - startSeedEdt procedure  TrandTriedaFrm.startSeedEdtExit(Sender: TObject); var startSeed : LongInt; errorCode : Integer; begin end ;
OnExit - startSeedEdt begin val(startSeedEdt.Text, startSeed, errorCode); end ;
OnExit - startSeedEdt val(startSeedEdt.Text, startSeed, errorCode); if  errorCode = 0  then begin generator.setStart(startSeed); randBtn.SetFocus; end else begin ShowMessage('Chyba: StartSeed musí byť celé číslo!'); startSeedEdt.SetFocus; end ;
OnClick /tla čidlá Clear, Close procedure  TrandTriedaFrm.CloseBtnClick(Sender: TObject); begin Close; end ; procedure  TrandTriedaFrm.ClearBtnClick(Sender: TObject); begin nahodneCislaMmo.Clear; randBtn.SetFocus; end ;
Vytváranie a rušenie - tlačidlá
Vytváranie – tlačidlo vytvor ,[object Object],[object Object],procedure  TrandTriedaFrm.vytvorBtnClick(Sender: TObject); begin generator := TRand.vytvor; end ;
Rušenie – tlačidlo zruš ,[object Object],[object Object],procedure  TrandTriedaFrm.zrusBtnClick(Sender: TObject); begin generator.zrus; generator :=  nil ; end ;
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Robustná aplikácia
Spoločné ovládacie prvky - panel ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
GUI (1)
GUI (2)
OnClick – tlačidlo vytvor procedure  TrandTriedaFrm.vytvorBtnClick(Sender: TObject); begin generator := TRand.vytvor; generatorPnl .Visible := true; end ;
OnClick – tlačidlo zruš procedure  TrandTriedaFrm.zrusBtnClick(Sender: TObject); begin generator.zrus; generator :=  nil ; generatorPnl.Visible := false; end ;
OnClick – tlačidlo close procedure  TrandTriedaFrm.CloseBtnClick(Sender: TObject); begin zrusBtnClick( nil ); Close; end ;
RUN
Chyba
Chyba – rušený objekt neexistuje ,[object Object],procedure  TrandTriedaFrm.FormCreate(Sender: TObject); begin generator :=  nil ; end ;
Ak neexistuje – nesmie sa rušiť procedure  TrandTriedaFrm.CloseBtnClick(Sender: TObject); begin if  generator <>  nil then  zrusBtnClick(nil); Close; end ;
That’s all falks.

Más contenido relacionado

Destacado (17)

Pre Maternal[1]
Pre Maternal[1]Pre Maternal[1]
Pre Maternal[1]
 
Portfolio
PortfolioPortfolio
Portfolio
 
Salida A Jardines San Telmo
Salida A Jardines San TelmoSalida A Jardines San Telmo
Salida A Jardines San Telmo
 
20120802
2012080220120802
20120802
 
Designbento
DesignbentoDesignbento
Designbento
 
Protokoll Torsdag Klart
Protokoll Torsdag  KlartProtokoll Torsdag  Klart
Protokoll Torsdag Klart
 
Mendigos
MendigosMendigos
Mendigos
 
α τάξη κεφ 8
α τάξη κεφ 8α τάξη κεφ 8
α τάξη κεφ 8
 
PDF mock-up_draft
PDF mock-up_draftPDF mock-up_draft
PDF mock-up_draft
 
Smart Q5 Mid说明书V1.0
Smart Q5 Mid说明书V1.0Smart Q5 Mid说明书V1.0
Smart Q5 Mid说明书V1.0
 
Milagres (1)
Milagres (1)Milagres (1)
Milagres (1)
 
Reg
RegReg
Reg
 
simravleebze moqmedebebi
simravleebze moqmedebebisimravleebze moqmedebebi
simravleebze moqmedebebi
 
Apostila 01
Apostila 01Apostila 01
Apostila 01
 
Dok Spetterweek 2008
Dok Spetterweek 2008Dok Spetterweek 2008
Dok Spetterweek 2008
 
Echipament Pentru Apicultura
Echipament Pentru ApiculturaEchipament Pentru Apicultura
Echipament Pentru Apicultura
 
Informações Gerais
Informações GeraisInformações Gerais
Informações Gerais
 

Op09 Cv03 (1)