Podstawy Programowania PalmOS

Podobne dokumenty
Programowanie obiektowe

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Java: interfejsy i klasy wewnętrzne

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Zasady programowania Dokumentacja

Wprowadzenie do programowania w języku C

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

Pętle while, for, do while, instrukcje break, continue, switch 1. Pętle

Zofia Kruczkiewicz, Programowanie obiektowe - java, wykład 2 1

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Bloki anonimowe w PL/SQL

Podstawy programowania w języku C

Microsoft IT Academy kurs programowania

Podstawowe części projektu w Javie

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Umieszczanie kodu. kod skryptu

Programowanie strukturalne i obiektowe

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Język ludzki kod maszynowy

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Podstawy programowania skrót z wykładów:

Szkolenia specjalistyczne

Projekt Hurtownia, realizacja rejestracji dostaw produktów

PROGRAMOWANIE w C prolog

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

Zaawansowane aplikacje WWW - laboratorium

external Data Representation

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Języki i metody programowania Java INF302W Wykład 2 (część 1)

Podstawy Programowania Podstawowa składnia języka C++

1. Tworzenie nowego projektu.

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Site Installer v2.4.xx

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Programowanie MorphX Ax

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Sterbox. e-pilot. v.4.0. INSTRUKCJA KONFIGURACJI e-pilot V4 oraz Programowanie STERBOX-a

JAVA?? to proste!! Autor: wojtekb111111

Instrukcja programowania kasy Bursztyn z aplikacji PLU Manager (KF-03) 2013

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Programowanie w środowisku graficznym GUI

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Kontrola przebiegu programu

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

CZYM JEST JAVASCRIPT?

Podstawy Programowania C++

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

PROGRAMOWALNE STEROWNIKI LOGICZNE

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

Multimedia JAVA. Historia

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Podstawy i języki programowania

Szybka instrukcja tworzenia testów dla E-SPRAWDZIAN-2 programem e_kreator_2

Dynamiczne struktury danych

Programowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

Sun RPC/XDR. Dariusz Wawrzyniak 1

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.1

Materiały do zajęć III

Struktury czyli rekordy w C/C++

Podręcznik użytkownika programu. Ceremonia 3.1

Programowanie obiektowe

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Dodawanie operacji dodatkowych w WAPRO Mag.

Sun RPC/XDR 10. listopada Dariusz Wawrzyniak (IIPP) 1

external Data Representation

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1

Mechanizmy pracy równoległej. Jarosław Kuchta

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

1 Podstawy c++ w pigułce.

System JFox-Storekeeper. Instrukcja użytkownika

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

1.Wstęp. 2.Generowanie systemu w EDK

Bezpieczne uruchamianie apletów wg

imei CYFROWE PRZETWARZANIE SYGNAŁÓW Laboratorium Temat: Tworzenie aplikacji w środowisku LabWindows/CVI Instytut Metrologii, Elektroniki i Informatyki

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Programowanie strukturalne język C - wprowadzenie

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Zarządzanie projektem informatycznym

DYNAMICZNE PRZYDZIELANIE PAMIECI

Lab 9 Podstawy Programowania

Microsoft Visual C++

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Użycie Visual Basic for Applications ("VBA")

Ćwiczenie 5 Menu programu

Dlaczego PHP? - zalety

Windows 10 - Jak uruchomić system w trybie

Transkrypt:

Podstawy Programowania PalmOS O czym należy pamiętać: - mały ekran (160x160) - utrudnione wpisywanie tekstu - synchronizacja z komputerem PC - ograniczona wielkość pamięci - szybkość działania Program jest bazą danych składającą się z zasobów m.in.: - kod programu - elementy interfejsu uzytkownika - łańcuchy tekstowe - formatki - ikony

Alarmy: - informacyjne - pytanie - ostrzeżenie - zatrzymanie Elementy interfejsu użytkownika

Elementy interfejsu użytkownika Formatka Pole wyboru Menu

Elementy interfejsu użytkownika Przycisk Przełącznik Pole Mapa bitowa

Elementy interfejsu użytkownika Gadżet Znacznik Shift Etykieta

