Programowanie w technologii.net wykład 3 Dependency Properties, Routed Events

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie w technologii.net wykład 3 Dependency Properties, Routed Events"

Transkrypt

1 Programowanie w technologii.net wykład 3 Dependency Properties, Routed Events 1/29 Dependency Properties własności zależnościowe - wydajniejsze pamięciowo - dziedziczenie wartości (w drzewie elementów) - powiadomienia o zmianie wartości - potrzebne do stylów, animacji, wiązania danych - używa się ich tak samo, jak zwykłych własności

2 2/29 klasyczne własności: class FrameworkElement Thickness Margin set... = value; get return...; a jak są definiowane Dependency Properties? najpierw statyczna składowa reprezentująca definiowaną własność: public class FrameworkElement : UIElement,... public static readonly DependencyProperty MarginProperty; //...

3 3/29 rejestrowanie właściwości w statycznym konstruktorze: static FrameworkElement() FrameworkPropertyMetadata metadata = new FrameworkPropertyMetadata(new Thickness(), FrameworkPropertyMetadataOptions.AffectsMeasure); MarginProperty = DependencyProperty.Register("Margin", typeof(thickness), typeof(frameworkelement), metadata, IsMarginValid); //... walidacja (uwaga: to metoda statyczna, zatem sprawdza tylko podaną wartość): private static bool IsMarginValid(object value) Thickness thickness1 = (Thickness)value; if(...) return true; return false;

4 wrapper (te metody są wołane tylko z kodu C#, a nie XAMLa): public Thickness Margin set SetValue(MarginProperty, value); get return (Thickness)GetValue(MarginProperty); teraz mamy gotową właściwość: myelement.margin = new Thickness(5); jest też dostępne czyszczenie lokalnie ustawionej wartości: myelement.clearvalue(frameworkelement.marginproperty); Property Metadata pozwala na ustawienie kilku dodatkowych cech definiowanej własności najważniejsze: DefaultValue domyślna wartość własności CoerceValueCallback testowanie zgodności wartości PropertyChangedCallback powiadomienie o zmianie wartości ponadto flagi określające wpływ własności na ułożenie lub rozmiar elementu (np. AffectsArrange, AffectsMeasure), na sposób wyświetlania (AffectsRender), zachowania przy wiązaniu danych, triggerach, animacji, interfejsie opartym na stronach (np. IsAnimationProhibited, IsNotDataBindable, Journal) oraz włączające dziedziczenie w drzewie zagnieżdżenia (Inherits) 4/29

5 5/29 Coercion 1. CoerceValueCallback ma szansę na zmianę dostarczonej wartości albo ją odrzucić 2. ValidateValueCallback sprawdza poprawność wartości (statycznie!) 3. PropertyChangedCallback gdy zmiana zaszła pomyślnie przykład koercji na scrollu i właściwości Maximum: private static object CoerceMaximum(DependencyObject d, object value) RangeBase base1 = (RangeBase)d; if (((double)value) < base1.minimum) return base1.minimum; return value;

6 podobnie dla Value: internal static object ConstrainToRange(DependencyObject d, object value) double newvalue = (double)value; RangeBase base1 = (RangeBase)d; double minimum = base1.minimum; if (newvalue < minimum) return minimum; double maximum = base1.maximum; if (newvalue > maximum) return maximum; return newvalue; 6/29

7 w Minimum nie ma koercji, ale jest odpalenie zmiany pozostałych, gdy trzeba: private static void OnMinimumChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) RangeBase base1 = (RangeBase)d; //... base1.coercevalue(rangebase.maximumproperty); base1.coercevalue(rangebase.valueproperty); podobnie Maximum wymusza koercję Value: private static void OnMaximumChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) RangeBase base1 = (RangeBase)d; //... base1.coercevalue(rangebase.valueproperty); Ma to zadbać o właściwe dopasowanie wartości: ScrollBar bar = new ScrollBar(); // Value = 0, Minimum = 0, Maximum = 1 bar.value = 100; // Value = 1 (koercja) bar.minimum = 1; // Value = 1 bar.maximum = 200; // znow odpalona koercja Value i Value = 100 (*) (*) - koercja odpalona z oryginalnie podaną wartością właściwości zatem ustalone jest Value = 100 (!) 7/29

