Mobil alkalmazások fejlesztése

Hasonló dokumentumok
Mobil alkalmazások fejlesztése. Készítette: Szabóné Nacsa Rozália ELTE PSZT szeptember

Mobil alkalmazások fejlesztése. ELTE PSZT március

Programozás II gyakorlat. 4. Öröklődés

Programozás II gyakorlat. 6. Polimorfizmus

Osztály és objektum fogalma

Mobil alkalmazások fejlesztése. Készítette: Szabóné Nacsa Rozália

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Bevezetés a C++ programozási nyelvbe

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

SDI ALKALMAZÁS I. Workspace / ResourceView / Toolbar / IDR_MAINFRAME. Workspace / ResourceView / Menu / IDR_MAINFRAME

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Tervminták a valósidejű gyakorlatban

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Objektumorientált programozás C# nyelven

Konkurens TCP Szerver

Programozás C++ -ban 2007/4

4. Öröklődés. Programozás II

Objektumorientált programozás C# nyelven III.

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

3. Osztályok II. Programozás II

Programozás II. ATM példa Dr. Iványi Péter

Szakdolgozat OROSZ TIVADAR. Műszaki informatikai szak, gazdasági informatikai szakirány, nappali tagozat

ADATBÁZISKEZELÉS KÖZVETLEN ELÉRÉSSEL II...2

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Elemi alkalmazások fejlesztése III.

Elemi Alkalmazások Fejlesztése II.

C# osztályok. Krizsán Zoltán

Programozás II gyakorlat. 7. Példák a polimorfizmus alkalmazásaira

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Internet technológiák

Delegátumok C#-ban Krizsán Zoltán iit

Mobil Informatikai Rendszerek

Bevezetés a programozásba Előadás: Fordítási egység

Alap számológép alkalmazás

Elemi alkalmazások fejlesztése III.

Bánsághi Anna

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Bevezetés, a C++ osztályok. Pere László

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

osztályok kapcsolata Származtatatás C++ Izsó Tamás március 19. Izsó Tamás Származtatatás/ 1

Programozás 6. Dr. Iványi Péter

Algoritmusok és adatszerkezetek II.

Programozás C++ -ban

Elemi alkalmazások fejlesztése III.

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

C#, OOP. Osztályok tervezése C#-ban

Memóriakezelés, dinamikus memóriakezelés

A jobboldalon a pnlright egy Stacked Widget Állítsuk be az első lapot és nevezzük el pnldraw-ra:

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Eseménykezelés. Aszinkron kommunikáció

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelő GUI alkalmazás készítése 3. Összetett tábla karbantartása

Programozás II. 4. Dr. Iványi Péter

12. gyakorlat Enum; Tárolási osztályok Preprocesszor utasítások; Moduláris programozás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítógépes grafika

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

BME MOGI Gépészeti informatika 8.

Google C++ style guide

Informatika terméktervezőknek

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

1. Feladat: Lista mysql BANK UGYFEL

Alprogramok, paraméterátadás

C++ Gyakorlat jegyzet 7. óra

Programozás alapjai II. (1. ea) C++

Programozás alapjai II. (1. ea) C++

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Dr. Schuster György október 14.

C programozási nyelv

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Objektum elvű alkalmazások fejlesztése 3. beadandó

Szoftvertechnológia alapjai Java előadások

Osztályok. 4. gyakorlat

C++ programok fordítása

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 1/3

Emlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.

Bevezetés a programozásba Előadás: A const

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália

Java Programozás 11. Ea: MVC modell

Programozás alapjai 9.Gy: Struktúra 2.

Objektumok inicializálása

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Programozási nyelvek II.: JAVA

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Adatbázis-kezelés ODBC driverrel

Elemi alkalmazások fejlesztése IV.

Elemi alkalmazások fejlesztése III. A Qt assistant elindítása. Ajánlott ir odalom. A Qt assistant nyitó ablaka

Informatikai Kar. 4. fejezet. Giachetta Roberto

C# nyelvhez kapcsolódó programozási feladatok

