Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie urządzeń mobilnych Paweł Fiderek 2011.

Podobne prezentacje


Prezentacja na temat: "Programowanie urządzeń mobilnych Paweł Fiderek 2011."— Zapis prezentacji:

1 Programowanie urządzeń mobilnych Paweł Fiderek 2011

2 Wykład 3 – Windows Mobile wprowadzenie Historia systemu – Pochodzenie – Rozwój kolejnych wersji Wprowadzenie – Podstawowe elementy GUI – Wprowadzenie do programowania urządzeń z systemem Windows Mobile 2PUM wykład 3 Paweł Fiderek

3 3 Windows CE – system operacyjny opracowany przez Microsoft jako system dla urządzeń przenośnych typu PDA (np.: Pocket PC lub Palm) lub jako system wbudowany. Wersja 1.0 była bardziej rozbudowanym organizerem niż systemem operacyjnym (z punktu widzenia użytkownika.) Windows CE jest zoptymalizowany dla urządzeń o minimalnej pamięci – jądro Windows CE może być uruchomione nawet w 1 MB pamięci. System nie wymaga do pracy dysku twardego, może być więc system zamkniętym, i być umieszczony w pamięci ROM. Obsługuje 256 priorytetów wykonywania i korzysta z dziedziczenia priorytetów w razie, przydatnych w sytuacji inwersji priorytetów. Podstawową jednostką wykonywania jest wątek, co umożliwia prostsze zarządzanie procesami. Windows CE używany jest także w komputerach pokładowych samochodów wraz z systemem rozpoznawania mowy mającym zapewnić bezdotykową obsługę systemu operacyjnego.

4 4PUM wykład 3 Paweł Fiderek Windows CE 1.x specyfikacja urządzeń na których system miał pracować : Wymiary nie większe niż 18x10x2.5 cm Zasilanie z dwóch baterii AA Waga mniejsza niż 500 g Klawiatura QWERTY zawierająca klawisze takie jak SHIFT, CTRL i ALT Dotykowy wyświetlacz LCD o rozdzielczości 480x240 pikseli w 4 odcieniach szarości Minimum 4 MB pamięci ROM Minimum 2 MB pamięci RAM Port podczerwieni Port COM zgodny z RS-232 Slot PC Card (PCMCIA) Wbudowana obsługa dźwięku Procesor SuperH 3, MIPS 3000 lub MIPS 4000 Microsoft nie wypowiedział się jednoznacznie co oznacza skrót CE, lecz twierdzi, że taka nazwa nie była celowa. Oświadczył jednak, że CE wyrażać może w sobie wiele koncepcji, takich jak Compact (ang. Kompaktowy), Connectable (ang. Łącznościowy), Compatible (ang. Kompatybilny). Najczęściej jednak nazwę tłumaczy się jako "Compact Edition" lub "Consumer Electronics".

5 5PUM wykład 3 Paweł Fiderek Wygląd GUI systemu Windows CE 1.0 Źródło: Internet.

6 6PUM wykład 3 Paweł Fiderek Wersje systemu 1 Windows CE 1.x 2 Windows CE HandheldPC 2.x 3 Windows CE Palm-Size PC Windows CE Palm-Size PC Windows CE HandeldPC HandheldPC Professional 6 Windows CE HandeldPC 3.x - HandheldPC Windows CE.net (4.x) 8 Windows CE Windows CE Windows Mobile (i ten system również posiada kilka wersji.) Od wersji 4.0 z systemem zintegrowano.NET Compact Framework. Windows CE 6.0 powstał we wrześniu 2006 roku. Nazwa kodowa "Yamazaki". M.in. zwiększono przestrzeń adresową procesu z 32 MB do 1 GB i umożliwiono uruchomienie procesów (w porównaniu z 32 w wersji 5.0).

7 7PUM wykład 3 Paweł Fiderek Microsoft Windows Mobile Microsoft Windows Mobile to 32-bitowy system operacyjny przeznaczony dla urządzeń typu Pocket PC oraz Smartphone. Windows Mobile nie jest zupełnie osobnym systemem, lecz rozszerzeniem Windows CE o dodatkową funkcjonalność, API (ang. Application Programming Interface) oraz Shell. Dostępne wersje Systemu: Windows Mobile 2003 Windows Mobile 2003SE Windows Mobile 5.0 Windows Mobile 6.0 (64 MB RAM, wyświetlacz 3,5 cala) Windows Mobile 6.1 Classic Istnieją wersje przeznaczone dla PocketPC z wbudowanym modułem GSM: Windows Mobile 2003 Premium Phone edition Windows Mobile 2003SE Phone edition Windows Mobile 5.0 (Magneto) Phone edition Windows Mobile 6.0 Phone edition Windows Mobile 6.1 Professional Windows Mobile 6.5 Professional Windows Mobile Professional (w trakcie rozwoju) Windows Mobile 7 Professional (w trakcie rozwoju)