8 8/29 Shared Dependency Properties Niekiedy kilka klas (w osobnych hierarchiach) korzysta z tej samej własności, np. TextBlock.FontFamily i Control.FontFamily wskazują na tę samą własność zdefiniowaną w klasie TextElement; robi się to wywołując AddOwner: TextBlock.FontFamilyProperty = TextElement.FontFamilyProperty.AddOwner(typeof(TextBlock)); Attached Dependency Properties Dotyczą innego elementu niż są zdefiniowane. Np. Grid.Row zdefiniowane jest w Gridzie, a dotyczy elementu w nim osadzonego. Rejestruje się je przy użyciu RegisterAttached: FrameworkPropertyMetadata metadata = new FrameworkPropertyMetadata( 0, new PropertyChangedCallback(Grid.OnCellAttachedPropertyChanged)); Grid.RowProperty = DependencyProperty.RegisterAttached("Row", typeof(int), typeof(grid), metadata, new ValidateValueCallback(Grid.IsIntValueNotNegative));

9 9/29 Nie definiuje się dla nich wrappera, gdyż mogą być ustawione dla dowolnego elementu. Zamiast tego korzystamy ze statycznych metod: public static int GetRow(UIElement element) if (element == null) throw new ArgumentNullException(/*...*/); return (int)element.getvalue(grid.rowproperty); public static void SetRow(UIElement element, int value) if (element == null) throw new ArgumentNullException(/*...*/); element.setvalue(grid.rowproperty, value); A tak z tego korzystamy: Grid.SetRow(txtElement, 0); co przekłada się na: txtelement.setvalue(grid.rowproperty, 0);

10 Jak używane są własności zależnościowe? 10/29

11 11/29 Gdy zmieni się wartość własności, uruchamiana jest metoda callbackowa PropertyChangedCallback nie odpala ona jednak domyślnie eventów. Zamiast tego powiadamiane są data-bindingi i triggery (będzie o nich mowa w następnych rozdziałach). Jedynie część własności uruchamia jakieś powiązane z ich zmiana zdarzenia (np. TextBox.TextChanged, ScrollBar.ValueChanged). Gdy pobieramy wartość własności zależnościowej, WPF poszukuje jej w: 1. domyślnej wartości 2. wartości odziedziczonej 3. wartości podanej w stylu 4. wartości wpisanej lokalnie (w kodzie lub XAMLu) Tak pobrana wartość, zanim zostanie zwrócona, może być modyfikowana przez wyrażenia, wiązanie danych, dołączone animacje, koercje.

12 12/29 Zdarzenia w WPF Event Routing Routed Events podróżują po drzewie elementów.

13 13/29 rodzaje zdarzeń: - direct bezpośrednie (dotyczą tylko jednego elementu) - bubbling (wędrują w górę hierarchii zagnieżdżenia najpierw podnoszone przez element którego dotyczą) - tunneling (wędrują w dół hierarchii zagnieżdżenia najpierw podnoszone przez element najwyższego poziomu okno) przekazany do obsługi argument typu RoutedEventArgs zawiera własność Handled pozwala przerwać tunelowanie/ bąbelkowanie private void DoSomething(object sender, RoutedEventArgs e) if (...) e.handled = true; RoutedEventArgs.Source od kogo pochodzi zdarzenie (przeważnie kontrolka) sender kto je przysłał (gdzie umieszczono obsługę zdarzenia) RoutedEventArgs.RoutedEvent zdarzenie

14 14/29 Attached Events Wykonawca zdarzenia może być podpięty na poziomie elementu, który podnosi zdarzenie albo do innego elementu powyżej lub poniżej hierarchii zagnieżdżenia: <StackPanel Button.Click="DoSomething" Margin="5"> <Button Name="btn1" Tag="jeden">Przycisk 1</Button> <Button Name="btn2" Tag="dwa">Przycisk 2</Button> <Button Name="btn3" Tag="trzy">Przycisk 3</Button>... </StackPanel> private void DoSomething(object sender, RoutedEventArgs e) object tag = ((FrameworkElement)e.Source).Tag; MessageBox.Show((string)tag); Tunneling Events Tunneling i Bubbling występują w parach (tunneling ma przeważnie przedrostek Preview) najpierw wędruje tunneling, a potem bubbling obsłużenie (ustawienie Handled) dla tunelowego wyłącza bąbelkowe!

15 15/29 <Label BorderBrush="Black" BorderThickness="1"> <StackPanel> <TextBlock Margin="3">Tekst i ikona</textblock> <Image Source="ikona.jpg" Stretch="None" /> <TextBlock Margin="3">Podpis</TextBlock> </StackPanel> </Label> Label PreviewMouseDown StackPanel PreviewMouseDown Image PreviewMouseDown Image MouseDown StackPanel MouseDown Label MouseDown Label PreviewMouseUp StackPanel PreviewMouseUp Image PreviewMouseUp Image MouseUp StackPanel MouseUp Label MouseUp

