Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009.



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

Wykład 5 Okna MDI i SDI, dziedziczenie

Programowanie 2. Język C++. Wykład 3.

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

Instrukcja laboratoryjna cz.3

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

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

Wykład 6 Dziedziczenie cd., pliki

Zaawansowane środowiska programistyczne 2009/2010

Podstawy programowania. Wprowadzenie

System jest głównym w hierarchii obszarem nazw, zdefiniowanym w bibliotece mscorlib.dll.

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Szkoła Techniczno Ekonomiczna w Świdnicy. Języki i paradygmaty programowania - 8

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Metodyka programowania. Podstawy C#

Programowanie obiektowe

Programowanie obiektowe

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Visual C++/CLI. Języki Programowania na Platformie.NET (część 2) Tomasz Goluch. goluch/

Microsoft IT Academy kurs programowania

C# /.NET. Copyright by 3bird Projects 2018,

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

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

Programowanie obiektowe

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

Programowanie 2. Język C++. Wykład 9.

Wykład 4: Klasy i Metody

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Wykład 8: klasy cz. 4

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

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

JAVA W SUPER EXPRESOWEJ PIGUŁCE

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Języki i paradygmaty programowania

Programowanie w środowiskach graficznych. Wykład 1 OS, Podstawy Windows API

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

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

Programowanie obiektowe zastosowanie języka Java SE

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Narzędzia 4. dr inż. Tadeusz Jeleniewski

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Programowanie w środowiskach graficznych. Wykład 1 OS, Podstawy Windows API

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Klasy cd. Struktury Interfejsy Wyjątki

Programowanie MorphX Ax

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Praca w środowisku Visual Studio 2008, Visual C

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Programowanie obiektowe

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Programowanie systemów informatycznych laboratorium. Ćw. 3: Akwizycja danych. RS 232 cd.

TEMAT : KLASY POLIMORFIZM

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Tworzenie projektu asemblerowego dla środowiska Visual Studio 2008.

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Język C++ wykład VIII

Laboratorium 10 - Web Services

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Multimedia JAVA. Historia

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

11.1 Obsługa błędów i wyjątków Polecenia try, throw, catch CLI C++, klasa Exception... 9

Definicje klas i obiektów. Tomasz Borzyszkowski

Języki i paradygmaty programowania - 1

1 Atrybuty i metody klasowe

Oracle PL/SQL. Paweł Rajba.

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

#line #endif #ifndef #pragma

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie Komputerów

Programowanie obiektowe i zdarzeniowe

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

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

Programowanie 2. Język C++. Wykład 2.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Wykład 3 Typy danych w C++/CLI, typy fundamentalne, operacje wejścia/wyjścia, właściwości klasy (property) Zofia Kruczkiewicz

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

Zaawansowane programowanie w języku C++ Klasy w C++

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Microsoft Foundation Classes

Jak Windows zarządza pamięcią?

Programowanie aplikacji okienkowych Windows

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

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

Rok akademicki: 2012/2013 Kod: ZIE s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Transkrypt:

5.1 Środowisko.Net... 1 5.2 Biblioteki.Net... 2 5.3 Rozszerzenie języka C++, standard C++/CLI... 3 5.4 Delegacje... 5 5.5 Zdarzenia... 6 5.6 Szablon aplikacji CLR Windows Forms... 8 5.7 Formatka z przyciskiem... 13 5.8 Formatka z paskiem narzędzi.... 15 5.1 Środowisko.Net ASP.NET, Windows Forms, ADO.NET, Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation, Windows CardSpace, LINQ (Language-INtegrated Query). Rys. 1. Struktura środowiska.net 3.5. S. Fraser, Pro Visual C++/CLI and the.net 3.5 Platform, Apress, 2009. 1

5.2 Biblioteki.Net Przykładowe biblioteki słuŝące do budowania aplikacji okienkowych: Microsoft Foundation Classes (MFC), Windows Presentation Foundation (WPF), Windows Forms. Szablony projektów Visual C++: Active Template Library (ATL), pozwala tworzyć aplikacje w oparciu o Component Object Model (COM). Common Language Runtime (CLR) o Windows Forms Application. o Class Library. o Windows Forms Control Library General, standardowy projekt Visual Studio.NET. Microsoft Foundation Classes (MFC), pozwala tworzyć aplikacje WIN32, aplikacje internetowe: o MFC DLL, dynamic link library (DLL), pozwala tworzyć biblioteki dynamiczne korzystające z bibliotek MFC. o MFC ActiveX Control, szablon projektu umoŝliwia tworzenie kontrolek ActiveX korzystających z bibliotek MFC. o MFC ISAPI Extension (Internet Services API), umoŝliwia tworzenie rozszerzeń serwerów WWW w formie bibliotek dynamicznych korzystających z bibliotek MFC. Extended stored procedure, umoŝliwia tworzenie procedur składowanych dla SQL Server a. Win32 project, umoŝliwia tworzenie aplikacji Win32 API. 2

