Zdarzenia (eventy) Zdarzenia służą do powiadomienia użytkownika, gdy w używanej klasie dojdzie do pewnych wydarzeń zdefiniowanych przez twórcę klasy.

Slides:



Advertisements
Podobne prezentacje
Programowanie obiektowe
Advertisements

Klasy abstrakcyjne i interfejsy
Programowanie obiektowe PO PO - LAB 2 Wojciech Pieprzyca.
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 3 Wojciech Pieprzyca.
Klasy i obiekty.
Static, const, volatile.
Dziedziczenie. Po co nam dziedziczenie? class osoba { char * imie, char * imie, * nazwisko; * nazwisko;public: void wypisz_imie(); void wypisz_imie();
Programowanie w środowisku sieciowym
Implementacja ekstensji klasy
Programowanie Obiektowe w Javie (c.d.)
Nguyen Hung Son Uniwersytet Warszawski
Programowanie obiektowe w Javie
OOPC++ - wstêp, klasy1 Klasy Do struktury można dołączyć operacje działające na jej polach. struct date { int day, month, year; void set (int d, int m,
DZIEDZICZENIE · klasy bazowe i klasy pochodne WyświetlAutora( ) Autor
Obiektowe metody projektowania systemów Command Pattern.
C++ wykład 6 ( ) Polimorfizm.
Tablice tablica jest sekwencją elementów tego samego typu (prostego lub obiektowego) w Javie tablice są obiektami, a zmienne tablicowe przechowują referencję
Klasy w C++. Deklaracja klasy class NazwaTwojejKlasy { //w tym miejscu piszemy definicje typów, //zmienne i funkcje jakie mają należeć do klasy. }; //tutaj.
Programowanie urządzeń mobilnych – wykład IV
Podstawy programowania II
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Tworzenie aplikacji mobilnych
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Java – coś na temat Klas Piotr Rosik
Seminarium problemowe
Programowanie obiektowe Wykład 7 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
OCPJP Inner classes.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Programowanie strukturalne i obiektowe C++ Przeładowanie operatorów Robert Nowak.
K URS JĘZYKA C++ – WYKŁAD 6 ( ) Polimorfizm.
MCTS Exam:. Agenda - egzamin  Tworzenie kontrolek – WinForms  Używanie szablonów kontrolek – WPF  Tworzenie kontrolek – WPF.
Design Patterns.: Visitor :.. Plan prezentacji 1. Trochę statystyk. 2. Zadanie problemowe. 3. Rozwiązanie… Visitor. 4. Visitor w UML (a,b,c). 5. Implementacja.
Obiektowe metody projektowania systemów Abstract Factory design pattern (aka. Kit)
Paweł Starzyk Obiektowe metody projektowania systemów
PIO 3_2, Zofia Kruczkiewicz1 Wykład 3 – część druga Iteracyjno-rozwojowy cykl oprogramowania 3.
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
do programowania obiektowego w języku Groovy
Implementacja asocjacji (z atrybutami i bez) przy użyciu: referencji (kolekcji referencji) tablic asocjacyjnych przygotował: Kamil Kowalczyk.
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
Język Java Paweł Rajba
Dziedziczenie, polimorfizm, Interfejsy
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 1
Programowanie Obiektowe – Wykład 9
Przeglądarka stron WWW
Wątki, programowanie współbieżne
DEFINICJA I ZASTOSOWANIE W JĘZYKU HASKELL
(według:
Akademia C# - Lab2 Zmienne, instrukcje warunkowe, pętle, debugger,
Ponowne wykorzystanie klas
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
(c) Krzysztof Barteczko 2014
Akademia C# lab. 9 Zdarzenia i delegaty.
Programowanie Obiektowe – Wykład 2
Programowanie obiektowe
Lekcja 1 – Hello World! Visual Studio, coś łatwego na początek 
Kurs języka C++ – wykład 13 ( )
Iteracyjno-rozwojowy cykl oprogramowania 3
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Programowanie obiektowe
Podstawy informatyki Zygfryd Głowacz.
Iteracyjno-rozwojowy cykl oprogramowania 2
Implementacja rekurencji w języku Haskell
BYDGOSKI FESTIWAL NAUKI
Asynchroniczne operacje I/O za pomocą IOCP
Tworzenie wątków w Javie
Iteracyjno-rozwojowy cykl oprogramowania 3
Zapis prezentacji:

Zdarzenia (eventy) Zdarzenia służą do powiadomienia użytkownika, gdy w używanej klasie dojdzie do pewnych wydarzeń zdefiniowanych przez twórcę klasy. Możemy dzięki temu w odpowiedni sposób reagować np. jeśli wartość zmiennej została zmieniona lub jeśli użytkownik kliknął w przycisk. Więcej zastosować dla WPF, WinForms, Xamarin, XNA, ASP.NET.

Definicja public event TypDelegata NazwaZdarzenia; public delegate void WartoscZmienionaEventHandler(int obecnaWartosc); public event WartoscZmienionaEventHandler WartoscZmieniona;

class PobieraczPlikow { public delegate void BladPobierniaDelegata(string wiadomosc); public delegate void SkonczonePobieranieDelegata(); private int liczbaPobranychPlikow; private int liczbaDoPobraniaPlikow; }

class PobieraczPlikow { public delegate void BladPobierniaDelegata(string wiadomosc); public event BladPobierniaDelegata PrzyBledziePobierania; public delegate void SkonczonePobieranieDelegata(); public event SkonczonePobieranieDelegata SkonczonePobieranie; private int liczbaPobranychPlikow; private int liczbaDoPobraniaPlikow; }

Subskrypcja zdarzenia class Program { static void pobi_ObsluStrum() Console.WriteLine("\t Obsługuje teraz strumienie."); } static void pobi_Poinformuj() Console.WriteLine("\t Skonczyłem pobieranie"); static void Main(string[] args) PobieraczPlikow pobieracz = new PobieraczPlikow(); pobieracz.SkonczonePobieranie += pobi_Poinformuj; pobieracz.PrzyBlendziePobierania += Console.WriteLine; pobieracz.SkonczonePobieranie += pobi_ObsluStrum; Console.ReadKey();

Wywołanie zdarzenia class PobieraczPlikow { public void WystapilBlad() if (PrzyBledziePobierania != null) PrzyBledziePobierania("Wystapił błąd"); }

Kod do analizy https://github.com/Piotrekk16/Wyklad9Z

Jak to jest w WPF? Kontrolka przycisku dziedziczy po klasie bazowej ButtonBase. public class Button : ButtonBase

Klasa bazowa public abstract class ButtonBase : ContentControl, ICommandSource { public event RoutedEventHandler Click; protected virtual void OnClick(); }