8 8PUM wykład 3 Paweł Fiderek Istnieją również wersje dla smartphone obsługujące ekrany 176x220 oraz 240x320 bez ekranu dotykowego: Smartphone 2002 Windows Mobile 2003 for Smartphone Windows Mobile 2003SE for Smartphone Windows Mobile 5.0 for Smartphone Windows Mobile 6.0 for Smartphone Windows Mobile 6.1 Standard Wygląd GUI systemu Windows Mobile 5.0 Źródło: Internet.

9 9PUM wykład 3 Paweł Fiderek.NET Compact Framework Platforma umożliwiająca uruchamiane aplikacji napisanych w językach rodziny.NET, bedaca swego rodzaju maszyną wirtualną (jak np. JVM). Zatem można powiedzieć, że.Net Framework to maszyna wirtualna udostępniająca biblioteki, odpowiedzialne za nisko-poziomową interakcję z systemem operacyjnym, językom zarządzanym (ang. managed) wysokiego poziomu, np. C#. Kod napisany w C# czy J# jest najpierw kompilowany do pośredniego języka MSIL (Microsoft Intermediate Language). Wynikiem tego działania jest moduł zawierający instrukcje MSIL. Jedną z przyczyn zastosowania MSIL jest mozliwość wykorzystywania wielu języków programowania (VB, C#, J#, JScript, i Visual C++), skąd pojawia się konieczność pośredniej kompilacji kodu do MSIL. Następnie, moduł ten zamieniany jest na natywne instrukcje danego systemu operacyjnego CLR (ang. Common Language Runtime). Zatem.Net Framework postrzegać powinno się bardziej, jako platformę wielojęzykową, a nie jak maszynę wirtualną (jak np. maszyna wirtualna Javy) – wieloplatformową. Przeprowadzane są obecnie prace nad rozszerzeniem owych pięciu wspieranych języków programowania do ponad dwudziestu pięciu.

10 10PUM wykład 3 Paweł Fiderek Architektura.NET Compact Framework Źródło: Internet

11 11PUM wykład 3 Paweł Fiderek Common Language Runtime – wspólne środowisko uruchomieniowe. Jego podstawowym zadaniem jest zlokalizowanie, wczytywanie oraz zarządzanie typami.NET w imieniu użytkownika. CLR zajmuje się niskim poziomem pracy aplikacji np.: automatyczne zarządzanie pamięcią, integracją językową oraz ułatwianie wdrożenia ( i wsparcie dla różnego rodzaju wersji ) bibliotek kodu binarnego. CLR składa się z dwóch zasadniczych elementów: Runtime execution engine - mechanizm wykonawczy środowiska uruchomieniowego – mscoree.dll. Kiedy pakiet ( assembly ) jest wywoływany, automatycznie wczytywany jest mscoree.dll, który z kolei wczytuje do pamięci potrzebny pakiet. Mechanizm uruchomieniowy jest odpowiedzialny za wykonanie szeregu zadań. Pierwszym i najważniejszym jest określenie położenia pakietu i znalezienie wymaganego typu ( np. klasy, interfejsu, struktury itp. ) w kodzie binarnym przez odczytanie dostarczonych metadanych. Mechanizm wykonawczy kompiluje zasocjowany IL ( Intermediate Language ) do instrukcji specyficznych dla danej platformy. Biblioteka klas podstawowych. Składa się z kilku oddzielnych pakietów, najważniejszym jest mscorlib.dll. Zawiera dużą liczbę podstawowych typów, które hermetyzują dużą różnorodność najczęściej spotykanych zadań programistycznych. Każde rozwiązanie oparte na platformie.NET, zawsze wykorzystuje się ten pakiet i czasem kilka innych.NET ( zarówno oferowanych przez system jak i przygotowanych przez użytkownika ). Common Language Specification – specyfikacja wspólnego języka. Jest zbiorem zasad definiujących podzbiór wspólnych typów (dla różnych języków), który daje pewność, że kod binarny.NET może zostać bez klejenia wykorzystany przez wszystkie języki współpracujące na platformie.NET.