Alkalmazások fejlesztése III. Qt 4 /C++ alapú MDI alkalmazás: Számlakészítő program 2/3

MySql elindítása. Elemi alkalmazások fejlesztése IV. Feladat. Az alkalmazás adatbázisa

C++ Gyakorlat jegyzet 8. óra

3D-s számítógépes geometria és alakzatrekonstrukció

117. AA Megoldó Alfréd AA 117.

Átírás:

Tartalom Peekabo a legkisebb projekt... 2 A fordítás és szerkesztés folyamata... 2 Peekabo.mmp... 2 Peekaboo.pan... 3 Peekaboo.rss... 3 Peekaboo.rls... 4 Peekaboo.hrh... 4 Főprogram... 5 Peekaboo.cpp... 5 Alkalmazás osztály (PeekabooApplication)... 5 PeekabooApplication.h... 5 PeekabooApplication.cpp... 6 Dokumentum osztály (PeekabooDocumentation)... 6 PeekabooDocument.h... 6 PeekabooDocument.cpp... 6 Vezérlő osztály (PeekabooAppUi)... 7 PeekabooAppUi.h... 7 PeekabooAppUi.cpp... 8 Nézet osztály (PeekabooAppView)... 9 PeekabooAppView.h... 9 PeekabooAppView.cpp... 9 Szöveg megjelenítése egyszerű vezérlőn... 10 PeekabooAppView.h... 10 PeekabooAppview.cpp... 11 1. oldal

Peekabo a legkisebb projekt A fordítás és szerkesztés folyamata A fordítás és szerkesztés folyamata.bmp <.h>.h.rsg.hrh.rh.rls Bmp konverter.cpp.rss.bmp.mbm.rss C++ fordító Erőforrás fordító Bmp konverter Aif fordító.obj.lib.rsc.pkg.mbm.aif linker.exe;.dll Sis készítő.sis Peekabo.mmp TARGET TARGETTYPE UID SOURCEPATH SOURCE SOURCE SOURCE SOURCE SOURCE SOURCEPATH Peekaboo_0xE3C01E61.exe exe 0x100039CE 0xE3C01E61..\src Peekaboo.cpp PeekabooApplication.cpp PeekabooAppView.cpp PeekabooAppUi.cpp PeekabooDocument.cpp..\data START RESOURCE Peekaboo.rss HEADER TARGET Peekaboo_0xE3C01E61 TARGETPATH resource\apps END //RESOURCE START RESOURCE Peekaboo_reg.rss TARGET Peekaboo_0xE3C01E61_reg TARGETPATH \private\10003a3f\apps END //RESOURCE 2. oldal

USERINCLUDE..\inc SYSTEMINCLUDE \epoc32\include euser.lib apparc.lib cone.lib eikcore.lib avkon.lib commonengine.lib efsrv.lib estor.lib aknnotify.lib LANG SC VENDORID 0 SECUREID 0xE3C01E61 CAPABILITY ReadUserData #ifdef ENABLE_ABIV2_MODE DEBUGGABLE_UDEBONLY #endif Peekaboo.pan enum TPeekabooPanics EPeekabooUi = 1 ; inline void Panic(TPeekabooPanics areason) _LIT(applicationName, "Peekaboo"); User::Panic(applicationName, areason); Peekaboo.rss NAME PEEK // 4 letter ID #include <eikon.rh> #include <avkon.rsg> #include <avkon.rh> #include <appinfo.rh> #include "Peekaboo.hrh" #include "Peekaboo.rls" RESOURCE RSS_SIGNATURE RESOURCE TBUF r_default_document_name buf="peek"; RESOURCE EIK_APP_INFO 3. oldal

