Winapi. Juha Järvensivu 2007
|
|
- Matti Laaksonen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 Winapi Juha Järvensivu 2007
2 Sisällys Osa 1 Ikkunan päivittäminen Resurssikuvaustiedosto Valikot Dialogien luonti Osa 2 Winapi ja olio-ohjelmointi (esimerkki)
3 Yksinkertainen winapi-sovellus Sisältää: Pääohjelman WinMain Ikkunaluokan rekisteröinnin ja ikkunan luomisen Sanomasilmukan Sanomakäsittelijän WndProc Sisältää varsinaisen ohjelmalogiikan
4 Ikkunan alustus WM_CREATE Ensimmäinen ikkunaproseduurille lähetettävä sanoma. Kutsutaan kun ikkuna luodaan CreateWindow-funktiolla Käsittelijässä suoritetaan kertaluonteisia ikkunan alustustoimenpiteitä (vrt.net InitializeComponent)
5 Ikkunan päivittäminen WM_PAINT Piirtää näytön uudelleen Piirron aloittaminen BeginPaint Piirron lopettaminen EndPaint Oletustoteutus asettaa vain ikkunan kelvolliseksi, mutta ei piirrä mitään uudelleen UpdateWindow(hwnd); Ikkunan päivittäminen ohjelmallisesti
6 Grafiikan piirto Piirto aloitetaan pyytämällä kahva piirtopintaan BeginPaint-funktiolla HDC dc= BeginPaint(hwnd,&ps); Suoritetaan tarvittavat piirtotoimenpiteet kutsumalla tarvittavia GDI-rajapinnan funktioita DrawText(dc, ); Vapautetaan piirtopinta kutsumalla EndPaintfunktiota EndPaint(hwnd,&ps);
7 Piirtostruktuuri struct PAINTSTRUCT { HDC hdc; BOOL ferase; RECT rcpaint; BOOL frestore; BOOL fincupdate; BYTE rgbreserved[32]; }
8 Sovelluksen sulkeminen WM_DESTROY Kertoo ohjelmalle, että ikkunaa ollaan tuhoamassa käyttäjän toimesta Ohjelma suljetaan kutsumalla PostQuitMessage-funktiota, joka aiheuttaa WM_QUIT = 0 sanoman lähettämisen WM_DESTROY WM_QUIT Sovellus sulkeutuu
9 DefWindowProc Sanomien oletuskäsittelijä-funktio Jos sanomakäsittelijässä ei reagoida sanomaan, se pitää välittää oletuskäsittelijälle Oletuskäsittelijä voi olla tyhjä toteutus, mutta se voi synnyttää myös uusia sanomia Esim Valitaan järjestelmävalikosta valinta Sulje WM_SYSCOMMAND WM_CLOSE WM_DESTROY WM_QUIT Sovellus sulkeutuu
10 DefWindowProc Oletustoteutus WM_PAINT sanomalle case WM_PAINT: BeginPaint( ); EndPaint( ); return 0; Ohjelmoija vastaa itse siitä, että toteuttaa sanomakäsittelijät oikein. Esimerkki Virheellisestä WM_PAINT käsittelijästä case WM_PAINT: return 0; // Virhe!!!
11 Näppäintapahtumat WM_KEYDOWN (vrt.net KeyDown) WM_CHAR (vrt.net KeyPress) WM_KEYUP (vrt.net KeyUp) while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
12 TranslateMessage This function translates virtual-key messages into character messages. The character messages are posted to the calling thread's message queue, to be read the next time the thread calls the GetMessage or PeekMessage function.
13 DispatchMessage This function dispatches a message to a window procedure. It is typically used to dispatch a message retrieved by the GetMessage function.
14 Lapsikontrollit Esimerkki ListBox Lista-komponentin luominen HWND hlista = CreateWindow(_T("LISTBOX"), _T("Lista"), WS_CHILD WS_VISIBLE WS_BORDER, 100, 0, 200, 200, hwnd, (HMENU) 1, hinst, NULL); Alkion lisääminen listaan SendMessage(hwndLista, LB_ADDSTRING, 0, (LPARAM) buf); Alkion poistaminen listasta SendMessage(hwndLista, LB_DELETESTRING, 0, (LPARAM) NULL); Muita sanomia: LB_FINDSTRING, LB_GETCOUNT, LB_GETTEXT
15 Resurssikuvaustiedosto Resurssit määritellään resurssikuvaustiedostossa Tavallinen ASCII-tiedosto, jonka tunniste on.rc Resurssityyppejä Merkkijonjot Valikot Pikanäppäimet Dialogit jne.
16 Resurssien kääntämnien.rc.res Resurssikuvaustiedosto Käännetty resurssitiedosto DemoProject.rc DemoProject.res
17 Valikko (Menu) Toteutetaan resurssien avulla Valikkoalkiohin liitetään yksikäsitteinen IDtunnus Valikko voidaan liittää suoraan ikkunastruktuuriin tai vasta ikkunan luonnin yhteydessä Ikkunastruktuurille wndclass.lpszmenu = MyMenu ; Ikkunan luonnin yhteydessä hmenu = LoadMenu(hInstance, MyMenu ); hwnd = CreateWindow(...,hMenu,...);
18 MAKEINTRESOURCE This macro converts an integer value to a resource type compatible with Windows resource-management functions. This macro is used in place of a string containing the name of the resource. LPTSTR MAKEINTRESOURCE( WORD winteger; );
19 Valikko resurssi Menu.rc resurssikuvaustiedosto MenuDemo MENU { POPUP &Tiedosto { MENUITEM Item 1 1 MENUITEM SEPARATOR MENUITEM Item 2 2 } POPUP &Muokkaa { MENUITEM Item 3 3 } }
20 Dialogiresurssi Myös dialogit toteutetaan usein resurssien avulla DialogBox(HINSTANCE, LPCTSTR, HWND, DLGPROC); BOOL CALLBACK DialogWndProc(HWND, UINT, WPARAM, LPARAM)
21 Dialogiresurssi IDD_ABOUTBOX DIALOG 22, 17, 230, 75 STYLE DS_SETFONT DS_MODALFRAME WS_CAPTION WS_SYSMENU CAPTION "About" FONT 8, "System" BEGIN ICON IDI_WINAMPUI,IDC_MYICON,14,9,16,16 LTEXT WinampUI",IDC_STATIC,49,10,119,8,SS_NOPREFIX LTEXT "Copyright (C) 2006",IDC_STATIC,49,20,119,8 DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP END
22 Dialogin avaaminen #define IDD_ABOUTBOX 103 DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX), hwnd, About); // Dialogi-ikkunan sanomakäsittelijä INT_PTR CALLBACK About(HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam) { switch(imsg) { // } }
23 Omistajan ja parentin selvittäminen HWND GetWindow(HWND hwnd, UINT cmd) cmd GW_CHILD, GW_ENABLEDPOPUP, GW_HWNDFIRST, GW_HWNDLAST, GW_HWNDNEXT, GW_HWNDPREV, GW_OWNER HWND GetParent(HWND hwnd);
24 Pääikkunan päivittäminen dialogista HWND hwnd = GetWindow(hDlg, GW_OWNER); UpdateClientRect(hwnd,NULL,true); UpdateWindow(hwnd);
25 Winapi ja olio-ohjelmointi
26 WinApi OO HWND WinMain() Application Window MessageMap RegisterWindow() CreateWindow() + InitApplication() MyApplication + Create() + OnPaint() MyWindow WndProc + InitApplication() + Create() + OnPaint()
27 Oman oliokirjaston luominen class TestWindow: public Window { protected: void OnPaint(HDC); }; class TestApplication: public Application { protected: BOOL InitApplication(); }; BOOL TestApplication::InitApplication() { mainwindow = new TestWindow(); mainwindow->create("api to OO"); return true; } void TestWindow::OnPaint(HDC hdc) { ::TextOut(hdc, 0, 0, "Testing...", 10); }
28 Oman kirjaston luominen Application Käynnistää sovelluksen WinMain Toteuttaa sanomasilmukan MessageLoop Window Ikkunan toiminnallisuus Ikkunaluokan rekisteröinti Ikkunan luominen Tapahtumankäsittelijät (OnPaint) WndProc
29 Ongelmakohtia 1. Kuinka sovellus saadaan käynnistymään ilman, että muutetaan WinMain-metodia? Staattisen jäsenmuuttujan avulla 2. Kuinka viestit saadaan välitettyä Window-luokan sanomakäsittelijöille? WM_CREATE sanoman avulla
30 Lähteitä Charles Petzold Programming windows
Windowsin sanomanvälitys. Juha Järvensivu juha.jarvensivu@tut.fi 2008
Windowsin sanomanvälitys Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys Windowsin sanomat ja Sanomanvälitysmekanismi Ikkunan kahva ja Sanomien lähettäminen Windows API ohjelmointi Resurssit Sanomat
LisätiedotWindowsin sanomanvälitys. Juha Järvensivu 2007
Windowsin sanomanvälitys Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Windowsin sanomat Sanomanvälitysmekanismi Ikkunan kahva Sanomien lähettäminen Esimerkki winamp Tapahtumapohjainen toiminta
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu juha.jarvensivu@tut.fi 2007
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
LisätiedotTapahtumapohjainen ohjelmointi. Juha Järvensivu 2008
Tapahtumapohjainen ohjelmointi Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisältö Tapahtumapohjainen ohjelmointi Käyttöliittymän rakenne Pääikkuna (top-level window) Lapsi-ikkuna (child window) Dialogit
LisätiedotGraafisen käyttöliittymän ohjelmointi
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 2 Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa Sisältö Tapahtumapohjainen ohjelmointi Tapahtumakuuntelijoiden
Lisätiedot1 of
http:people.cc.jyu.fi/~minurmin/gko/materiaali/esimerkit/... http:people.cc.jyu.fi/~minurmin/gko/materiaali/esimerkit/... /* PROGRAM: Mhello.c PURPOSE: "Pienin Windows-ohjelma". Tulostaa näyttöön tekstin
LisätiedotOpenGL:n perusteet - Osa 1: Ikkunan luominen
OpenGL:n perusteet - Osa 1: Ikkunan luominen OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen.
LisätiedotTapahtumapohjainen ohjelmointi
Tapahtumapohjainen ohjelmointi Juha-Matti Vanhatupa (vanhan kurssin Graafisen käyttöliittymän ohjelmointi materiaalia) Erot perinteisiin sovelluksiin Sovelluksen kulku ei ole ennalta tiedossa. Start A
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 5 Qt: Grafiikan piirto Juha-Matti Vanhatupa Sisältö GDI Qt paint system Koordinaatisto-operaatioita
LisätiedotOlio-ohjelmointi Javalla
1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi
LisätiedotQT tyylit. Juha Järvensivu 2008
QT tyylit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys QStyle Style sheet Tyyli (QStyle) Kapseloi widgettien Look And Feel ominaisuudet Toteutettu QT:ssa QStyle luokkaan Sisäänrakennettuja tyylejä
LisätiedotOlio-ohjelmointi Syntaksikokoelma
C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotC# ja.net. Juha Järvensivu 2007
C# ja.net Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisältö C#.NET-kirjastot C# - C-sharp Standardoitu kieli (2003) Kieli, jossa pyritään yhdistämään C++:n tehokkuus ja Javan helppokäyttöisyys Suunniteltu.NET-ohjelmointiin
LisätiedotPeliohjelmointirajapinnoista
Peliohjelmointi: Peliohjelmointirajapinnoista Teppo Soininen & Antti Puhakka Lähteet: www.opengl.org, OpenGL-spesifikaatio, Tietokonegrafiikka luentomoniste, MSDN, Introduction to 3D Game Programming with
Lisätiedot1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...
1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin
LisätiedotDatalaitteiden esikonfigurointijärjestelmä
Anssi Hiilinen Datalaitteiden esikonfigurointijärjestelmä Metropolia Ammattikorkeakoulu Insinööri (AMK) Tietotekniikka Insinöörityö 29.4.2016 Tiivistelmä Tekijä(t) Otsikko Sivumäärä Aika Anssi Hiilinen
LisätiedotHarjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:
Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int
LisätiedotTIETORAKENTEET JA ALGORITMIT
TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle
LisätiedotQT model view. Juha Järvensivu 2008
QT model view Juha Järvensivu juha.jarvensivu@tut.fi 2008 Johdanto Model, View ja Delegaatit kommunikoivat singaaleista koostuvien rajapintojen avulla Malli informoi data muutoksista View informoi käyttäjän
LisätiedotOhjelmoinnin jatkokurssi, kurssikoe 28.4.2014
Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.
LisätiedotGraafisen käyttöliittymän ohjelmointi
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Luento 4 Valikot ja dialogit Juha-Matti Vanhatupa Sisältö Pääikkuna Valikot Dialogit Pääikkuna (top-level window)
Lisätiedot1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
Lisätiedot1. Mitä tehdään ensiksi?
1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla
LisätiedotInteraktiivinen käyttöliittymä. 2008
Interaktiivinen käyttöliittymä juha.jarvensivu@tut.fi 2008 Sisällys Hiirisanomat ja Näppäinsanomat Objektin valinta Osumatestaus Objektin raahaaminen Esimerkki Hiirisanomat MouseEnter Kutsutaan kun hiiren
LisätiedotDelegaatit ja tapahtumakäsittelijät
14 Delegaatit ja tapahtumakäsittelijät Toinen käyttökelpoinen keksintö C#-kielessä ovat delegaatit. Periaatteessa ne palvelevat samaa tarkoitusta kuin C++:n funktio-osoittimet. Delegaatit ovat kuitenkin
LisätiedotPeliohjelmointirajapinnoista
Peliohjelmointi: Peliohjelmointirajapinnoista Teppo Soininen & Antti Puhakka Lähteet: www.opengl.org, OpenGL-spesifikaatio, Tietokonegrafiikka luentomoniste, MSDN, Introduction to 3D Game Programming with
LisätiedotPiirtopinnalle piirtäminen
OSA IV 333 LUKU 15 15 LUKU Erilaiset piirtopinnat ja niiden käyttö Piirtotilan ja piirtopinnan asetukset ja käyttö Koordinaatistojen kohdistustapojen käyttö piirrettäessä tuumina tai sentteinä 334 Piirtopintatietorakenteet
LisätiedotKääreluokat (oppikirjan luku 9.4) (Wrapper-classes)
Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi
LisätiedotKompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma
1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja
Lisätiedot18. Abstraktit tietotyypit 18.1
18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotTestivetoinen ohjelmistokehitys
Testivetoinen ohjelmistokehitys Ohjelman luominen pienin askelin 1. Kirjoita testi, joka testaa ohjelmalle myöhemmin lisättävää toiminnallisuutta. 2. Suorita testi. Testin ei tule mennä läpi. Mikäli testi
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 10 Rinnakkaisuus käyttöliittymäohjelmoinnissa Juha-Matti Vanhatupa Rinnakkaisuus ja käyttöliittymäohjelmointi
LisätiedotSIMULINK S-funktiot. SIMULINK S-funktiot
S-funktio on ohjelmointikielellä (Matlab, C, Fortran) laadittu oma algoritmi tai dynaamisen järjestelmän kuvaus, jota voidaan käyttää Simulink-malleissa kuin mitä tahansa valmista lohkoa. S-funktion rakenne
LisätiedotSisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto
Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
LisätiedotJava UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007
Java UI-komponentit (JTable) Juha Järvensivu juha.jarvensivu@tut.fi 2007 JTable Datan esittäminen taulukkomuodossa Datan valitseminen taulukosta Datan muokkaaminen (lisääminen, muokkaaminen, poistaminen)
LisätiedotMicrosoft Visual Studio 2005
Sovelluksen jako palvelimiksi: Palvelin on sille annettuun vastuulliseen tehtävään erikoistunut sovellusosa. Käyttöliittymäpalvelin (Web-palvelin) vastaa käyttöliittymän toteuttamisesta. Web-palvelin toteuttaa
LisätiedotJypelin käyttöohjeet» Ruutukentän luominen
Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:
LisätiedotJAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?
JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,
LisätiedotGraafisen käyttöliittymän ohjelmointi Syksy 2013
TIE-11300 Tietotekniikan vaihtuva-alainen kurssi Graafisen käyttöliittymän ohjelmointi Syksy 2013 Luento 9 Qt model/view Juha-Matti Vanhatupa Sisältö Qt:n MV mallin osat Mallin ja näkymän välinen kommunikointi
Lisätiedot3. Binääripuu, Java-toteutus
3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );
LisätiedotITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.
Lisätiedot7. Oliot ja viitteet 7.1
7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin
LisätiedotSisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen
Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät
LisätiedotMikä yhteyssuhde on?
1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String
LisätiedotRinnakkaisuus (.NET) Juha Järvensivu 2007
Rinnakkaisuus (.NET) Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys Rinnakkaisuus ja käyttöliittymäohjelmointi GUI-thread Asynkroninen delegaatti System.Timers.Timer Backgroundworker Responsive GUI
LisätiedotRinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti
Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi
LisätiedotOlion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();
Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio
LisätiedotRINNAKKAINEN OHJELMOINTI A,
RINNAKKAINEN OHJELMOINTI 815301A, 18.6.2005 1. Vastaa lyhyesti (2p kustakin): a) Mitkä ovat rinnakkaisen ohjelman oikeellisuuskriteerit? b) Mitä tarkoittaa laiska säikeen luominen? c) Mitä ovat kohtaaminen
LisätiedotValikot ja työkalupalkit. juha.jarvensivu@tut.fi 2008
Valikot ja työkalupalkit juha.jarvensivu@tut.fi 2008 Sisältö Valikko Popup-valikko Työkalupalkki Tilarivi Sovellus ikoni Action Valikko MenuStrip Form mainwindow = new Form(); MenuStrip mainmenu = new
LisätiedotSovellusten ohjelmointi Microsoft Foundation Classes -luokkien avulla
73 L U K U 3 Sovellusten ohjelmointi Microsoft Foundation Classes -luokkien avulla Oppitunti 1: Yleiskatsaus MFC:hen 74 Oppitunti 2: Win32-sovellusarkkitehtuuri 84 Oppitunti 3: MFC-sovelluskehys 89 Oppitunti
LisätiedotA274101 TIETORAKENTEET JA ALGORITMIT
A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen
LisätiedotXNA grafiikka laajennus opas. Paavo Räisänen. www.ohjelmoimaan.net. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.
XNA grafiikka laajennus opas Paavo Räisänen www.ohjelmoimaan.net Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa. Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei
LisätiedotWeb Services tietokantaohjelmoinnin perusteet
ASP.NET Web Services Web Services tietokantaohjelmoinnin 2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla...
LisätiedotHiirisanomiin vastaaminen. 2007
Hiirisanomiin vastaaminen juha.jarvensivu@tut.fi 2007 Sisällys Hiirisanomat Näppäinsanomat Capture Objektin valinta Osumatestaus Objektin raahaaminen Esimerkki Hiirisanomat MouseEnter Kutsutaan kun hiiren
LisätiedotRakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
LisätiedotAttribuutit. Copyright IT Press Tämän e-kirjan kopiointi, tulostaminen ja jakeleminen eteenpäin luvatta on kielletty.
8 Attribuutit Useimmat ohjelmointikielet on suunniteltu tavoitteena määrätty joukko ominaisuuksia. Kun esimerkiksi ryhdyt tekemään kääntäjää, mietit millainen uudella kielellä tehty sovellus on rakenteeltaan,
LisätiedotListarakenne (ArrayList-luokka)
Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
Lisätiedot16. Javan omat luokat 16.1
16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat
LisätiedotOpenGL:n perusteet - Osa 2: 3D grafiikka
OpenGL:n perusteet - Osa 2: 3D grafiikka OpenGL on käyttöjärjestelmäriippumaton kirjasto 2D- ja 3D-grafiikan piirtoon. Tämä artikkelisarja opettaa sinulle 3D-grafiikan perusteet OpenGL:ää käyttäen. Esimerkeissä
Lisätiedot4. Luokan testaus ja käyttö olion kautta 4.1
4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään
Lisätiedot1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä
OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan
Lisätiedot812341A Olio-ohjelmointi Peruskäsitteet jatkoa
812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää
Lisätiedot5 Näppäimistö. 5.1 Näppäimistön eventit
5 Näppäimistö Näppäimistö (Keyboard) on Windows Forms -ohjelmissa keskeisessä asemassa. Erityisesti erilaisissa tekstinkäsittelyohjelmissa ja ohjelmissa, joissa tarvitaan datan syöttämistä esimerkiksi
LisätiedotTietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................
LisätiedotEclipse 3.1 Pikaopas versio 1.0
Anne Benson/Tanja Bergius Opintojaksojen atk84d ja ict02d käyttöön 1/17 Eclipse 3.1 Pikaopas versio 1.0 Pikaohjeen sisältö 1. Esittely 2. Asennus ja poistaminen 3. Sovelluskehitys 4. Sovelluksen toteutus
LisätiedotOsio 4: Graafinen käyttöliittymä
Javan Swing-tekniikan perusteet: Muistutus: Tarvitset seuraavia komponentteja harjoituksissa: otsikkoteksti (label) muokkausruutu (text field) komentopainike (button) yhdistelmäruutu (combo box) paneeli
Lisätiedot1. Olio-ohjelmointi 1.1
1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja
LisätiedotLuokan sisällä on lista
1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä
LisätiedotUML ja luokkien väliset suhteet
UML ja luokkien väliset suhteet -Luokan kuvaaminen UML-tekniikalla -Yhteyssuhde ja koostumussuhde 1 Luokan kuvaaminen UML-tekniikalla : Luokka - attribuutti1 : tietotyyppi # attribuutti2 : tietotyyppi
LisätiedotC# Windows ohjelmointi perusopas
Paavo Räisänen C# Windows ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa
LisätiedotTehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003
Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003 Matti Nykänen 5. joulukuuta 2003 1 Satelliitit Muunnetaan luennoilla luonnosteltua toteutusta seuraavaksi: Korvataan puusolmun p kentät p. key ja
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman
LisätiedotJypelin käyttöohjeet» Miten saan peliin pistelaskurin?
Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä
LisätiedotSisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä
Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.
LisätiedotOhjelmointi 1 C#, kevät 2013, 2. tentti
ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla
LisätiedotOliot viestivät metodeja kutsuen
6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen
LisätiedotJava-API, rajapinnat, poikkeukset, UML,...
Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)
LisätiedotDialogit. Juha Järvensivu 2007
Dialogit Juha Järvensivu juha.jarvensivu@tut.fi 2007 Dialogi Yleistä Käyttöliittymäkirjastot tarjoavat valmiin toteutuksen tavallisimmista UI-komponenteista.NET: System.Windows.Forms Peruskomponentteja
LisätiedotKirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina
Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden
Lisätiedotsim.exe DLL DLL ISO 639 sim.exe DLL ISO 639
DLL sim.exe DLL DLL ISO 639 sim.exe DLL ISO 639 *************************** ISO 639 *************************** () ab aa af sq am ar hy as ay az ba eu bn dz bh bi br bg my be 299 ( ) ( ) () () km ca zh
Lisätiedot9. Periytyminen Javassa 9.1
9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.
LisätiedotRinnakkaisuus. Juha Järvensivu 2008
Rinnakkaisuus Juha Järvensivu juha.jarvensivu@tut.fi 2008 Sisällys Rinnakkaisuus ja käyttöliittymäohjelmointi GUI-thread.NET rinnakkaisuus Asynkroninen delegaatti (.NET) Timerit Backgroundworker (.NET)
LisätiedotOlio-ohjelmointi Käyttöliittymä
Olio-ohjelmointi 2016 Käyttöliittymä n Javalla on helppo toteuttaa yksinkertainen graafinen käyttöliittymä n AWT/Swing n JFC (Java Foundation Collection) n AWT-sisältää Javan grafiikka GUI-komponmentit
Lisätiedot10 Lock Lock-lause
10 Lock Avainsanan lock (Lock keyword) avulla voidaan toteuttaa prosessien ja säikeiden välisessä keskinäisessä kommunikoinnissa käytettäviä synkronointi- ja poissuljentarakenteita. Tämän niin sanotun
Lisätiedot1 Tehtävän kuvaus ja analysointi
Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.
LisätiedotSarjallistaminen. Juha Järvensivu 2007
Sarjallistaminen Juha Järvensivu juha.jarvensivu@tut.fi 2007 Sisällys 1. tunti: Sarjallistaminen.NET ympäristössä 2. tunti: Sarjallistaminen Java ympäristöstä Sarjallistaminen Muutetaan objektin tila muotoon,
Lisätiedot812347A Olio-ohjelmointi, 2015 syksy 2. vsk. X Poikkeusten käsittelystä
812347A Olio-ohjelmointi, 2015 syksy 2. vsk X Poikkeusten käsittelystä Sisältö 1. Yleistä poikkeusten käsittelystä 2. Poikkeuskäsittelyn perusteita C++:ssa 3. Standardissa määritellyt poikkeukset 4. Poikkeusvarmuus
LisätiedotDialogit. Juha Järvensivu 2008
Dialogit Juha Järvensivu juha.jarvensivu@tut.fi 2008 Yleistä 2 vaihtoehtoista toteutusmekanismia Layoutteihin perustuva dialogi Absoluuttisiin koordinaatteihin perustuva dialogi Haasteita 1. Dialogin selkeä
Lisätiedotpublic static void main (String [] args)
HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,
Lisätiedot4. Olio-ohjelmoinista lyhyesti 4.1
4. Olio-ohjelmoinista lyhyesti 4.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 4.2 Yleistä Olio-ohjelmointia käsitellään hyvin
LisätiedotTIE-20200 Ohjelmistojen suunnittelu
TIE-20200 Ohjelmistojen suunnittelu Luento 1: Virtuaalifunktiot, Template method 1 Yleistä asiaa Muistakaa harkkatyöilmoittautuminen 23 ryhmää (mm. lihansyöjäkirahvi), vajaita ryhmiäkin on 44 henkeä vielä
LisätiedotEclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä
Anne Benson/Tanja Bergius Opintojakson ict1td002 käyttöön Sivu 1 / 13 Eclipse 3.2 pikku opas versio 1.0 Ohjeen sisältö: Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä
LisätiedotRajapinta (interface)
1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä
LisätiedotInteraktiivinen tarinankerronta
Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla
Lisätiedot