12 12PUM wykład 3 Paweł Fiderek Common Type System – zbiór wbudowanych podstawowych i wspólnych typów. Zawiera pełny opis wszystkich możliwych typów danych, obsługiwanych przez środowisko uruchomieniowe. Zawiera także informacje, o tym, jakie interakcje mogą zachodzić między nimi, oraz określa szczegóły ich reprezentacji w formie metadanych.NET. Managed Code - Kompilatory zgodne z CLR zamieniają kod źródłowy aplikacji na kod wykonywalny, zapisany w standardowym języku pośrednim MSIL, oraz na metadane informacje na temat kodu wykonywalnego oraz danych wykorzystywanych przez ten kod. Platforma.NET umożliwia pisanie aplikacji w wielu językach, ale dzięki MC kompilator zamienia wszystkie operacje na typach danych, to jest klasach, strukturach, liczbach całkowitych, łańcuchach znaków na język MSIL i metadane. W czasie wykonywania aplikacji, CLR tłumaczy kod MSIL na kod maszynowy (natywny) procesora, na którym wykonywana jest aplikacja. Taka konwersja kodu z MSIL na kod maszynowy daje możliwość zarządzania wykonywaniem aplikacji, co pozwala uniknąć wielu problemów stąd nazwa kod zarządzany. Garbage Collection –.NET Compact Framework zapewnia zwalnianie wszystkich zasobów, z jakich korzysta aplikacja, po jej zakończeniu. W tym celu wykorzystywany jest mechanizm o nazwie Garbate Collection. Compact Framework decyduje kiedy powinien zostać uruchomiony proces Garbage Collection. Może on zostać uruchomiony w pojedynczej domenie aplikacji bądź też we wszystkich dostępnych. Pozwala to zapobiegać sytuacją, gdy jedna aplikacja zużywa zbyt dużo pamięci w porównaniu z innymi.

13 Podstawy działania Garbage collection 13PUM wykład 3 Paweł Fiderek Garbage collection (zbieranie nieużytków) to architektura zarządzania pamięcią, w której proces zwalniania nieużywanych jej obszarów odbywa się automatycznie. Mechanizm taki stosuje się na przykład w wysokopoziomowych językach programowania, przy czym za jego obsługę nie odpowiada sam język, lecz wirtualna maszyna. Garbage collection zostało wymyślone przez Johna McCarthy'ego około roku 1959 do rozwiązania problemu ręcznego zarządzania pamięcią w Lispie. Był to pierwszy język obsługujący ten mechanizm. Przykładowymi językami obsługującymi ten mechanizm są Smalltalk, Python, Ruby, Java, C#. Istnieje co najmniej kilka metod pracy GC. Liczenie odnośników (reference counting) W tej metodzie każda jednostka zarezerwowanej pamięci ma licznik, w którym jest zapisana liczba odwołań do tej jednostki. Za każdym razem, kiedy dodajemy odwołanie, zwiększamy licznik we wskazywanej jednostce, a kiedy odwołanie usuwamy, zmniejszamy licznik. Jeśli wartość licznika osiągnęła zero, to usuwamy wszystkie odnośniki wychodzące z tego obszaru pamięci i zwalniamy go. Metoda ta nie gwarantuje zwolnienia wszystkich niepotrzebnych obszarów w sytuacji, gdy występują tzw. wzajemne (cykliczne) odwołania. Przykładowo, jeśli X zawiera wskaźnik na Y, a Y zawiera wskaźnik na X (np. są to dwa komunikujące się ze sobą obiekty), licznik w żadnym z nich nigdy nie osiągnie zera.