16 Definiowanie zdarzeń w WFP: public abstract class ButtonBase : ContentControl,... // definicja public static readonly RoutedEvent ClickEvent; // rejestracja static ButtonBase() ButtonBase.ClickEvent = EventManager.RegisterRoutedEvent( "Click", RoutingStrategy.Bubble, typeof(routedeventhandler), typeof(buttonbase)); //... // wrapper public event RoutedEventHandler Click add base.addhandler(buttonbase.clickevent, value); remove base.removehandler(buttonbase.clickevent, value); //... ręczne podnoszenie zdarzenia: button.raiseevent( new RoutedEventArgs(ButtonBase.ClickEvent, this)); 16/29

17 17/29 posługiwanie się zdarzeniami: dołączanie obsługi zdarzenia: <Button Name="btn1" Click="klik">OK</Button> w kodzie: btn1.click += klik; i odłączanie btn1.click -= klik; lub: btn1.addhandler(buttonbase.clickevent, new RoutedEventHandler(klik)); i btn1.removehandler(buttonbase.clickevent, new RoutedEventHandler(klik)); nie powinniśmy dołączać w ten sposób wysokopoziomowych (logicznych) metod, a tylko event handlery - oddelegowujące polecenia do warstwy logiki

18 18/29 WPF Events Kategorie zdarzeń: czasu życia (gdy element jest ładowany, inicjowany, usuwany) zdarzenia myszy (akcje myszy) zdarzenia klawiatury (akcje klawiatury) zdarzenia stylusa Czasu życia: Podnoszą je wszystkie elementy, gdy są tworzone bądź zwalniane. Initialized gdy utworzono instancję elementu i ustawiono jego właściwości. Inne elementy tego samego okna mogą jeszcze nie istnieć. IsInitialized == true. Jest to zwykłe zdarzenie (nie jest routed). Loaded gdy całe okno zostało zainicjowane, dołączono style i wiązanie danych. Tuż przed jego wyświetleniem. IsLoaded == true. Unloaded gdy element został zwolniony (usunięto go z okna bądź zamknięto okno).

19 kolejność działań: - tworzona instancja obiektu - przetwarzane i ustawiane właściwości z XAMLa - Initialized (gdy tworzymy okno elementy są inicjowane z dołu do góry te głębiej w zagnieżdżeniu są pierwsze) - ułożenie w kontenerze - Loaded ( z góry do dołu ) - renderowanie (wyświetlenie okna, gdy wszystkie elementy załadowane) Zdarzenia czasu życia dla klasy Window: SourceInitialized ustawiane powiązania do HWND (Win32 API) ContentRendered gdy zawartość okna wyrenderowana po raz pierwszy (okno wyświetlone i gotowe do przyjmowania wejścia) Activated gdy nastąpiło przełączenie do okna (albo załadowane po raz pierwszy) jest to odpowiednik GetFocus kontrolek Deactivated użytkownik przełączył się na inne okno (lub zamknął to) odpowiednik LostFocus Closing okno się zamyka (można to anulować CancelEventArgs.Cancel na true); nie ma Closing, jeśli to system się wyłącza Closed okno zostało zamknięte (ale do jego elementów wciąż mamy jeszcze dostęp) Typowe miejsce dla inicjacji kontrolek Loaded 19/29

20 20/29 Zdarzenia wejścia: Wszystkie dołączają dwie właściwości: Timestamp (czas zdarzenia w milisekundach) i Device (urządzenie, które odpaliło zdarzenie). Zdarzenia klawiatury: naciśnięcie klawisza: PreviewKeyDown (Tunneling) KeyDown (Bubbling) wpisanie znaku (odpalają je tylko te klawisze, które powodują wpisanie tekstu): PreviewTextInput (Tunneling) TextInput (Bubbling) zwolnienie klawisza: PreviewKeyUp (Tunneling) KeyUp (Bubbling) gdy trzymamy naciśnięty klawisz powtarzane są zarówno oba KeyDown jak i TextInput Uwaga: wiele kontrolek przechwytuje i blokuje te proste zdarzenia (ale nie tunelling) na rzecz własnych (np. TextBox dodaje TextChanged gdy naciśnięcie klawisza spowodowało zmianę tekstu w polu tekstowym).

21 21/29 Obsługa klawiszy: <Window... KeyDown="KeyEvent" PreviewKeyDown="KeyEvent" KeyUp="KeyEvent" PreviewKeyUp="KeyEvent"> <ScrollViewer Name="scroll"> <Label Name="lblInfo"/> </ScrollViewer> </Window> private void KeyEvent(object sender, KeyEventArgs e) lblinfo.content += "Event: " + e.routedevent + " Key: " + e.key + "\n"; scroll.scrolltobottom(); Uwaga: x to x niezależnie od shift, alt, etc. Ale czym innym jest Key.D0, a czym innymi Key.NumPad0. e.isrepeat pozwala sprawdzić, czy ten event to efekt trzymania klawisza: e.text zwraca tekst, jaki ma otrzymać kontrolka (w zdarzeniach typu TextInput) e.keystates informuje o stanie naciśniętego klawisza