menubar = r_menubar; cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT; RESOURCE MENU_BAR r_menubar titles = MENU_TITLE menu_pane = r_menu; ; RESOURCE MENU_PANE r_menu items = MENU_ITEM MENU_ITEM ; command = ECommand1; txt = qtn_command1;, command = EAknSoftkeyExit; txt = qtn_exit; RESOURCE TBUF32 r_caption_string buf=qtn_caption_string; RESOURCE TBUF r_command1_text buf=qtn_command1_text; RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info short_caption = qtn_caption_string; caption_and_icon = CAPTION_AND_ICON_INFO caption = qtn_caption_string; number_of_icons = 1; icon_file = "\\resource\\apps\\peekaboo_0xe3c01e61.mif"; ; Peekaboo.rls #define qtn_caption_string "Peekaboo" #define qtn_command1 "Command1" #define qtn_exit "Exit" #define qtn_command1_text "Game of Peek a Boo!" #define qtn_loc_resource_file_1 \\resource\\apps\\peekaboo_0xe3c01e61 Peekaboo.hrh #define _UID3 0xE3C01E61 enum TPeekabooIds ECommand1 = 0x6001 // start value must not be 0 ; 4. oldal

Főprogram Peekaboo.cpp #include <eikstart.h> #include "PeekabooApplication.h" LOCAL_C CApaApplication* NewApplication() return new CPeekabooApplication; GLDEF_C TInt E32Main() return EikStart::RunApplication(NewApplication); Alkalmazás osztály (PeekabooApplication) PeekabooApplication.h #include <aknapp.h> #include "Peekaboo.hrh" const TUid KUidPeekabooApp = _UID3 ; class CPeekabooApplication : public CAknApplication TUid AppDllUid() const; 5. oldal

protected: CApaDocument* CreateDocumentL(); ; PeekabooApplication.cpp #include "Peekaboo.hrh" #include "PeekabooDocument.h" #include "PeekabooApplication.h" CApaDocument* CPeekabooApplication::CreateDocumentL() // Create an Peekaboo document, and return a pointer to it return CPeekabooDocument::NewL(*this); TUid CPeekabooApplication::AppDllUid() const // Return the UID for the Peekaboo application return KUidPeekabooApp; Dokumentum osztály (PeekabooDocumentation) PeekabooDocument.h #include <akndoc.h> class CPeekabooAppUi; class CEikApplication; class CPeekabooDocument : public CAknDocument static CPeekabooDocument* NewL(CEikApplication& aapp); static CPeekabooDocument* NewLC(CEikApplication& aapp); virtual ~CPeekabooDocument(); CEikAppUi* CreateAppUiL(); private: void ConstructL(); CPeekabooDocument(CEikApplication& aapp); ; PeekabooDocument.cpp 6. oldal

#include "PeekabooAppUi.h" #include "PeekabooDocument.h" CPeekabooDocument* CPeekabooDocument::NewL(CEikApplication& aapp) CPeekabooDocument* self = NewLC(aApp); CleanupStack::Pop(self); return self; CPeekabooDocument* CPeekabooDocument::NewLC(CEikApplication& aapp) CPeekabooDocument* self = new (ELeave) CPeekabooDocument(aApp); CleanupStack::PushL(self); self->constructl(); return self; void CPeekabooDocument::ConstructL() CPeekabooDocument::CPeekabooDocument(CEikApplication& aapp) : CAknDocument(aApp) CPeekabooDocument::~CPeekabooDocument() CEikAppUi* CPeekabooDocument::CreateAppUiL() return new (ELeave) CPeekabooAppUi; Vezérlő osztály (PeekabooAppUi) PeekabooAppUi.h #include <aknappui.h> class CPeekabooAppView; class CPeekabooAppUi : public CAknAppUi void ConstructL(); CPeekabooAppUi(); virtual ~CPeekabooAppUi(); private: void HandleCommandL(TInt acommand); void HandleStatusPaneSizeChange(); private: CPeekabooAppView* iappview; ; 7. oldal