14 14PUM wykład 3 Paweł Fiderek W liczeniu odnośników dodatkowe obliczenia związane z pracą kolektora nieużytków są rozłożone w czasie, gdyż wszystkie operacje muszą dbać o liczniki, co może skutkować znacznie mniejszym - lub też przeciwnie - znacznie większym, obciążeniem w porównaniu z innymi metodami. Mark and Sweep. W tej metodzie każda jednostka pamięci zawiera pojedynczy bit, który jest na początku czysty. Kiedy maszyna wirtualna przechodzi w fazę "garbage collection", zaczyna sprawdzać obiekty, o których wie, że istnieją do nich odwołania, zaznacza w nich ten bit i rekursywnie przechodzi przez wszystkie komórki przez nie wskazywane. Kiedy już wszystko zostało oznaczone, komórki bez znacznika są zwalniane, bo na pewno nic na nie nie wskazuje, po czym znacznik jest czyszczony wszystkim komórkom. Mark and Sweep jest obecnie najpopularniejszą metodą. Garbage collection przez kopiowanie Ta metoda polega na tym, że wszystko zostaje rekursywnie przekopiowane do innego obszaru w pamięci - najpierw kopiowany jest początkowy zestaw danych, potem wszystko co było przez niego wskazywane, itd. Na końcu zwalniamy początkową pamięć. W ten sposób przez odsiew usuwane zostają elementy, na które nic nie wskazuje. I w ten sposób oszczędza się na konieczności ustawiania bitów w "mark and sweep", dodatkowo, regularnie defragmentuje się pamięć. Problemy jakie mogą wystąpić to konieczność poniesienia kosztu kopiowania oraz konieczność posiadania dużej ilości wolnej pamięci. Ten sposób byłby bardziej praktyczny na systemach, na których możliwa jest tymczasowa alokacja dużej ilości pamięci.

15 15PUM wykład 3 Paweł Fiderek Class Library Support Klasy są zorganizowane hierarchicznie wewnątrz przestrzeni nazw ( namespace )..NET Compact Framework współdzieli około 2/3 klas z pełną wersją.NET Framework. Mimo to występują pomiędzy nimi pewne istotne różnice, i trzeba być tego świadom podczas tworzenia aplikacji z wykorzystaniem.NET Compact Framework. Klasy współdzielone:.NET Compact Framework dostarcza szeroki podzbiór klas i metod do budowania aplikacji, które są później uruchamiane na urządzeniach z ograniczonymi zasobami. Wszystkie te klasy są semantycznie kompatybilne z klasami o tych samych nazwach w.NET Framework..NET Compact Framework posiada wsparcie dla istotnych elementów takich jak: · Usługi sieci Web oparte na XML · Zarządzanie relacyjnymi danymi · Rozbudowana funkcjonalność XML · Rozbudowane klasy do rysowania, takie jak Image Controls · Potężne możliwości budowania interfejsu użytkownika..NET Compact Framework nie wspiera klas ASP.NET.

16 Dalsze różnice 16PUM wykład 3 Paweł Fiderek · - COM Interop – nie wspierane, należy wykonywać funkcje DLL, które wywołują obiekty COM - Data – podzbiór implementacji ADO.NET oraz SQL Server CE - ASP.NET – nie wspierany. Należy używać ASP.NET Mobile Web Controls do tworzenia stron sieci WWW dla urządzeń przenośnych - XML – ze względu na rozmiar brak obsługi walidacji XML schema lub zapytań XPath w dokumentach XML. - Aby zmniejszyć rozmiary środowiska zrezygnowano z wielu przeładowanych metod - Brak niektórych kontrolek ( np. wsparcia dla drukowania ) - Ze względu na wydajność brak klas BinaryFormatter i SoapFormatter - Bezpieczeństwo – brak zabezpieczenia dostępu do kodu niezarządzanego. Dowolna aplikacja może wywołać dowolny system lub nie systemowe API. Brak systemu bezpieczeństwa opartego na rolach

17 17PUM wykład 3 Paweł Fiderek · - COM Interop – nie wspierane, należy wykonywać funkcje DLL, które wywołują obiekty COM - Data – podzbiór implementacji ADO.NET oraz SQL Server CE - ASP.NET – nie wspierany. Należy używać ASP.NET Mobile Web Controls do tworzenia stron sieci WWW dla urządzeń przenośnych - XML – ze względu na rozmiar brak obsługi walidacji XML schema lub zapytań XPath w dokumentach XML. - Aby zmniejszyć rozmiary środowiska zrezygnowano z wielu przeładowanych metod - Brak niektórych kontrolek ( np. wsparcia dla drukowania ) - Ze względu na wydajność brak klas BinaryFormatter i SoapFormatter - Bezpieczeństwo – brak zabezpieczenia dostępu do kodu niezarządzanego. Dowolna aplikacja może wywołać dowolny system lub nie systemowe API. Brak systemu bezpieczeństwa opartego na rolach