22 o stanie pozostałych można dowiedzieć się z KeyboardDevice: if ((e.keyboarddevice.modifiers & ModifierKeys.Control) == ModifierKeys.Control) lblinfo.content = "You held the Control key."; metody KeyboardDevice: IsKeyDown() - czy dany klawisz był naciśnięty gdy zaszło zdarzenie IsKeyUp() IsKeyToggled() - tylko dla Caps Lock, Num Lock, Scroll Lock GetKeyStates() - połączenie KeyDown i KeyToggled Keyboard aktualny stan klawiszy: if (Keyboard.IsKeyDown(Key.LeftShift)) lblinfo.content = "The left Shift is held down."; przydatne jak konwertować Key do stringa: KeyConverter converter = new KeyConverter(); string key = converter.converttostring(e.key); 22/29

23 23/29 PreviewTextInput dobre miejsce do walidacji tekstu w kontrolce (np. gdy chcemy tylko numeryczne ustawiamy Handled gdy nie to co chcemy) private void pnl_previewtextinput(object sender, TextCompositionEventArgs e) short val; if (!Int16.TryParse(e.Text, out val)) // tylko klawisze numeryczne e.handled = true; private void pnl_previewkeydown(object sender, KeyEventArgs e) if (e.key == Key.Space) // spacja tutaj, bo nie podnosi ona PreviewTextInput e.handled = true;

24 24/29 Mysz MouseEnter kursor wjeżdża nad element MouseLeave opuszcza element nie są routed Poza nimi: PreviewMouseMove (tunneling) i MouseMove (bubbling) gdy mysz się porusza. private void MouseMoved(object sender, MouseEventArgs e) Point pt = e.getposition(this); lblinfo.content = String.Format("Współrzędne: (0,1)", pt.x, pt.y); można sprawdzić też stan przycisków: if(e.leftbutton == MouseButtonState.Pressed)... sprawdzanie położenia wskaźnika myszy metodą statyczną klasy Mouse: Mouse.GetPosition(element)

25 25/29 Kliknięcia MouseLeftButtonDown MouseLeftButtonUp to samo jest dla Right dla każdego istnieje odpowiednik Preview* (tunelling) MouseWheel i Preview* - obsługa kółka Przekazany parametr MouseButtonEventArgs ma dodatkowo właściwość ClickCount. Niektóre kontrolki przejmują te zdarzenia, a dają dodatkowe (np. Click w Buttonie).

26 26/29 Przechwytywanie myszy Aby otrzymywać zdarzenia z myszy poza elementem. Mouse.Capture(element) aby zwolnić: Mouse.Capture(null) i jeszcze zdarzenie LostMouseCapture, gdy to stracimy <Window... MouseMove="Canvas_MouseMove" MouseLeftButtonDown="Canvas_MouseLeftButtonDown" MouseLeftButtonUp="Canvas_MouseLeftButtonUp"> <Canvas> <Rectangle Name="box" Width="50" Height="50" Canvas.Top="50" Canvas.Left="100" Fill="Blue" /> </Canvas> </Window>

27 27/29 private void Canvas_MouseMove(object sender, MouseEventArgs e) if (e.leftbutton == MouseButtonState.Pressed) Point pt = e.getposition(this); box.setvalue(canvas.topproperty, pt.y-25); box.setvalue(canvas.leftproperty, pt.x-25); private void Canvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) Mouse.Capture(this); private void Canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) Mouse.Capture(null);

28 28/29 przydatne do Drag-and-Drop: 1. klikamy i trzymamy przycisk (pewna informacja zapisana i zaczynamy przeciąganie) 2. ruch myszy na inny element, który może przyjąć drop sygnalizacja kursorem 3. zwolnienie przycisku zrzucenie danych <Label MouseDown="lbl1_MouseDown">Źródło</Label> private void lbl1_mousedown(object sender, MouseButtonEventArgs e) Label lbl = (Label)sender; DragDrop.DoDragDrop(lbl, lbl.content, DragDropEffects.Copy); odbiorca wymaga ustawienia: <Label DragEnter="lbl2_DragEnter" Drop="label2_Drop" AllowDrop="True">Cel</Label>