5.3 Rozszerzenie języka C++, standard C++/CLI C++/CLI - standard firmy Microsoft, rozszerzenie standardu ISO/IEC 14882:2003 języka C++. W październiku 2003 powstała grupa zadaniowa TG5, pełna nazwa ECMA Technical Committee 39 (TC39) Task Group 5 (TG5), w celu opracowania standardu C++/CLI. Specyfikacja C++/CLI Ecma/TC39-TG5/2004/25, C++/CLI Language Specification, Working Draft 1.5, Jun, 2004. Standard C++/CLI opracowano jako element środowiska.net. Język C++ w standardzie C++/CLI rozszerzono o dodatkowe: słowa kluczowe typy klas wyjątki obszary nazw biblioteki mechanizm zarządzania pamięcią na stercie za pomocą garbage collector a. Przykład 1. Aplikacja konsolowa (Visual C++, szablon CLR). #include "stdafx.h" using namespace System; int main(array<system::string ^> ^args) Console::WriteLine(L"program C++/CLI"); // unicode literal string return 0; Typy danych: typy wartościowe (zmienne) o typy wbudowane, o zmienne definiowalne, o enumeratory, typy referencyjne o uchwyty (handles), o interfejsy, o klasy referencyjne, o tablice, o obudowane zmienne (boxed value types). Przykład 2. Definicje w standardzie C++/CLI. handle uchwyt, obiekt referencyjny. Dla dowolnego typu CLI T, T^ h; deklaruje uchwyt h typu T, h wskazuje na obiekt zdefiniowany na stercie CLI (CLI heap). Uchwyt moŝna ponownie przypisać (rebind). Uchwyt musi wskazywać na cały obiekt. heap, CLI - sterta CLI, obszar pamięci będący pod kontrolą zbieracza śmieci (garbage collector a) Garbage collector jest elementem wirtualnej maszyny CLI Virtual Execution System. Obiekty na stercie CLI definiuje się za pomocą słowa kluczowego gcnew. heap, native sterta, obszar pamięci w której obiekty alokowane są dynamicznie za pomocą polecenia new. event zdarzenie, element który umoŝliwia obiektowi lub klasie wysłanie notyfikacji. 3

Składnia: uchwyt Programowanie 2. Język C++. Wykład 5. typ_uchwytu ^ nazwa_uchwytu; ^ - ang. carat Przykład 3. Definicja uchwytu typu typu A na stercie. A ^a = gcnew A(); a->f(); a->i; delete a; Przykład 4. Sterta CLI, sterta, operatory new, gcnew. operator new Tworzy instancje klasy (obiekt) na stercie (CLI heap) i zwraca wskaźnik do obiektu. operator gcnew Wprowadzony w.net version 2.0, zastąpił operator new, tworzy instancję typu referencyjnego na stercie i zwraca uchwyt do tej instancji. Typy danych ref class, ref struct określają klasy i struktury typu referencyjnego, których instancje definiowane są na stercie. Obiekty ref class, ref struct są zarządzane przez garbage collector a, mogą posiadać properties (elementy słuŝące do wykonywania operacji na atrybutach klasy/struktury) nie mogą być w relacjach zaprzyjaźnienia muszą być w relacji dziedziczenia public. Typy danych ref class, ref struct posiadają modyfikatory dostępu do swoich elementów: private, public, protected, internal. Typ internal określa dostęp dla elementów danego podzespołu. Podzespół zbiór plików określonych w manifeście podzespołu (MSDN). Przykład 5. Definicja klasy ref, struktury ref. ref class A ; ref struct B; Przykład 6. Definicja zmienej typu string. String^ s1 = "tekst"; Przykład 7. Definicja tablicy. array<typdanych>^ nazwatablicy; array<string^>^ tabstr = gcnew array<string^>(7); 4