PeekabooAppUi.cpp #include <avkon.hrh> #include <aknmessagequerydialog.h> #include <aknnotewrappers.h> #include <stringloader.h> #include <f32file.h> #include <s32file.h> #include <hlplch.h> #include <Peekaboo_0xE3C01E61.rsg> #include "Peekaboo.hrh" #include "Peekaboo.pan" #include "PeekabooApplication.h" #include "PeekabooAppUi.h" #include "PeekabooAppView.h" _LIT( KText, "Game of Peek a Boo!"); void CPeekabooAppUi::ConstructL() BaseConstructL(CAknAppUi::EAknEnableSkin); iappview = CPeekabooAppView::NewL(ClientRect()); AddToStackL(iAppView); CPeekabooAppUi::CPeekabooAppUi() CPeekabooAppUi::~CPeekabooAppUi() if (iappview) ieikonenv->removefromstack(iappview); delete iappview; iappview = NULL; void CPeekabooAppUi::HandleCommandL(TInt acommand) switch (acommand) case EEikCmdExit: case EAknSoftkeyExit: Exit(); break; case ECommand1: HBufC* textresource = StringLoader::LoadLC(R_COMMAND1_TEXT); CAknInformationNote* informationnote; informationnote = new (ELeave) CAknInformationNote; informationnote->executeld(*textresource); CleanupStack::PopAndDestroy(textResource); break; 8. oldal

default: Panic(EPeekabooUi); break; void CPeekabooAppUi::HandleStatusPaneSizeChange() iappview->setrect(clientrect()); Nézet osztály (PeekabooAppView) PeekabooAppView.h #include <coecntrl.h> class CPeekabooAppView : public CCoeControl static CPeekabooAppView* NewL(const TRect& arect); static CPeekabooAppView* NewLC(const TRect& arect); virtual ~CPeekabooAppView(); void Draw(const TRect& arect) const; virtual void SizeChanged(); virtual void HandlePointerEventL(const TPointerEvent& apointerevent); private: void ConstructL(const TRect& arect); CPeekabooAppView(); ; PeekabooAppView.cpp #include <coemain.h> #include "PeekabooAppView.h" CPeekabooAppView* CPeekabooAppView::NewL(const TRect& arect) CPeekabooAppView* self = CPeekabooAppView::NewLC(aRect); CleanupStack::Pop(self); return self; CPeekabooAppView* CPeekabooAppView::NewLC(const TRect& arect) CPeekabooAppView* self = new (ELeave) CPeekabooAppView; CleanupStack::PushL(self); self->constructl(arect); return self; 9. oldal

void CPeekabooAppView::ConstructL(const TRect& arect) CreateWindowL(); SetRect(aRect); ActivateL(); CPeekabooAppView::CPeekabooAppView() CPeekabooAppView::~CPeekabooAppView() void CPeekabooAppView::Draw(const TRect& /*arect*/) const CWindowGc& gc = SystemGc(); TRect drawrect(rect()); gc.clear(drawrect); void CPeekabooAppView::SizeChanged() DrawNow(); void CPeekabooAppView::HandlePointerEventL(const TPointerEvent& apointerevent) CCoeControl::HandlePointerEventL(aPointerEvent); Szöveg megjelenítése egyszerű vezérlőn PeekabooAppView.h private: HBufC *ihellomessage; 10. oldal

PeekabooAppview.cpp #include <gdi.h> #include <EIKENV.H> Ne feledje betenni a projektleíró fájl könyvtárai közé a gdi.lib könyvtárat! _LIT(KHelloMessage,"Hello Peekaboo!"); void CPeekabooAppView::ConstructL(const TRect& arect) CreateWindowL(); SetRect(aRect); ActivateL(); ihellomessage=hbufc::newl(30); *ihellomessage=khellomessage; CPeekabooAppView::~CPeekabooAppView() delete ihellomessage; void CPeekabooAppView::Draw(const TRect& /*arect*/) const CWindowGc& gc = SystemGc(); TRect drawrect(rect()); gc.clear(drawrect); drawrect.shrink(10,10); gc.drawrect(drawrect); const CFont* fontused = CEikonEnv::Static()->TitleFont(); gc.usefont(fontused); TInt baselineoffset = (drawrect.height() + fontused->heightinpixels())/2; gc.drawtext(*ihellomessage,drawrect, baselineoffset,cgraphicscontext::ecenter,0); gc.discardfont(); 11. oldal