29 29/29 przyjęcie zrzutu: private void lbl2_drop(object sender, DragEventArgs e) ((Label)sender).Content = e.data.getdata(dataformats.text); sprawdzanie czy dane które możemy przyjąć: private void lbl2_dragenter(object sender, DragEventArgs e) if (e.data.getdatapresent(dataformats.text)) e.effects = DragDropEffects.Copy; else e.effects = DragDropEffects.None;

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Windows Presentation Foundation WPF (2)

Windows Presentation Foundation WPF (2) Windows Presentation Foundation WPF (2) Programowanie Wizualne Paweł Wojciechowski Instytut Informatyki, Politechniki Poznańskiej 2012 Model zdarzeń zdarzenia (ang. events), czyli wiadomości wysłane przez

Bardziej szczegółowo

Programowanie w technologii.net wykład 4 Aplikacja i okna

Programowanie w technologii.net wykład 4 Aplikacja i okna Programowanie w technologii.net wykład 4 Aplikacja i okna 1/30 Aplikacja Aplikacja WPF jest reprezentowana przez instancję klasy System.Windows.Application. pilnuje ona kiedy program się uruchamia i kończy

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Windows Presentation Foundation

Windows Presentation Foundation Windows Presentation Foundation Tworzenie interfejsu użytkownika Współpraca projektanta i programisty (XAML) Interfejsy atrakcyjniejsze graficznie (np. 3D) Aplikacje internetowe (XBAP) Użycie Layoutów

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego 1/34 Wymagania wstępne: Znajomość podstaw programowania. Efekty kształcenia: Umiejętność tworzenia prostych aplikacji

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Programowanie obiektowe i zdarzeniowe wkład 2 klas i obiekt namespace ConsoleApplication1 // współrzędne punktu int, ; Jak zdefiniować w programie punkt? = 3; = 2; Może tak? // wpisanie informacji Console.WriteLine("

Bardziej szczegółowo

Biblioteka Windows Forms

Biblioteka Windows Forms Biblioteka Windows Forms Aplikacje Windows Forms Aplikacje sterowane zdarzeniami Rysowanie oparte na GDI+ "Obudowane" kontrolki Win32 "Elementy" do budowy aplikacji Przestrzeń nazw System.Windows.Forms

Bardziej szczegółowo

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. Tematy zajęć: 1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika. 2. Posługiwanie się podstawowymi kontrolkami. 3. Własności i zdarzenia w WPF. 4. Zadania aplikacji. Okna. 5. Polecenia. Zasoby.

Bardziej szczegółowo

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop. 2016 Spis treści Część I Wzorzec MVVM. Podstawy XAML 7 Rozdział 1. Szybkie wprowadzenie do XAML 9 Wzorzec widoku autonomicznego 9 Tworzenie

Bardziej szczegółowo

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

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

Rozwój aplikacji modułowych Paweł Brudnicki. Dodanie modułu

Rozwój aplikacji modułowych Paweł Brudnicki. Dodanie modułu Rozwój aplikacji modułowych Paweł Brudnicki Moduł jest podstawową jednostką funkcjonalności. Stanowi on część, która może być niezależnie pisana, testowana a nawet wdrażana. W przewodniku dodamy niezależny

Bardziej szczegółowo

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji

Bardziej szczegółowo

Laboratorium programowania urządzeń mobilnych

Laboratorium programowania urządzeń mobilnych Laboratorium programowania urządzeń mobilnych Wprowadzenie Hierarcha klas dla aplikacji typu Silverlight tworzonej przez Visual Studio jest następująca: Obsługa ekranu W urządzeniach z Windows Phone 7

Bardziej szczegółowo

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i

Bardziej szczegółowo

Logger. Następnie w klasie Bootstrapper muimy zarejestrować nasz nowy logger:

Logger. Następnie w klasie Bootstrapper muimy zarejestrować nasz nowy logger: Logger Na początku stworzymy własny logger. Do tego calu trzeba utworzyć klasę naszego loggera, która będzie implementować interfejs ILoggerFacade. Oto kod tej klasy: public class SimpleLogger: ILoggerFacade

Bardziej szczegółowo

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla

Bardziej szczegółowo

Visual Basic for Applications. Formatki tworzenie,

Visual Basic for Applications. Formatki tworzenie, Visual Basic for Applications Formatki tworzenie, sterowanie, właściwości. Podstawowe typy kontrolek: Wybrane właściwości obiektu UserForm: BackColor kolor wypełnienia tła formatki, BorderStyle fmborderstylenone/fmborderstylesingle,

Bardziej szczegółowo

using System;... using System.Threading;