Narzędzia programistyczne - PalmOS Developer Suite http://www.palmsource.com/developers Oparty na środowisku programistycznym ECLIPSE IBM Programowanie w C/C++ - Emulator Wykorzystuje oryginalną zawartość pamięci ROM komputerów Palm.

Programowanie Punktem wejściowym programu jest zawsze funkcja PilotMain. UInt32 PilotMain(UInt16 cmd, MemPtr cmdpbp, UInt16 launchflags) { Err error = errnone; switch (cmd) { case sysapplaunchcmdnormallaunch: if ((error = AppStart()) == 0) { AppEventLoop(); AppStop(); default: return error;

Programowanie Funkcja AppStart służy do inicjalizacji głównej formatki aplikacji. static Err AppStart(void) { FrmGotoForm(MainForm); return errnone; W tej funkcji można także załadować preferencje użytkownika, otworzyć bazę danych, zaalokować pamięć. Funkcja AppStop może być pusta. Aplikacja powinna w niej m.in. zwolnić przydzieloną pamięć.

Programowanie Aplikacja pracuje w pętli wewnątrz funkcji AppEventLoop. static void AppEventLoop(void) { Err error; EventType event; do { EvtGetEvent(&event, evtwaitforever); if (SysHandleEvent(&event)) continue; if (MenuHandleEvent(0, &event, &error)) continue; if (AppHandleEvent(&event)) continue; FrmDispatchEvent(&event); while (event.etype!= appstopevent);

Programowanie Funkcja EvtGetEvent - pobiera zdarzenia z kolejki zdarzeń, - ważnym jej parametrem jest czas jaki ma czekać na zdarzenie jeśli kolejka jest pusta, - evtwaitforever usypia aplikację oszczędzanie energii, - evtnowait natychmiastowy powrót komputer pracuje bez przerwy Funkcja SysHandleEvent - pierwsza w kolejności, - obsługa zdarzeń systemowych. Funkcja MenuHandleEvent - przetwarza zdarzenia związane z menu.

Programowanie Funkcja AppHandeEvent - standardowa konstrukcja, - załadowanie formatek, - przypisanie funkcji obsługi zdarzeń do formatek. Funkcja FrmDispatchEvent - reakcja na standardowe polecenia, - wywołanie funkcji przypisanej do okienka.

AppHandleEvent static Boolean AppHandleEvent(EventType* pevent) { UInt16 formid; FormType* pform; Boolean handled = false; if (pevent->etype == frmloadevent) { formid = pevent->data.frmload.formid; pform = FrmInitForm(formId); FrmSetActiveForm(pForm); switch (formid) { case MainForm: FrmSetEventHandler(pForm, MainFormHandleEvent); default: handled = true; return handled;

MainFormHandleEvent static Boolean MainFormHandleEvent(EventType* pevent) { Boolean handled = false; FormType* pform; Err err; switch (pevent->etype) { case menuevent: return MainFormDoCommand(pEvent->data.menu.itemID); case frmopenevent: pform = FrmGetActiveForm(); FrmDrawForm(pForm); handled = true; default: return handled;

Edytor zasobów Przykład edycji parametrów przycisku. Przycisk otrzymał identyfikator ID. Identyfikator wykorzystujemy w programie.

Wykorzystanie zasobów Wykorzystanie listy wyboru oraz przycisku w programie. switch (pevent->etype) { case popselectevent: if (pevent->data.ctlenter.controlid == 1004) { switch(pevent->data.popselect.selection) { case 0: step_size = 5; case 1: step_size = 10;... ; //if case ctlselectevent: if (pevent->data.ctlselect.controlid == 1001) { start_counting(); ; //if //switch pevent->etype

Wykorzystanie zasobów Wykorzystanie etykiety jako elementu wyjściowego. static Boolean MainFormHandleEvent(EventType* pevent) { Boolean handled = false; FormType* pform; Char lancuszek[]=" "; //20 znakow... case ctlselectevent: if (pevent->data.ctlselect.controlid == 1000) { pform = FrmGetActiveForm(); StrCopy(lancuszek, "Wcisnales klawisz "); FrmCopyLabel (pform, 1603, lancuszek); ;...

A teraz Rodacy do pracy!!