5.4 Delegacje Programowanie 2. Język C++. Wykład 5. Delegacja jest klasą typy ref (ref class) której moŝna przypisać jedną (typ System::Delegate) lub wiele metod (typ delegacji System::MulticastDelegate) a następnie wywołać te metody. Delegacje są definiowane za pomocą słowa kluczowego delegate. Przykład 1. Definicja delegacji i przypisanie jej adresu funkcji f1(). delegate void pdelegacja(string ^s); pdelegacja ^pf = gcnew pdelegacja(&f1); Przykład 2. Dodanie do delegacji funkcji f2(), usunięcie z delegacji funkcji f1(). pf = pf + gcnew pdelegacja(&f2); // lub pf += gcnew pdelegacja(&f2); pf = pf - gcnew pdelegacja(&f1); // lub pf -= gcnew pdelegacja(&f1); Przykład 3. UŜycie delegacji (aplikacja konsolowa typu CLR, cw05-01-delegacje.cpp) #include "stdafx.h" using namespace System; delegate void pdelegacja(string ^s); // deklaracja delegacji void fg(string ^s) // definicja funkcji globalnej Console::WriteLine(s + " fg(string)"); ref class A public: static void f1a(string ^s); void f2a(string ^s); void f3a(string ^s); ; void A::f1A(System::String ^s) Console::WriteLine(s + " f1a(string)"); void A::f2A(System::String ^s) Console::WriteLine(s + " f2a(string)"); void A::f3A(System::String ^s) Console::WriteLine(s + " f3a(string)"); void main() pdelegacja^ pfun; // utworzenie instacji delegacji pfun = gcnew pdelegacja(&fg); // przypisanie pfun funkcji fg() pfun += gcnew pdelegacja(&a::f1a); // dodanie do delegacji pfun funkcji f1a() A ^a = gcnew A(); pfun = pfun + gcnew pdelegacja(a, &A::f2A); // dodanie do delegacji pfun funkcji f2a() pfun += gcnew pdelegacja(a, &A::f3A); // dodanie do delegacji pfun funkcji f3a() pfun->invoke("tekst1"); // wywołanie delegacji pfun = pfun - gcnew pdelegacja(&a::f1a); // usunięcie z delegacji pfun funkcji f1a() pfun -= gcnew pdelegacja(a, &A::f3A); // usunięcie z delegacji pfun funkcji f3a() Console::WriteLine(" po usunieciu f1a(), f3a()"); pfun("tekst2"); // wywołanie delegacji 5

5.5 Zdarzenia event zdarzenie, element który umoŝliwia obiektowi lub klasie wysłanie notyfikacji, Ecma/TC39- TG5/2004/25. Zdarzenie (event) jest uchwytem do typu delegacji poprzedzone modyfikatorem event. Przykład 1. Definicja zdarzenia. delegate void DelegacFun(String ^s); ref class Event public: event DelegacFun^ OnFun; void Fun(String ^s) OnFun(s); ; Przykład 2. Dodanie funkcji do zdarzenia. Event ^evnt; evnt->onfun += gcnew DelegacFun(this, &fun1); evnt->onfun += gcnew DelegacFun(this, &fun2); Przykład 3. Wywołanie zdarzeń. Event ^e = gcnew Event(); e->fun("text1"); 6

Przykład 3. Definicja zdarzeń (cw05-02-zdarzenia.cpp). #include "stdafx.h" using namespace System; delegate void DelegacFun(String ^s); // deklaracja klasy typu delegate ref class Event public: event DelegacFun^ OnFun; // event musi być typu delegate void Fun(String ^s) OnFun(s); ; ref class ZmienEvent Event ^evnt; public: ZmienEvent(Event ^e) if (e == nullptr) throw gcnew ArgumentNullException("blad"); evnt = e; evnt->onfun += gcnew DelegacFun(this, &ZmienEvent::fun1); evnt->onfun += gcnew DelegacFun(this, &ZmienEvent::fun2); void UsunFun() evnt->onfun -= gcnew DelegacFun(this, &ZmienEvent::fun2); ; void fun1(string ^s) Console::WriteLine(s + " fun1(string)"); void fun2(string ^s) Console::WriteLine(s + " fun2(string)"); void main() Event ^e = gcnew Event(); ZmienEvent ^devnt = gcnew ZmienEvent(e); e->fun("text1"); // event onfun wywoluje fun1, fun2 devnt->usunfun(); // usunięcie z onfun fun2 Console::WriteLine( "po devnt->usunfun(); "); e->fun("text2"); // event onfun wywoluje fun1 // delete devnt; // delete nie jest wymagane, CLR garbage collector usuwa obiekt // delete e; // delete nie jest wymagane, CLR garbage collector usuwa obiekt 7