using System;... using System.Threading; Kontekst synchronizacji Wątek w platformie.net może posiadać kontekst synchronizacji reprezentowany przez instancję klasy SynchronizationContext lub jej klasy potomnej. Jeżeli wątek posiada taki kontekst

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programownie w technologii.net wykład 6 Element Binding i Data Binding

Programownie w technologii.net wykład 6 Element Binding i Data Binding Programownie w technologii.net wykład 6 Element Binding i Data Binding 1/41 Element Binding Mechanizm, który pozwala wydobyć pewne informacje z obiektu źródłowego i zapisać je w pewnym obiekcie docelowym.

Bardziej szczegółowo

System zdarzeń - wyzwalanie i nasłuchiwanie

System zdarzeń - wyzwalanie i nasłuchiwanie System zdarzeń - wyzwalanie i nasłuchiwanie Informacje o module Opis modułu W tym rozdziale dowiesz się czym są zdarzenia silverlight, jakie rodzaje zdarzeo obsługuje oraz jakie strategie informowania

Bardziej szczegółowo

Modele zawartości. WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość

Modele zawartości. WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość WPF Programowanie w środowisku Windows Wykład 8-1 Kontrolki Modele zawartości WPF wykorzystuje 4 modele zawartości kontrolek: ContentControl pojedyncza zawartość Wykład 8-2 używane przez: Button, ButtonBase,

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem

Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem Interfejs użytkownika (ang. User Interface, UI) w technice część urządzenia odpowiedzialna za interakcję z użytkownikiem Dodawanie kontrolek i komponentów Podczas budowania bazującej na formularzach aplikacji

Bardziej szczegółowo

Kurs programowania 2 - listy

Kurs programowania 2 - listy Kurs programowania 2 - listy Listy rozwijane (ComboBox) Listy rozwijane (rozwijalne) można tworzyć przy użyciu klasy ComboBox. W tabeli poniżej właściwości udostępniane przez tę kontrolkę. Najważniejsza

Bardziej szczegółowo

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Projekt Hurtownia, realizacja rejestracji dostaw produktów

Projekt Hurtownia, realizacja rejestracji dostaw produktów Projekt Hurtownia, realizacja rejestracji dostaw produktów Ćwiczenie to będzie poświęcone zaprojektowaniu formularza pozwalającego na rejestrację dostaw produktów dla naszej hurtowni. Dane identyfikujące

Bardziej szczegółowo

Materiały do zajęć VII

Materiały do zajęć VII Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

Edytor tekstu MS Office Word

Edytor tekstu MS Office Word Edytor tekstu program komputerowy ukierunkowany zasadniczo na samo wprowadzanie lub edycję tekstu, a nie na nadawanie mu zaawansowanych cech formatowania (do czego służy procesor tekstu). W zależności

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

Programowanie zdarzeniowe

Programowanie zdarzeniowe Programowanie zdarzeniowe I. Podstawy obsługi zdarzeń Małgorzata Prolejko ZDA JA16Z03 Plan Pojęcie zdarzenia Klasy i obiekty słuchaczy Rejestracja słuchaczy Obsługa naciśnięcia przycisku Rozpoznawanie

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Swing ćwiczenia 2 opis

Swing ćwiczenia 2 opis Swing ćwiczenia 2 opis Zad 1. a) Dołożyliśmy nowy obszar tekstowy JTextArea i w jego właściwości Document ustawiliśmy, że ma wspólny dokument (model-treść) z naszym pierwszym JTextArea. Zauważmy, że wpisując

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

Metodyka programowania. Visual Studio C#

Metodyka programowania. Visual Studio C# Metodyka programowania Visual Studio C# MS Visual Studio Środowisko programistyczne MS Różne platformy programistyczne (MFC,.NET, ASP.NET, ) Różne rodzaje projektów (Windows Forms, Class Library, Service

Bardziej szczegółowo

Zdarzenie Zachodzi gdy Kolejność zdarzeń Kolejność Zdarzenie Opis uwaga: CausesValidation True.

Zdarzenie Zachodzi gdy Kolejność zdarzeń Kolejność Zdarzenie Opis uwaga: CausesValidation True. Kolejny wykład w cyklu Akademii PC Kuriera poświęconej programowaniu w Visual Basic.NET rozpoczniemy od kontynuacji opisu znaczenia i roli zdarzeń w aplikacji. Z pierwszego odcinka uważny czytelnik zapamiętał

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

Laboratorium 10 - Web Services

Laboratorium 10 - Web Services Laboratorium 10 - Web Services W ramach laboratorium zapoznamy się z koncepcją Web Service ów (odmiana point-to-point Web Service). W kolejnych krokach utworzony zostanie projekt, w którym wykorzystana