18 18PUM wykład 3 Paweł Fiderek MMIT dostarcza wszelkich korzyści projektowania aplikacji z pomocą ASP.NET. Ponadto MMIT posiada następujące udogodnienia: - Wsparcie dla szerokiej gamy urządzeń. Pozwala na używanie ASP.NET na wielu urządzeniach mobilnych, począwszy na telefonach komórkowych, skończywszy na urządzeniach Pocket PC. - Strony WWW stworzone z wykorzystaniem MMIT są tak samo prezentowane na wszystkich wspieranych urządzeniach, nie trzeba jej dostosowywać do poszczególnych urządzeń. Można tworzyć złożoną aplikację wykorzystując zbiór mobilnych kontrolek serwerowych bez żadnej wiedzy na temat WML-a lub innych podobnych języków. Środowisko uruchomieniowe bierze na siebie odpowiedzialność za różnice w implementacjach pomiędzy różnymi przeglądarkami, urządzeniami i bramkami sieciowymi. - Możliwość personalizacji i rozszerzania funkcjonalności. MMIT dostarcza takie same możliwości personalizacji i rozszerzalności jak ASP.NET. W dodatku narzędzie pozwala na dodawanie obsługi nowych urządzeń, bez konieczności jakiejkolwiek zmiany w kodzie aplikacji. Dzięki temu można mieć pewność, że aplikacja stworzona dzisiaj będzie w przyszłości działała na nowej generacji urządzeń.

19 Możliwości programistyczne w Windows Mobile PUM wykład 3 Paweł Fiderek Windows Mobile 5.0 zapewnia programistom nowe, liczne interfejsy programistyczne. Dzięki nim, programista może się skupić na konkretnych celach aplikacji, a nie sposobach ich realizacji. Elementy wspomaganie przez interfejsy to np.: rysowanie 2D i 3D, dostarczają nowych możliwości komunikacyjnych oraz ułatwiają obsługę elementów sprzętowych takich jak kamera czy też system nawigacji satelitarnej. Inne usprawnienia to m. in. : 1.Nowe interfejsy API dostarczają wielu nowych możliwości np.: zarządzanie obrazami, kontaktami, 2.Większa przenośność kodu i aplikacji pomiędzy urządzeniami Pocket PC a Smartphone. 3.Nowe API do śledzenia aktywności systemu takich jak: zmiany w połączeniu z siecią, odbiór wiadomości SMS lub nadejście połączenia telefonicznego; 4.Rozbudowane narzędzia do testowania aplikacji w zależności od orientacji ekranu, rozdzielczości czy też rodzaju urządzenia – przyspieszają tworzenie aplikacji w Visual Studio. 5.API do obsługi wbudowanego aparatu. 6.Windows Media Player 10 Mobile pozwala na łatwa dołączenie multimediów do tworzonej aplikacji (np. wbudowanie odtwarzacza multimedialnego). 7.Obsługa Direct3D dostarcza możliwości tworzenia aplikacji trójwymiarowych. 8.Obsługa DirectDraw zapewnia większą kontrolę i elastyczność w aplikacjach 2D.

20 20PUM wykład 3 Paweł Fiderek Windows Mobile 5.0 posiada zainstalowane domyślnie w pamięci ROM środowisko.NET Compact Framework 1.0 wraz z SP3. Możemy wyróżnić trzy rodzaje API: - Nowo dodane API kierowane do programistów tworzących aplikacje w kodzie natywnym; - Istniejące wcześniej natywne API, ale teraz dodatkowo dostępne dla programistów kodu zarządzanego; - Nowo dodane API dostępne zarówno dla programistów kodu natywnego jak i zarządzanego.

21 Programowanie GUI w Windows Mobile 21PUM wykład 3 Paweł Fiderek

22 Check Box 22PUM wykład 3 Paweł Fiderek cb = new CheckBox(); cb.Content = "CheckBox"; spanel2.Children.Add(cb);

23 Combo Box 23PUM wykład 3 Paweł Fiderek this.comboBox1 = new System.Windows.Forms.ComboBox(); AddItemsCore Contains OnDoubleClick RefreshItems

24 Command Button Pocket PCSmartphone 24PUM wykład 3 Paweł Fiderek btncsharp = new Button(); btncsharp.Content = "Created with C# code."; btncsharp.Background = SystemColors.ControlDarkDarkB rush; btncsharp.FontSize = SystemFonts.CaptionFontSize; cv2.Children.Add(btncsharp);