5.6 Szablon aplikacji CLR Windows Forms Projekt: AplikacjaWf. 1. Struktura katalogowa projektu. 2. Wygląd okna projektu w Microsoft Visual Studio, plik Form1.h[Design]. 8

3. Lista typów kontrolek. 9

5. Kontrolki Windows Forms 10

6. Zawartość i rola plików projektu. Plik stdafx.cpp // stdafx.cpp : source file that includes just the standard includes // AplikacjaWf.pch will be the pre-compiled header // stdafx.obj will contain the pre-compiled type information #include "stdafx.h" Plik stdafx.h // stdafx.h : include file for standard system include files, // or project specific include files that are used frequently, but // are changed infrequently #pragma once // TODO: reference additional headers your program requires here Plik AplikacjaWf.cpp // AplikacjaWf.cpp : main project file. #include "stdafx.h" #include "Form1.h" using namespace AplikacjaWf; [STAThreadAttribute] int main(array<system::string ^> ^args) // Enabling Windows XP visual effects before any controls are created Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // Create the main window and run it Application::Run(gcnew Form1()); return 0; 11

Plik Form1.h #pragma once Programowanie 2. Język C++. Wykład 5. namespace AplikacjaWf // obszar nazw o nazwie AplikacjaWF using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form // klasa Form1 dziedziczy // od klasy Form public: Form1(void) // konstruktor klasy Form1 InitializeComponent(); protected: ~Form1() // destruktor klasy Form1 if (components) delete components; private: System::ComponentModel::Container ^components; // uchwyt typu Container #pragma region Windows Form Designer generated code void InitializeComponent(void) // definicja metody this->suspendlayout(); // zwieszenie tworzenia okna, zmiana atrybutów this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(292, 273); this->name = L"Form1"; this->text = L"Form1"; this->resumelayout(false); // uaktualniene wyglądu okna #pragma endregion ; // koniec klasy Form1 // koniec obszaru nazw AplikacjaWf 12

5.7 Formatka z przyciskiem Przykład 1. Aplikacja widows forms. Formatka z przyciskiem o nazwie button1. Po naciśnięciu przycisku pojawia się Messagebox typu OK. Dodanie do formatki obiektu o nazwie button1. Własności formatki Form1 i obiektu button1. 13

Plik Form1.h #pragma once namespace AplikacjaWf using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form public: Form1(void) InitializeComponent(); protected: ~Form1() if (components) delete components; private: System::Windows::Forms::Button^ button1; private: System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code void InitializeComponent(void) this->button1 = (gcnew System::Windows::Forms::Button()); this->suspendlayout(); // button1 this->button1->location = System::Drawing::Point(188, 215); this->button1->name = L"button1"; this->button1->size = System::Drawing::Size(75, 23); this->button1->tabindex = 0; this->button1->text = L"button1"; this->button1->usevisualstylebackcolor = true; this->button1->click += gcnew System::EventHandler(this, &Form1::button1_Click); // Form1 this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(292, 273); this->controls->add(this->button1); this->name = L"Form1"; this->text = L"Form1"; this->resumelayout(false); #pragma endregion private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) ; // koniec klasy Form1 // koniec obszaru nazw AplikacjaWf Plik Form1.h (nowe elementy) private: System::Windows::Forms::Button^ button1; void InitializeComponent(void) this->button1 = (gcnew System::Windows::Forms::Button()); // button1 this->button1->location = System::Drawing::Point(188, 215); this->button1->name = L"button1"; this->button1->size = System::Drawing::Size(75, 23); this->button1->tabindex = 0; this->button1->text = L"button1"; this->button1->usevisualstylebackcolor = true; this->button1->click += gcnew System::EventHandler(this, &Form1::button1_Click); // Form1 this->controls->add(this->button1); private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) 14