Bardziej szczegółowo

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML:

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML: Lab8 WPF Zad1 : - lista z językami i flagami + wiązanie danych z obiektu przerabiana na ComboBox - fisheye przegląd obrazków lupa (obrazki umieszczone na sztywno) - wyświetlenie galerii zdjęć zapisanej

Bardziej szczegółowo

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python PyGame 18 grudnia 2015 Plan wykładu 1 Wprowadzenie Parametry wyświetlania Powierzchnie 2 Klawiatura Mysz Dżojstik 3 Odtwarzanie plików dźwiękowych Odtwarzanie muzyki Samodzielne tworzenie dźwięków 4 3D:

Bardziej szczegółowo

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1 Podstawy programowania, Poniedziałek 30.05.2016, 8-10 Projekt, część 1 1. Zadanie Projekt polega na stworzeniu logicznej gry komputerowej działającej w trybie tekstowym o nazwie Minefield. 2. Cele Celem

Bardziej szczegółowo

Zdarzenia i polecenia

Zdarzenia i polecenia WPF Programowanie w środowisku Windows Wykład 10-1 Zdarzenia i polecenia Wykład 10-2 Zdarzenia Metoda obsługi zdarzenia może być do niego przypisana w kodzie C# lub w XAML

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Klawiatura komputerowa.

Klawiatura komputerowa. Klawiatura komputerowa. Zdjęcie: www.xpec.pl Klawiatura komputerowa. Klawiatura komputerowa uporządkowany zestaw klawiszy służący do ręcznego sterowania lub wprowadzania danych do komputera. Najpopularniejszym

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej

Jarosław Kuchta Podstawy Programowania Obiektowego. Podstawy grafiki obiektowej Jarosław Kuchta Podstawy Programowania Obiektowego Podstawy grafiki obiektowej Zagadnienia Grafika proceduralna grafika obiektowa Grafika WPF dualizm XAML C# Właściwości obiektów graficznych edycja właściwości

Bardziej szczegółowo

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

Bardziej szczegółowo

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Laboratorium OiOSE. Programowanie w środowisku MS Visual C++ 1 Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Organizacja i Oprogramowanie Systemów Elektronicznych Michał Kowalewski

Bardziej szczegółowo

Animacja. Instrukcja wykonania animacji metodą klatek kluczowych. Autor: Bartosz Kowalczyk. Blender 2.61

Animacja. Instrukcja wykonania animacji metodą klatek kluczowych. Autor: Bartosz Kowalczyk. Blender 2.61 Animacja Instrukcja wykonania animacji metodą klatek kluczowych Autor: Bartosz Kowalczyk Blender 2.61 Do wykonywania prostych animacji, np. ruchu, zmiany koloru, kształtu, itp. wykorzystuje się technikę

Bardziej szczegółowo

Klasy cd. Struktury Interfejsy Wyjątki

Klasy cd. Struktury Interfejsy Wyjątki Klasy cd. Struktury Interfejsy Wyjątki Struktury Struktura pozwala na zdefiniowanie typu danych, który nie charakteryzuje się zbyt złożoną funkcjonalnością (np. punkt, kolor, etc). Do definiowania struktury

Bardziej szczegółowo

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

Programowanie zaawansowane

Programowanie zaawansowane Programowanie zaawansowane Ćwiczenie 6 Komunikacja silnie typowana I. Utwórz aplikację okienkową realizującą proste obliczenia arytmetyczne. Obsługa zdarzeń w aplikacji typu Windows Form Application odbywa

Bardziej szczegółowo

Pola i metody statyczne. Klasy zawierające pola i metody statyczne

Pola i metody statyczne. Klasy zawierające pola i metody statyczne Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr

Bardziej szczegółowo

KLASY, INTERFEJSY, ITP

KLASY, INTERFEJSY, ITP KLASY, INTERFEJSY, ITP ZAGADNIENIA: Klasy, modyfkatory dostępu, pakiety. Zmienne i metody statyczne. Klasy abstrakcyjne, dziedziczenie. Interfejsy. Komentarze i javadoc, http://th-www.if.uj.edu.pl/zfs/ciesla/

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Przewodnik krok po kroku:

Przewodnik krok po kroku: Przewodnik krok po kroku: Aplikacja jest rozbudowywana. Jej podstawą jest: https://msdn.microsoft.com/enus/library/ff921174(v=pandp.40).aspx Do aplikacji dodajemy nowy moduł, który posłuży nam do dodawania

Bardziej szczegółowo

Budowa aplikacji w technologii.net wykład 11 Animacje