25 Context Menu 25PUM wykład 3 Paweł Fiderek ContextMenu mnuContextMenu = new ContextMenu(); this.ContextMenu = mnuContextMenu; MenuItem mnuItemNew = new MenuItem(); MenuItem mnuItemOpen = new MenuItem(); mnuItemNew.Text = "&New"; mnuItemOpen.Text = "&Open"; mnuContextMenu.MenuItems.Add(mnuItemNew); mnuContextMenu.MenuItems.Add(mnuItemOpen);

26 Date Picker Pocket PCSmartphone 26PUM wykład 3 Paweł Fiderek public void CreateMyDateTimePicker() { // Create a new DateTimePicker control and initialize it. DateTimePicker dateTimePicker1 = new DateTimePicker(); // Set the MinDate and MaxDate. dateTimePicker1.MinDate = new DateTime(1985, 6, 20); dateTimePicker1.MaxDate = DateTime.Today; // Set the CustomFormat string. dateTimePicker1.CustomFormat = "MMMM dd, yyyy - dddd"; dateTimePicker1.Format = DateTimePickerFormat.Custom; //Show the CheckBox and display the control //as an up-down control. dateTimePicker1.ShowCheckBox = true; dateTimePicker1.ShowUpDown = true; }

27 Hyperlink HyperLink link = (HyperLink) e.Item.FindControl("viewDetails"); 27PUM wykład 3 Paweł Fiderek

28 List Box 28PUM wykład 3 Paweł Fiderek private void button1_Click(object sender, System.EventArgs e) { // Create an instance of the ListBox. ListBox listBox1 = new ListBox(); // Set the size and location of the ListBox. listBox1.Size = new System.Drawing.Size(200, 100); listBox1.Location = new System.Drawing.Point(10,10); // Add the ListBox to the form. this.Controls.Add(listBox1); // Set the ListBox to display items in multiple columns. listBox1.MultiColumn = true; // Set the selection mode to multiple and extended. listBox1.SelectionMode = SelectionMode.MultiExtended; // Shutdown the painting of the ListBox as items are added. listBox1.BeginUpdate(); // Loop through and add 50 items to the ListBox. for (int x = 1; x <= 50; x++) { listBox1.Items.Add("Item " + x.ToString()); } // Allow the ListBox to repaint and display the new items. listBox1.EndUpdate(); // Select three items from the ListBox. listBox1.SetSelected(1, true); listBox1.SetSelected(3, true); listBox1.SetSelected(5, true); // Display the second selected item in the ListBox to the console. System.Diagnostics.Debug.WriteLine(listBox1.SelectedItems[1].ToString()); // Display the index of the first selected item in the ListBox. System.Diagnostics.Debug.WriteLine(listBox1.SelectedIndices[0].ToString()); }

29 List View 29PUM wykład 3 Paweł Fiderek ListViewItem listViewItem1 = new ListViewItem(); ListViewSubItem listViewSubItem1 = new ListViewSubItem(); listViewItem1.Text = "Joe"; listViewSubItem1.Text = "123 Somewhere Street"; listViewItem1.SubItems.Add(listViewSubItem1); listView1.Items.Add(listViewItem1); ColumnHeader columnHeader1 = new ColumnHeader(); ColumnHeader columnHeader2 = new ColumnHeader() ; ColumnHeader columnHeader3 = new ColumnHeader(); columnHeader1.Text = "Name"; columnHeader2.Text = "Address"; columnHeader3.Text = "Telephone Number"; listView1.Columns.Add(columnHeader1); listView1.Columns.Add(columnHeader2); listView1.Columns.Add(columnHeader3); listView1.Groups.Add(new ListViewGroup("Friends", HorizontalAlignment.Left));

30 Option Button 30PUM wykład 3 Paweł Fiderek this.groupBox1 = new System.Windows.Forms.GroupBox(); this.radioButton2 = new System.Windows.Forms.RadioButton(); this.radioButton1 = new System.Windows.Forms.RadioButton(); this.getSelectedRB = new System.Windows.Forms.Button(); this.groupBox1.Controls.Add(this.radioButton2); this.groupBox1.Controls.Add(this.radioButton1); this.groupBox1.Controls.Add(this.getSelectedRB); this.groupBox1.Location = new System.Drawing.Point(30, 100); this.groupBox1.Size = new System.Drawing.Size(220, 125); this.groupBox1.Text = "Radio Buttons";

31 Progress Bar 31PUM wykład 3 Paweł Fiderek this.progressBar1 = new System.Windows.Forms.ProgressBar(); progressBar1.Maximum = 10; progressBar1.Location = new System.Dr awing.Point(8, 312); progressBar1.Minimum = 0; progressBar1.TabIndex = 0; progressBar1.Value = 0;

32 Scroll Bar 32PUM wykład 3 Paweł Fiderek hscrollb = new ScrollBar(); hscrollb.Orientation = Orientation.Horizontal; spanel1.Children.Add(hscrollb); vscrollb = new ScrollBar(); vscrollb.Orientation = Orientation.Vertical; vscrollb.HorizontalAlignment = HorizontalAlignment.Left; vscrollb.Width = (20); vscrollb.Height = (80); Canvas.SetLeft(vscrollb, (50)); spanel1.Children.Add(vscrollb);

33 Slider 33PUM wykład 3 Paweł Fiderek Slider hslider = new Slider(); hslider.Orientation = Orientation.Horizontal; hslider.AutoToolTipPlacement = AutoToolTipPlacement.TopLeft; hslider.AutoToolTipPrecision = 2; hslider.IsDirectionReversed = true; hslider.Width = 100; hslider.IsMoveToPointEnabled = false; hslider.SelectionStart = 1.1; hslider.SelectionEnd = 3; hslider.IsSelectionRangeEnabled = false; hslider.IsSnapToTickEnabled = false; hslider.TickFrequency = 3; hslider.TickPlacement = TickPlacement.Both; cv1.Children.Add(hslider);

34 Tab 34PUM wykład 3 Paweł Fiderek private void MyTabs() { this.tabControl1 = new TabControl(); // Invokes the TabPage() constructor to create the tabPage1. this.tabPage1 = new System.Windows.Forms.TabPage(); this.tabControl1.Controls.AddRange(new Control[] { this.tabPage1}); this.tabControl1.Location = new Point(25, 25); this.tabControl1.Size = new Size(250, 250); this.ClientSize = new Size(300, 300); this.Controls.AddRange(new Control[] { this.tabControl1}); }

35 Text Box 35PUM wykład 3 Paweł Fiderek private void CreateMyMultilineTextBox() { // Create an instance of a TextBox control. TextBox textBox1 = new TextBox(); // Set the Multiline property to true. textBox1.Multiline = true; // Add vertical scroll bars to the TextBox control. textBox1.ScrollBars = ScrollBars.Vertical; // Allow the RETURN key to be entered in the TextBox control. textBox1.AcceptsReturn = true; // Allow the TAB key to be entered in the TextBox control. textBox1.AcceptsTab = true; // Set WordWrap to True to allow text to wrap to the next line. textBox1.WordWrap = true; // Set the default text of the control. textBox1.Text = "Welcome!"; }

36 36PUM wykład 3 Paweł Fiderek

37 37PUM wykład 3 Paweł Fiderek

38 38PUM wykład 3 Paweł Fiderek

39 39PUM wykład 3 Paweł Fiderek

40 40PUM wykład 3 Paweł Fiderek

41 41PUM wykład 3 Paweł Fiderek

42 42PUM wykład 3 Paweł Fiderek

43 43PUM wykład 3 Paweł Fiderek

44 44PUM wykład 3 Paweł Fiderek

45 45PUM wykład 3 Paweł Fiderek

46 46PUM wykład 3 Paweł Fiderek

47 47PUM wykład 3 Paweł Fiderek

48 48PUM wykład 3 Paweł Fiderek

49 49PUM wykład 3 Paweł Fiderek

50 50PUM wykład 3 Paweł Fiderek

51 51PUM wykład 3 Paweł Fiderek

52 52PUM wykład 3 Paweł Fiderek

53 53PUM wykład 3 Paweł Fiderek

54 54PUM wykład 3 Paweł Fiderek

55 55PUM wykład 3 Paweł Fiderek

56 56PUM wykład 3 Paweł Fiderek

57 57PUM wykład 3 Paweł Fiderek

58 58PUM wykład 3 Paweł Fiderek

59 59PUM wykład 3 Paweł Fiderek

60 60PUM wykład 3 Paweł Fiderek


Pobierz ppt "Programowanie urządzeń mobilnych Paweł Fiderek 2011."

Podobne prezentacje


Reklamy Google