Plik Form1.h. Implementacja zdarzenia button1_click() private: System::Void button1_click(system::object^ sender, System::EventArgs^ e) MessageBox::Show("Tekst w MsgBoxie", "Nazwa MsgBoxa", MessageBoxButtons::OK, MessageBoxIcon::Information ); 5.8 Formatka z paskiem narzędzi. Przykład 2. Formatka z menu: Plik, Pomoc. Menu Plik, podmenu: Zakoncz. Menu Pomoc, podmenu: O programie. Po wyborze polecenia Zakoncz formatka zamyka się. Po wyborze polecenia O programie. pojawia się message box OK. z informacją o progamie. Plik Form1.h. #pragma once namespace AplikacjaWf using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; public ref class Form1 : public System::Windows::Forms::Form public: Form1(void) InitializeComponent(); protected: ~Form1() if (components) delete components; private: System::Windows::Forms::MenuStrip^ menuglowne; private: System::Windows::Forms::ToolStripMenuItem^ pliktoolstripmenuitem; private: System::Windows::Forms::ToolStripMenuItem^ zakoncztoolstripmenuitem; private: System::Windows::Forms::ToolStripMenuItem^ pomoctoolstripmenuitem; private: System::Windows::Forms::ToolStripMenuItem^ oprogramietoolstripmenuitem; private: System::Windows::Forms::ToolStrip^ paseknarzedziowy; System::ComponentModel::Container ^components; 15

#pragma region Windows Form Designer generated code void InitializeComponent(void) this->menuglowne = (gcnew System::Windows::Forms::MenuStrip()); this->pliktoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->zakoncztoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->pomoctoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->oprogramietoolstripmenuitem = (gcnew System::Windows::Forms::ToolStripMenuItem()); this->menuglowne->suspendlayout(); this->suspendlayout(); // menuglowne this->menuglowne->items->addrange( gcnew cli::array<system::windows::forms::toolstripitem^ >(2) this->pliktoolstripmenuitem, this->pomoctoolstripmenuitem); this->menuglowne->location = System::Drawing::Point(0, 0); this->menuglowne->name = L"menuGlowne"; this->menuglowne->size = System::Drawing::Size(292, 24); this->menuglowne->tabindex = 0; this->menuglowne->text = L"menuStrip1"; // pliktoolstripmenuitem this->pliktoolstripmenuitem->dropdownitems->addrange( gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) this->zakoncztoolstripmenuitem); this->pliktoolstripmenuitem->name = L"plikToolStripMenuItem"; this->pliktoolstripmenuitem->size = System::Drawing::Size(34, 20); this->pliktoolstripmenuitem->text = L"&Plik"; // zakoncztoolstripmenuitem this->zakoncztoolstripmenuitem->name = L"zakonczToolStripMenuItem"; this->zakoncztoolstripmenuitem->size = System::Drawing::Size(113, 22); this->zakoncztoolstripmenuitem->text = L"Zakoncz"; this->zakoncztoolstripmenuitem->click += gcnew System::EventHandler( this, &Form1::zakonczToolStripMenuItem_Click); // pomoctoolstripmenuitem this->pomoctoolstripmenuitem->dropdownitems->addrange( gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) this->oprogramietoolstripmenuitem); this->pomoctoolstripmenuitem->name = L"pomocToolStripMenuItem"; this->pomoctoolstripmenuitem->size = System::Drawing::Size(50, 20); this->pomoctoolstripmenuitem->text = L"Po&moc"; // oprogramietoolstripmenuitem this->oprogramietoolstripmenuitem->name = L"oProgramieToolStripMenuItem"; this->oprogramietoolstripmenuitem->size = System::Drawing::Size(152, 22); this->oprogramietoolstripmenuitem->text = L"O programi&e..."; this->oprogramietoolstripmenuitem->click += gcnew System::EventHandler( this, &Form1::oProgramieToolStripMenuItem_Click); // Form1 this->autoscaledimensions = System::Drawing::SizeF(6, 13); this->autoscalemode = System::Windows::Forms::AutoScaleMode::Font; this->clientsize = System::Drawing::Size(292, 273); this->controls->add(this->paseknarzedziowy); this->controls->add(this->menuglowne); this->mainmenustrip = this->menuglowne; this->name = L"Form1"; this->text = L"Form1"; this->menuglowne->resumelayout(false); this->menuglowne->performlayout(); this->resumelayout(false); this->performlayout(); #pragma endregion private: System::Void zakoncztoolstripmenuitem_click(system::object^ sender, System::EventArgs^ e) Close(); private: System::Void oprogramietoolstripmenuitem_click(system::object^ sender, System::EventArgs^ e) MessageBox::Show("Pomocy!!!!", "Okno Pomocy", MessageBoxButtons::OK, MessageBoxIcon::Information); ; 16