Budowa aplikacji w technologii.net wykład 11 Animacje Budowa aplikacji w technologii.net wykład 11 Animacje 1/52 Wykonanie animacji w Windows Forms, MFS, Swingu, etc. opierało się na timerach i własnej funkcji rysującej: 1. Stworzenie timera, który co określoną

Bardziej szczegółowo

Wykład 4. Klasa List Kolejki Stosy Słowniki

Wykład 4. Klasa List Kolejki Stosy Słowniki Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien

Bardziej szczegółowo

MVVM Light Toolkit Przewodnik krok po kroku

MVVM Light Toolkit Przewodnik krok po kroku Julita Borkowska 242817 MVVM Light Toolkit Przewodnik krok po kroku W celu lepszego zrozumienia elementów MVVM Light Toolkit przedstawionych w prezentacji, zostanie poniżej krok po kroku napisany program

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp.

Prototype (prototyp) Cel: Przykład: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. 1/14 Prototype (prototyp) Cel: Określenie rodzaju tworzonych obiektów poprzez wskazanie ich prototypu. Nowe instancje tworzymy kopiując prototyp. Przykład: Edytor 3D klient tworzy obiekty różnych kształtów

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 07 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami tworzenia aplikacji okienkowych w C#. Wprowadzenie teoretyczne. Rozważana w

Bardziej szczegółowo

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class

Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class Tworzymy projekt File->New Project->Java Application, przy czym tym razem odznaczamy create main class Mamy Prawym przyciskiem na default packeges I wybieramy New JFrame. Teraz pamiętajmy o podaniu jakiejś

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Budowa aplikacji w technologii.net wykład 05 Polecenia i zasoby

Budowa aplikacji w technologii.net wykład 05 Polecenia i zasoby Budowa aplikacji w technologii.net wykład 05 Polecenia i zasoby 1/52 Commands polecenia Polecenie jest wyższym poziomem abstrakcji, niż zdarzenie reprezentuje zadanie, które chce wykonać użytkownik (np.

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Skróty klawiaturowe w PowerPoint

Skróty klawiaturowe w PowerPoint Pomoc online: W oknie Pomoc: Skróty klawiaturowe w PowerPoint F1 Otwieranie okna Pomoc. ALT+F4 Zamknięcie okna Pomoc. ALT+TAB Przełączenie między oknem Pomoc i aktywnym programem. ALT+HOME Powrót do strony

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5 5 AS SP.NET MVC Walidacja danych 1 1. Cel zajęć Celem zajęć jest zapoznanie się z metodami walidacji danych wprowadzanych przez użytkownika oraz z tworzeniem własnych walidatorów. 2. Zadanie Proszę przebudować

Bardziej szczegółowo

1.Instalacja. Przechodzimy przez kolejne okna instalatora klikacjąć Dalej. wolek.zallegro.pl

1.Instalacja. Przechodzimy przez kolejne okna instalatora klikacjąć Dalej. wolek.zallegro.pl 1.Instalacja Przechodzimy przez kolejne okna instalatora klikacjąć Dalej. 1 Dla instalacji jednostanowiskowej zaznaczamy aplikacje Serwera i Klienta. W przypadku, gdy pilot ma pracować z kilkoma komputerami

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek

wstawianie przycisków umożliwiających wybieranie wartości poprzez klikanie strzałek VBA Excel Formularz Formanty Label wstawianie etykiet TextBox wstawianie pól tekstowych ComboBox wstawianie pól kombi ComboBox wstawianie pól kombi ComboBox wstawianie pól kombi OptionButton wstawianie

Bardziej szczegółowo

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Informatyzacja Przedsiębiorstw

Informatyzacja Przedsiębiorstw Informatyzacja Przedsiębiorstw Microsoft Dynamics NAV 2013 Development Environment C/AL Izabela Szczęch Informatyzacja Przedsiębiorstw Strona 1 Spis treści 1 Informacje ogólne:... 3 1.1 Zmienne... 4 1.2

Bardziej szczegółowo

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Interfejs w MFC 1. Tworzenie nowego projektu Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Następnie wybieramy opcje jak na rysunku: Następnie wybieramy

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Komputerowe systemy na rynkach finansowych. wykład 5. MQL4 - funkcje operujące na obiektach wykresu

Komputerowe systemy na rynkach finansowych. wykład 5. MQL4 - funkcje operujące na obiektach wykresu Komputerowe systemy na rynkach finansowych wykład 5 MQL4 - funkcje operujące na obiektach wykresu ObjectCreate - funkcja tworzy nowy obiekt graficzny, określonego typu oraz nadaje mu nazwę i przyporządkowuje

Bardziej szczegółowo

Klasy abstrakcyjne, interfejsy i polimorfizm

Klasy abstrakcyjne, interfejsy i polimorfizm Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo