Tworzenie aplikacji Windows Mechanizm drag n drop

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

Download "Tworzenie aplikacji Windows Mechanizm drag n drop"

Transkrypt

1 Jacek Matulewski Tworzenie aplikacji Windows Mechanizm drag n drop Ćwiczenia Toruń, 12 grudnia 2002 Najnowsza wersja tego dokumentu znajduje się pod adresem Źródła opisanych w tym dokumencie programów znajdują się pod adresem 1

2 I. Spis treści I. Spis treści... 2 II. Przenoszenie elementów w obrębie aplikacji Przenoszenie między listami Ukłon w stronę elegancji programowania Przenoszenie wielu elementów... 7 III. Obsługa pliku rzuconego na formę z zewnętrznej aplikacji

3 II. Przenoszenie elementów w obrębie aplikacji Mechanizm Drag & Drop ( d&d ) jest bardzo charakterystycznym elementem Windows, pozwalającym na elastyczne wykorzystanie myszy (lub innego urządzenia wskazującego) do złapania elementu znajdującego się na ekranie, przeniesienie go w inne miejsce i wrzucenie go do nowego pojemnika lub zrzucenie na inny element graficzny. Obiekty VCL Borlanda w pełni wspierają mechanizm drag & drop w obrębie aplikacji, jednak do komunikacji pomiędzy aplikacjami (np. przenoszenie plików) niezbędne jest odwołanie się do mechanizmu komunikatów i WinAPI. 1. Przenoszenie między listami Przygotujmy formę zawierającą dwa ListBoxy: W listboxach umieszczamy elementy ręcznie (własność Items) lub pętlą umieszczoną w konstruktorze formy: fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) for(int i=0;i<10;i++) ListBox1->Items->Add((AnsiString)"Lista 1 : "+i); ListBox2->Items->Add((AnsiString)"Lista 2 : "+i); procedure TForm1.FormCreate(Sender: TObject); var i :Integer; for i:=0 to 9 do ListBox1.Items.Add('Lista 1 : '+IntToStr(i)); ListBox2.Items.Add('Lista 2 : '+IntToStr(i)); 3

4 Operacja przeniesienia i upuszczenia składa się z trzech etapów: 1) Rozpoczęcie przenoszenia. W zależności od ustawienia własności DragMode może się to odbywać automatycznie po złapaniu elementu lub poprzez wywołanie metody BeginDrag (ręczne wywołanie pozwala np. na filtrowanie elementów, które mogą być przenoszone). 2) Pozostałe elementy aplikacji mogą akceptować lub odrzucać możliwość upuszczenia przenoszonego elementu umożliwia to zdarzenie OnDragOver, które jest wskaźnikiem do funkcji zawierającym referencję do zmiennej logicznej (domyślnie Accept). Jeżeli w metodzie zdarzeniowej Accept zostanie ustalone na False, przenoszony obiekt nie będzie mógł być zrzucony na ten obiekt, którego dotyczy zdarzenie, co manifestuje się zmianą kształtu kursora myszy. 3) Ostatnim etapem jest reakcja na upuszczenie przenoszonego elementu na obiekt. W takiej sytuacji uruchamiana jest metoda związana ze zdarzeniem OnDragDrop. Ad. 1. Rozpoczęcie przenoszenia Po naciśnięciu lewego klawisza myszy na ListBox1 rozpoczynamy operację przenoszenia wyróżnionego elementu 1 (możliwość wyboru większej ilości elementów powinna być, póki co, zablokowana). Wykorzystamy zdarzenie OnMouseDown: void fastcall TForm1::ListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) if (Button==mbLeft && ListBox1->ItemIndex>=0) ListBox1->BeginDrag(false); procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); if (Button=mbLeft) and (ListBox1.ItemIndex>=0) then ListBox1.BeginDrag(false); Jak widać metoda wykorzystuje explicite nazwy obiektów nie jest to korzystne, ponieważ utrudnia zastosowanie tej metody do innych obiektów lub do kopiowania w drugą stronę z ListBox2 do ListBox1. W kolejnym paragrafie do identyfikacji pojemnika źródła i pojemnika celu pomiędzy którymi przenoszone są elementy wykorzystamy argumenty metod zdarzeniowych. Mimo to metoda ta bardzo dobrze ilustruje istotę tego etapu mechanizmu drag & drop. Istota metody jest bardzo prosta: jeżeli naciśnięto lewy klawisz myszy na ListBox1 i zaznaczony jest jakiś element (jeżeli żaden element nie jest zaznaczony własność ListBox1.ItemIndex miałaby wartość 1) to wywoływana jest metoda BeginDrag(). Argument tej funkcji decyduje, czy przenoszenie ma rozpocząć się natychmiast, czy dopiero po przesunięciu myszy. Po rozpoczęciu przeciągania elementu kursor myszy zmieni się na crdrag. Ad. 2. Akceptacja Jeżeli przenoszony element przesuniemy nad inny obiekt, wywoływana jest jego metoda zdarzeniowa związana ze zdarzeniem OnDragOver. Napiszmy odpowiednią metodę dla ListBox2: void fastcall TForm1::ListBox2DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) Accept=false; if (Source==ListBox1 && ListBox1->ItemIndex>=0) Accept=true; 1 W warunku wywołania metody BeginDrag sprawdzamy czy ItemIndex jest większy od 1 (taka jest wartość tej własności, gdy żaden element nie jest zaznaczony). Warunek ten jest spełniony również wtedy gdy przy zaznaczonym elemencie klikniemy na listę poza umieszczonymi w niej elementami. Aby wykluczyć taką sytuację można również sprawdzać czy myszka jest nad jakimś elementem umieszczonym w liście korzystając z metody ItemAtPos(). 4

5 procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); Accept:=false; if (Source=ListBox1) and (ListBox1.ItemIndex>=0) then Accept:=true; Metoda przyjmuje proste kryterium jeżeli przenoszony element pochodzi od ListBox1 oraz w ListBox1 jest zaznaczony jakiś element to element zostanie przyjęty. W pozostałych przypadkach zostanie odrzucony (wówczas kursor myszy ustalany jest na crnodrop). Ad. 3. Upuszczenie W momencie upuszczenia elementu wywoływana jest metoda zdarzeniowa OnDragDrop, w której użytkownik może zaprogramować dowolne działanie aplikacji my po prostu dodamy odpowiedni element na końcu ListBox2 i usuniemy go z ListBox1: void fastcall TForm1::ListBox2DragDrop(TObject *Sender, TObject *Source, int X, int Y) ListBox2->Items->Add(ListBox1->Items->Strings[ListBox1->ItemIndex]); ListBox1->Items->Delete(ListBox1->ItemIndex); procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer); ListBox2.Items.Add(ListBox1.Items.Strings[ListBox1.ItemIndex]); ListBox1->Items->Delete(ListBox1->ItemIndex); Odczytujemy numer elementu z własności ListBox1.ItemIndex i dodajemy jego łańcuch do ListBox2 2, a następnie usuwamy z ListBox1. W tym etapie nie powinniśmy już sprawdzać czy dany obiekt może być upuszczony, to powinna robić funkcja związana ze zdarzeniem OnDragOver. Inaczej moglibyśmy mieć sytuację, w której pojawia się akceptujący kursor myszy, a elementu nie można byłoby przenieść. Na razie możliwości przenoszenia są dość skromne można przenosić tylko po jednym elemencie z lewej listy na prawą. W kolejnych paragrafach uelastycznimy metody w taki sposób, żeby można je było związać z dowolnym obiektem formy. Wszelkie informacje będziemy przekazywać poprzez argumenty metod związanych z operacją drag & drop bez korzystania explicite z nazw obiektów pomiędzy którymi przenosimy wybrany element. Wbrew pozorom to uprości, a nie skomplikuje kod metod. Poza tym umożliwimy przenoszenie większej ilości elementów jednocześnie. 2. Ukłon w stronę elegancji programowania 2 Przykład można nieco zmodyfikować tak, żeby element był dodawany do listy w miejscu upuszczenia. Wystarczy zamiast ListBox2.Items.Add() wykorzystać metody ListBox2.Items.Insert() oraz ListBox2.ItemAtPos(): TPoint Point=X,Y; ListBox2->Items->Insert(ListBox2->ItemAtPos(Point,false), ListBox1->Items->Strings[ListBox1->ItemIndex]); 5

6 Pierwszym argumentem wszystkich metod zdarzeniowych VCL jest wskaźnik do obiektu-nadawcy 3. W większości przypadków jest obiekt macierzysty metody. Wskaźnik jest do typu TObject, z którego dziedziczą wszystkie obiekty VCL można więc zrzutować go np. na typ klasy TListBox i wówczas odczytać jego własności i skorzystać z metod (np. ItemAtPos). Dla ułatwienia, żeby nie korzystać stale z rzutowania zdefiniujemy lokalną zmienną typu wskaźnika do klasy TListBox i przypiszemy jej adres przechowywany w zmiennej Sender: TListBox* SenderLB=(TListBox*)Sender; SenderLB:=Sender as TListBox; (z deklaracją var SenderLB :TListBox;) Nowy wskaźnik możemy wykorzystać tak, jakbyśmy korzystali z nazwy obiektu explicite, która w C++ Builderze oznacza w końcu też tylko wskaźnik do obiektu 4. Pozostała część metody, poza zamianą ListBox1 na SenderLB pozostaje niezmieniona: void fastcall TForm1::ListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) TListBox* SenderLB=(TListBox*)Sender; if (Button==mbLeft && SenderLB->ItemIndex>=0) SenderLB->BeginDrag(false); procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var SenderLB :TListBox; SenderLB:=Sender as TListBox; if (Button=mbLeft) and (SenderLB.ItemIndex>=0) then SenderLB.BeginDrag(false); W tej chwili można sensownie przypisać tę metodę również do zdarzenia OnMouseDown drugiego listboxa (za pomocą Object Inspectora). Aby to miało większy sens musimy jednak zmodyfikować funkcję związaną z OnDragOver. Możemy albo zezwolić na upuszczanie zawsze lub na przykład na przenoszenie pomiędzy listami nie pozwalając na upuszczanie elementu na listę, z której jest podnoszony. W drugim przypadku wystarczy jedynie sprawdzić czy Sender i Source (nadawca komunikatu ukrytego za zdarzeniem i źródło przenoszonego elementu) nie przechowują adresu tego samego elementu: void fastcall TForm1::ListBox2DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) Accept=false; 3 Nazwa tego argumentu Sender związana jest z ukrytego za mechanizmem zdarzeń mechanizmu komunikatów Windows. Nadawca, to obiekt, który jest źródłem komunikatu. 4 Niektórzy studenci dziwią się, że wskaźnik do TObject przechowuje te same informacje co TListBox, a przecież deklaracja tej klasy jest znacznie uboższa. Wskaźnik nie przechowuje żadnych informacji poza adresem obiektu, który dla wszystkich typów zmiennych i obiektów jest tego samego rozmiaru. Twierdzenie to nie dotyczy wskaźników własności i metod, które poza swoim bezpośrednim adresem muszą też przechowywać adres obiektu są więc dwukrotnie większe. 6

7 if (Source!=Sender) Accept=true; procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); Accept:=false; if (Source <> Sender) then Accept:=true; Teraz należy tę metodę podpiąć pod zdarzenie pierwszej listy ListBox1->OnDragOver. Można wówczas przenosić i upuszczać elementy również z listy prawej do lewej, ale nic się w takim przypadku nie dzieje, ponieważ nie obsługiwane jest jeszcze zdarzenie ListBox1->OnDragDrop. Za pomocą Object Inspectora zwiążmy również to zdarzenie i zmodyfikujmy metodę ListBox2DragDrop tak, żeby nie zawierała nazw obiektów. Teraz musimy zrzutować oba argumenty (Sender i Source), żeby móc skorzystać z metod dodającej i usuwającej element z listy: void fastcall TForm1::ListBox2DragDrop(TObject *Sender, TObject *Source, int X, int Y) TListBox* SenderLB=(TListBox*)Sender; TListBox* SourceLB=(TListBox*)Source; SenderLB->Items->Add(SourceLB->Items->Strings[SourceLB->ItemIndex]); SourceLB->Items->Delete(SourceLB->ItemIndex); procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer); var SenderLB,SourceLB :TListBox; SenderLB:=Sender as TListBox; SourceLB:=Source as TListBox; SenderLB.Items.Add(SourceLB.Items.Strings[SourceLB.ItemIndex]); SourceLB.Items.Delete(SourceLB.ItemIndex); W następnym paragrafie zmodyfikujemy to pozwalając ponadto na przenoszenie wielu elementów jednocześnie. 3. Przenoszenie wielu elementów Aby umożliwić zaznaczanie wielu elementów należy włączyć własność MultiSelect w obu listach. Przy zaznaczonej większej liczbie elementów własność ItemIndex przestaje być użyteczna. Zaznaczone elementy będące odczytywane z tablicy Selected, która ma tę samą długość co Items i przechowuje wartości logiczne (true jeżeli odpowiedni element jest zaznaczony i false jeżeli nie): void fastcall TForm1::ListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) if (Button == mbleft) ((TListBox*)Sender)->BeginDrag(false); procedure TForm1.ListBox1MouseDown(Sender: TObject; 7

8 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var ItemPos :Integer; if (Button = mbleft) then (Sender as TListBox).BeginDrag(false); Zrezygnowałem z deklaracji wskaźnika SenderLB przy jednorazowym jego wykorzystaniu Metoda ListBox2DragOver pozostaje niezmieniona. W metodzie ListBox2DragDrop należy wykonać pętle po elementach i dla zaznaczonych wykonać operację przenoszenia. Dokładniej rzecz biorąc wykonane będą dwie oddzielne pętle pierwsza będzie przenosić elementy, a następna (wykonywana od ostatniego elementu do pierwszego) będzie je usuwać: void fastcall TForm1::ListBox2DragDrop(TObject *Sender, TObject *Source, int X, int Y) TListBox* SenderLB=(TListBox*)Sender; TListBox* SourceLB=(TListBox*)Source; for(int ItemPos=0;ItemPos<SourceLB->Items->Count;ItemPos++) if(sourcelb->selected[itempos]) SenderLB->Items->Add(SourceLB->Items->Strings[ItemPos]); for(int ItemPos=SourceLB->Items->Count-1;ItemPos>=0;ItemPos--) if(sourcelb->selected[itempos]) SourceLB->Items->Delete(ItemPos); procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer); var ItemPos :Integer; SenderLB,SourceLB :TListBox; SenderLB:=Sender as TListBox; SourceLB:=Source as TListBox; for ItemPos:=0 to SourceLB.Items.Count-1 do if (SourceLB.Selected[ItemPos]) then SenderLB.Items.Add(SourceLB.Items.Strings[ItemPos]); for ItemPos:=SourceLB.Items.Count-1 downto 0 do if (SourceLB.Selected[ItemPos]) then SourceLB.Items.Delete(ItemPos); W tym momencie nasza aplikacja uzyskuje pełną funkcjonalność mechanizmu drag & drop. Żeby przenosić wiele elementów wystarczy je zaznaczyć korzystając z klawisza Shift lub Ctrl i, nadal trzymając ten klawisz, aby nie zmienić zaznaczenia, przeciągnąć je na drugą listę. 8

9 III. Obsługa pliku rzuconego na formę z zewnętrznej aplikacji Obsługa mechanizmu drag & drop pomiędzy aplikacjami wymaga obsłużenia odpowiednich komunikatów Windows. Najczęściej stosowane jest przenoszenie plików i taki przykład przedstawiony jest poniżej. Upuszczenie pliku (zabranego np. z Exploratora Windows) na formę powoduje wysłanie do aplikacji komunikatu WM_DROPFILES 5, który spowoduje wywołanie zdarzenia Application->OnMessage. Najprościej będzie więc umieścić właściwy kod w metodzie związanej z tym zdarzeniem. Ponieważ w starszych wersjach C++ Buildera/Delphi nie było na palecie komponentów VCL wystawionego obiektu TApplicationEvents, który ułatwia dostęp do zdarzeń globalnego obiektu Application, w konstruktorze lub w metodzie związanej ze zdarzeniem OnCreate formy musimy przypisać samodzielnie metodę o odpowiedniech argumentach i zwracanej wartości: void fastcall TForm1::ApplicationMessage(tagMSG& Msg,bool& Handled) procedure ApplicationMessage(var Msg :TMsg;var Handled :Boolean); Funkcja nie zwraca żadnego wyniku a przyjmuje przez referencję strukturę tagmsg (w Delphi jest to struktura o nazwie TMsg), która informuje o numerze komunikatu, czasie nadania, pozycji kursora myszy i dwie dodatkowe liczby przekazujące dodatkowe informacje dotyczące sytuacji, która spowodowała komunikat (opis predefiniowanych stałych i sens dodatkowych parametrów znaleźć można w Win32 SDK). Ponieważ nasza aplikacja będzie jedynie przyjmować pliki, więc musimy oprogramować jedynie dwa etapy drag & drop: akceptacja i upuszczenie. Akceptujemy wszystkie pliki bez względu na ich pochodzenie, więc w konstruktorze wywołujemy funkcję WinAPI DragAcceptFiles, której pierwszym argumentem jest uchwyt okna/formy, której akceptacja ma dotyczyć, a drugim wartość logiczna informująca o włączeniu (true) lub wyłączeniu (false) akceptacji. Konstruktor TForm1 powinien więc zawierać dwa polecenia: fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) Application->OnMessage=ApplicationMessage; DragAcceptFiles(Handle,True); procedure TForm1.FormCreate(Sender: TObject); Application.OnMessage:=ApplicationMessage; DragAcceptFiles(Handle,True); Została zasadnicza część zareagowanie na nadejście komunikatu o upuszczeniu pliku (WM_DROPFILES). W tym celu napiszmy metodę ApplicationMessage. Powinna ona pełnić jedynie funkcję dystrybutora rozdzielającego obsługę przychodzących zdarzeń pomiędzy metodami w zależności od numeru komunikatu: void fastcall TForm1::ApplicationMessage(tagMSG& Msg,bool& Handled) switch(msg.message) 5 Zobacz oddzielny skrypt poświęcony obsłudze komunikatów w Delphi/C++ Builder. 9

10 case WM_DROPFILES: WMDropFiles(Msg); procedure TForm1.ApplicationMessage(var Msg :TMsg;var Handled :Boolean); case (Msg.message) of WM_DROPFILES: WMDropFiles(Msg); Oczywiście w tym przypadku zastosowanie polecenia switch/case jest przesadzone, swobodnie wystarczyłby prosty warunek sprawdzający, czy nadchodzący komunikat jest tym, który nas interesuje, ale taka forma w naturalny sposób umożliwia obsługę kolejnych komunikatów. Po nadejściu komunikatu WM_DROPFILES wywoływana jest metoda WMDropFiles przyjmująca jako argument referencję do komunikatu (tagmsg to struktura opisana w Win32 SDK). W przypadku tego komunikatu parametr wparam przechowuje uchwyt do struktury przechowującej informację o zrzucanych plikach. Ten uchwyt będzie argumentem funkcji WinAPI DragQueryFile udostępniającej informacje o plikach oraz funkcji DragFinish kończącej operację drag & drop. W metodzie WMDropFiles, korzystając z uchwytu przechowywanego w wparam, pobieramy liczbę zrzuconych plików. Informację taką dostarcza funkcja DragQueryFile jeżeli jej drugi argument ustawiony jest na 0xFFFFFFFF (maksymalna wartość ośmiobitowej liczby naturalnej). Wówczas w pętli po ilości plików pobieramy nazwy i ścieżki do poszczególnych plików korzystając z tej samej funkcji (drugi argument musi być tym razem kolejnym numerem pliku). Nazwa pliku zwracana jest w trzecim argumencie (wskaźnik do łańcucha). Mając nazwę pliku możemy wykonać dowolną operację: wczytać do TMemo, wykonać operację na pliku lub, jak jest w tym przykładzie, po prostu dopisać nazwę pliku do listy. void fastcall TForm1::WMDropFiles(tagMSG& Msg) HDROP hdrop=(hdrop)msg.wparam; //liczba zrzuconych plików int TotalNumberOfFiles=DragQueryFile(hDrop,0xFFFFFFFF,NULL,0); ListBox1->Items->Clear(); //Czyszczenie listy przy kazdym upuszczeniu ListBox1->Items->Add( "Ilosc plikow zrzuconych na forme: "+(AnsiString)TotalNumberOfFiles); for(int i=0;i<totalnumberoffiles;i++) char nazwa_pliku[max_path]; DragQueryFile(hDrop,i,nazwa_pliku,sizeof(nazwa_pliku)); //tu okreslamy wlasciwe dzialanie zwiazane z upuszczeniem pliku //(mamy do dyspozycji nazwe pliku wraz ze sciezka w nazwa_pliku) ListBox1->Items->Add(nazwa_pliku); DragFinish(hDrop); procedure TForm1.WMDropFiles(var Msg :TMsg); var hdrop :THandle; 10

11 TotalNumberOfFiles,i :Integer; nazwa_pliku :array[0..max_path] of Char; hdrop:=msg.wparam; //liczba zrzuconych plików TotalNumberOfFiles:=DragQueryFile(hDrop,$FFFFFFFF,nil,0); ListBox1.Items.Clear(); //Czyszczenie listy przy kazdym upuszczeniu plikow ListBox1.Items.Add( 'Ilosc plikow zrzuconych na forme: '+IntToStr(TotalNumberOfFiles)); for i:=0 to TotalNumberOfFiles-1 do DragQueryFile(hDrop,i,nazwa_pliku,sizeof(nazwa_pliku)); //tu okreslamy wlasciwe dzialanie zwiazane z upuszczeniem pliku //(mamy do dyspozycji nazwe pliku wraz ze sciezka w nazwa_pliku) ListBox1.Items.Add(nazwa_pliku); DragFinish(hDrop); Metoda kończy się wywołaniem funkcji DragFinish, która kończy operację drag & drop (kursor otrzymuje swoją standardową postać). Dla porządku wyłączmy akceptacje dla upuszczania plików przed zamknięciem formy: void fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) DragAcceptFiles(Handle,False); procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); DragAcceptFiles(Handle,False); Zadanie Napisać aplikację, która po upuszczeniu plików będzie tworzyła dla każdego pliku z rozszerzeniem txt obiekt TMemo i wczytywała do niego zawartość pliku. Można to zrealizować w postaci aplikacji wielodokumentowej (MDI, zob. własność TForm.FormStyle). Zadanie Pominąć zdarzenie TApplication.OnMessage i napisać metodę WMDropFiles połączoną z przychodzącym komunikatem na poziomie okna Form1 (zob. skrypt nt. obsługi komunikatów w Delphi i C++ Builder). 11

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (Delphi)

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (Delphi) Jacek Matulewski http://www.phys.uni.torun.pl/~jacek/ Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (Delphi) Ćwiczenia Toruń, 2 grudnia 2002 Najnowsza wersja tego dokumentu znajduje

Bardziej szczegółowo

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe. Programowanie Wizualno-Obiektowe (studia zaoczne - inżynieria komputerowa) Zajęcia z Delphi 5, program 1 Temat: Zadanie: Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków

Bardziej szczegółowo

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych

Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Jacek Matulewski, Sławek Orłowski http://www.phys.uni.torun.pl/~jacek/ Delphi 7 + Indy 10 Przykłady prostych aplikacji sieciowych Wersja α Ćwiczenia Toruń, 20 grudnia 2005 Najnowsza wersja tego dokumentu

Bardziej szczegółowo

Podstawy WINDOWS 9x, 2000, XP

Podstawy WINDOWS 9x, 2000, XP - 1 - Podstawy Windows & Zarządzanie zasobami komputera opr.m r Osa Podstawy WINDOWS 9x, 2000, XP 1. System Windows składa się z następujących podstawowych elementów: ikona pulpit okno pasek zadań folder

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

Kopiowanie, przenoszenie plików i folderów

Kopiowanie, przenoszenie plików i folderów Kopiowanie, przenoszenie plików i folderów Pliki i foldery znajdujące się na dysku można kopiować lub przenosić zarówno w ramach jednego dysku jak i między różnymi nośnikami (np. pendrive, karta pamięci,

Bardziej szczegółowo

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (C++ Builder)

Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (C++ Builder) Jacek Matulewski http://www.phys.uni.torun.pl/~jacek/ Tworzenie aplikacji Windows Podstawy obsługi komunikatów Windows (C++ Builder) Ćwiczenia Toruń, 2 grudnia 2002 Najnowsza wersja tego dokumentu znajduje

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Zasoby dyskowe: Eksplorator Windows Z zasobami dyskowymi związane są nierozłącznie prawa dostępu gwarantujące możliwość odczytu, kasowania,

Zasoby dyskowe: Eksplorator Windows Z zasobami dyskowymi związane są nierozłącznie prawa dostępu gwarantujące możliwość odczytu, kasowania, Zasoby dyskowe: Eksplorator Windows Z zasobami dyskowymi związane są nierozłącznie prawa dostępu gwarantujące możliwość odczytu, kasowania, kopiowania bądź też zapisu plików. Poznawanie zasobów dyskowych

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

Instrukcja obsługi programu MPJ6

Instrukcja obsługi programu MPJ6 Instrukcja obsługi programu MPJ6 Spis treści 1. LOGOWANIE...3 2. INTERFEJS UŻYTKOWNIKA...4 2.1. WIDOK GŁÓWNY...5 2.1.1. Ustawienia...5 2.1.2. Wybór klasy...5 2.1.3. Zegar...5 2.1.4. Timer...6 2.1.5. Tryb

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

Bardziej szczegółowo

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach.

Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Nazwa implementacji: Gra w życie Autor: Piotr Fiorek Opis implementacji: Implementacja przedstawia Grę w życie jako przykład prostej symulacji opartej na automatach. Zaprojektuj prostą grę, której celem

Bardziej szczegółowo

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze ABC komputera dla nauczyciela Materiały pomocnicze 1. Czego się nauczysz? Uruchamianie i zamykanie systemu: jak zalogować się do systemu po uruchomieniu komputera, jak tymczasowo zablokować komputer w

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Wprowadzenie do systemu Delphi

Wprowadzenie do systemu Delphi 50 Rozdział 4 Wprowadzenie do systemu Delphi W niniejszym rozdziale zilustrujemy na prostych przykładach proces programowania wizualno-obiektowego w systemie Delphi. 4.1 Znajdowanie elementu maksymalnego

Bardziej szczegółowo

Operacje na Wielu Arkuszach

Operacje na Wielu Arkuszach Operacje na Wielu Arkuszach 1. Operacje na wielu arkuszach na raz. 2. Przenoszenie i kopiowanie arkuszy pomiędzy plikami. 3. Ukrywanie arkuszy. Przykład 1. Operacje na wielu arkuszach na raz. Często pracując

Bardziej szczegółowo

CoDeSys 3 programowanie w języku CFC

CoDeSys 3 programowanie w języku CFC Notatka Aplikacyjna NA 03003PL Spis treści 1. Wstęp... 2 1.1. Wymagania programowe... 2 2. Tworzenie projektu i dodawanie programu w... 3 3. Organizacja okien dla języka CFC... 5 4. Składnia języka CFC

Bardziej szczegółowo

Temat: Organizacja skoroszytów i arkuszy

Temat: Organizacja skoroszytów i arkuszy Temat: Organizacja skoroszytów i arkuszy Podstawowe informacje o skoroszycie Excel jest najczęściej wykorzystywany do tworzenia skoroszytów. Skoroszyt jest zbiorem informacji, które są przechowywane w

Bardziej szczegółowo

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

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5 Ćwiczenie 5 Aplikacja wielo-okienkowa 1. Opracuj aplikację realizującą obliczenia na podstawie danych wpisywanych w komponencie

Bardziej szczegółowo

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

1. Pobieranie i instalacja FotoSendera

1. Pobieranie i instalacja FotoSendera Jak zamówić zdjęcia przez FotoSender? Spis treści: 1. Pobieranie i instalacja FotoSendera 2. Logowanie 3. Opis okna programu 4. Tworzenie i wysyłanie zlecenia Krok 1: Wybór zdjęć Krok 2: Podsumowanie zlecenia

Bardziej szczegółowo

Temat: Kopiowanie katalogów (folderów) i plików pomiędzy oknami

Temat: Kopiowanie katalogów (folderów) i plików pomiędzy oknami Temat: Kopiowanie katalogów (folderów) i plików pomiędzy oknami Jeśli chcemy skopiować dany plik lub katalog należy kliknąć na ikonę Mój komputer (2 razy), a następnie zaznaczony obiekt np. z dysku C:\

Bardziej szczegółowo

Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja

Okno logowania. Okno aplikacji. 1. Logowanie i rejestracja 1. Logowanie i rejestracja Aby wysłać zlecenie do laboratorium fotograficznego musisz mieć załoŝone konto. Jest to niezbędne do weryfikacji twojej osoby i daje pewność, Ŝe osoby nieupowaŝnione nie będą

Bardziej szczegółowo

Jak przygotować pokaz album w Logomocji

Jak przygotować pokaz album w Logomocji Logomocja zawiera szereg ułatwień pozwalających na dość proste przygotowanie albumu multimedialnego. Najpierw należy zgromadzić potrzebne materiały, najlepiej w jednym folderze. Ustalamy wygląd strony

Bardziej szczegółowo

Tworzenie własnych komponentów

Tworzenie własnych komponentów Tworzenie własnych komponentów 1. Tworzenie nowego komponentu W tym celu należy wykorzystać menu Component. Interesujące są dwie opcje menu New Component i Install Component. Pierwsze polecenie służy do

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

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

Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem.

Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem. FotoSender 1. Pobranie i instalacja programu Aby pobrać program FotoSender naleŝy na stronę www.fotokoda.pl lub www.kodakwgalerii.astral.pl i kliknąć na link Program do wysyłki zdjęć Internetem. Rozpocznie

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk Nazwa implementacji: Kółko i krzyżyk w Lazarusie Autor: Piotr Fiorek Andrzej Stefaniuk Opis implementacji: Implementacja prezentuje środowisko Lazarus oraz prosty program w języku FreePascal. Na początku

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Układy VLSI Bramki 1.0

Układy VLSI Bramki 1.0 Spis treści: 1. Wstęp... 2 2. Opis edytora schematów... 2 2.1 Dodawanie bramek do schematu:... 3 2.2 Łączenie bramek... 3 2.3 Usuwanie bramek... 3 2.4 Usuwanie pojedynczych połączeń... 4 2.5 Dodawanie

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1 Instrukcja obsługi ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1 1 ActionFX to zaawansowane oprogramowanie umożliwiające sterowanie platformami efektowymi i efektami w kinach

Bardziej szczegółowo

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

Papyrus. Papyrus. Katedra Cybernetyki i Robotyki Politechnika Wrocławska Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Zaawansowane metody programowania Copyright c 2014 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania

Bardziej szczegółowo

Baltie - programowanie

Baltie - programowanie Baltie - programowanie Chcemy wybudować na scenie domek, ale nie chcemy sami umieszczać przedmiotów jak w trybie Budowanie, ani wydawać poleceń czarodziejowi jak w trybie Czarowanie. Jak utworzyć własny

Bardziej szczegółowo

Instrukcja obsługi Konfigurator MLAN-1000

Instrukcja obsługi Konfigurator MLAN-1000 Instrukcja obsługi Konfigurator MLAN-1000 Strona 2 z 8 SPIS TREŚCI 1. Logowanie... 3 2. Diagnostyka... 4 3. Konfiguracja sterownika... 5 3.1 Konfiguracja sterownika aktualizacja oprogramowania... 5 4.

Bardziej szczegółowo

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface) 1. Udostępnianie wszystkich prywatnych atrybutów do prezentacji, wprowadzenie standardu nazewnictwa plików nazwy plików

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Podstawy JavaScript ćwiczenia

Podstawy JavaScript ćwiczenia Podstawy JavaScript ćwiczenia Kontekst:

Bardziej szczegółowo

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

Bardziej szczegółowo

Ćwiczenie 10 Wizualizacja

Ćwiczenie 10 Wizualizacja Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Automatyzacja i Nadzorowanie Maszyn Zajęcia laboratoryjne Ćwiczenie 10 Wizualizacja 24.04.2018 Poznań 2017 OGÓLNE ZASADY BEZPIECZEŃSTWA PODCZAS

Bardziej szczegółowo

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

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse... KORZYSTANIE Z KONTROLKI.NET LENDEVICERS232 DODAWANIE KONTROLKI DO ZBIORU KOMPONENTÓW DOSTĘPNYCH W PALECIE TOOLBOX (ŚRODOWISKA PROGRAMISTYCZNE FIRMY MICROSOFT) W środowisku programistycznym (Visual C++,

Bardziej szczegółowo

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ 1. Na dysku STUDENT we własnym folderze utwórz podfolder o nazwie: WarMax. 2. Uruchom program Delphi. 3. Zapamiętaj w folderze WarMax poszczególne pliki tworzące

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych

Laboratorium Systemów Operacyjnych Laboratorium Systemów Operacyjnych Użytkownicy, Grupy, Prawa Tworzenie kont użytkowników Lokalne konto pozwala użytkownikowi na uzyskanie dostępu do zasobów lokalnego komputera. Konto domenowe pozwala

Bardziej szczegółowo

Techniki zaznaczania plików i folderów

Techniki zaznaczania plików i folderów Techniki zaznaczania plików i folderów Aby wykonać określone operacje na plikach lub folderach (np. kopiowanie, usuwanie, zmiana nazwy itp.) należy je najpierw wybrać (zaznaczyć) nazwa i ikona pliku lub

Bardziej szczegółowo

Formularz pierwszej oceny w służbie cywilnej

Formularz pierwszej oceny w służbie cywilnej Narzędzie informatyczne wspomagające dokonywanie pierwszej oceny w służbie cywilnej przygotowane w ramach projektu pn. Strategia zarządzania zasobami ludzkimi w służbie cywilnej współfinansowanego przez

Bardziej szczegółowo

Delphi Laboratorium 3

Delphi Laboratorium 3 Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,

Bardziej szczegółowo

Instalacja programu:

Instalacja programu: Instrukcja programu Konwerter Lido Aktualizacja instrukcji : 2012/03/25 INSTALACJA PROGRAMU:... 1 OKNO PROGRAMU OPIS... 3 DODANIE MODUŁÓW KONWERSJI... 3 DODANIE LICENCJI... 5 DODANIE FIRMY... 7 DODAWANIE

Bardziej szczegółowo

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005

Ćwiczenie laboratoryjne. Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005 Ćwiczenie laboratoryjne Oprogramowanie i badanie stosu lub kolejki w środowisku Visual Basic 2005 Tematy ćwiczenia realizacja stosu lub kolejki dla tablicowej lub listowej reprezentacji. operacje na stosie

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

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący Laboratorium 13: GUI - Graficzny interfejs użytkownika Cel: Projektowanie z wykorzystaniem Graficzny Interfejs Użytkownika Czas: Wprowadzenia

Bardziej szczegółowo

O środowisku Windows. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

O środowisku Windows. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski O środowisku Windows R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski s-rg@siwy.il.pw.edu.pl Windows 1.0/2.0 Zapowiadany na 1983 rok system pojawił się w listopadzie 1985 w wersji 1.0, a w grudniu 1989

Bardziej szczegółowo

O środowisku Windows. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl

O środowisku Windows. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl O środowisku Windows R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl Windows 1.0/2.0! Zapowiadany na 1983 rok system pojawił się w listopadzie 1985 w wersji

Bardziej szczegółowo

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury Obsługa za pomocą klawiatury Różnego typu interfejsy wykorzystują różne metody reagowania i wydawania poleceń przez użytkownika. W środowisku graficznym najpopularniejsza jest niewątpliwie mysz i inne

Bardziej szczegółowo

R o g e r A c c e s s C o n t r o l S y s t e m 5. Nota aplikacyjna nr 016 Wersja dokumentu: Rev. A. obecności w VISO

R o g e r A c c e s s C o n t r o l S y s t e m 5. Nota aplikacyjna nr 016 Wersja dokumentu: Rev. A. obecności w VISO R o g e r A c c e s s C o n t r o l S y s t e m 5 Nota aplikacyjna nr 016 Wersja dokumentu: Rev. A Rejestracja i monitorowanie obecności w VISO Uwaga: Niniejszy dokument dotyczy RACS v5.5 (VISO 1.5.2 lub

Bardziej szczegółowo

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

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. Kontrola topto Obsługa aplikacji Kontrola topto 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. 5. Dodawanie, edycja i usuwanie przejść.

Bardziej szczegółowo

S P I S T R E Ś C I. Instrukcja obsługi

S P I S T R E Ś C I. Instrukcja obsługi S P I S T R E Ś C I Instrukcja obsługi 1. Podstawowe informacje o programie.................................................................................... 2 2. Instalacja programu.....................................................................................................

Bardziej szczegółowo

Wstęp 2. Instalacja 2. Uruchomienie odbierania faksów 2. Monitowanie odbierania faksu 3. Zakończenie pracy programu faksowego 3

Wstęp 2. Instalacja 2. Uruchomienie odbierania faksów 2. Monitowanie odbierania faksu 3. Zakończenie pracy programu faksowego 3 1 ZPKSoft Fax Wstęp 2 Instalacja 2 Uruchomienie odbierania faksów 2 Monitowanie odbierania faksu 3 Zakończenie pracy programu faksowego 3 Wstrzymanie pracy programu faksowego 3 Ustawienia 3 Zarządzanie

Bardziej szczegółowo

ejestr systemu Windows jest bazą danych, w której system i aplikacje mogą przechowywać swoje dane, w szczególności parametry konfiguracyjne.

ejestr systemu Windows jest bazą danych, w której system i aplikacje mogą przechowywać swoje dane, w szczególności parametry konfiguracyjne. ejestr systemu Windows jest bazą danych, w której system i aplikacje mogą przechowywać swoje dane, w szczególności parametry konfiguracyjne. Rejestr składa się z kilku kluczy głównych, z których z punktu

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

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

Języki i techniki programowania Ćwiczenia 2

Języki i techniki programowania Ćwiczenia 2 Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

KS-ZSA. Mechanizm centralnego zarządzania rolami

KS-ZSA. Mechanizm centralnego zarządzania rolami KS-ZSA Mechanizm centralnego zarządzania rolami 1. Opis funkcjonalności W KS-ZSA zostaje udostępniona funkcji centralnego zarządzania rolami. W samym programie jest możliwość tworzenia centralnej roli

Bardziej szczegółowo

Formy dialogowe w środowisku Gnome

Formy dialogowe w środowisku Gnome Środowisko graficzne Gnome posiada wiele atrakcyjnych funkcji, które często nie są przez administratorów wykorzystywane. Jedną z nich jest dołączony zestaw form dialogowych o nazwie Zenity ( http://library.gnome.org/users/zenity/stable/

Bardziej szczegółowo

PROSTY PROGRAM DO MALOWANIA

PROSTY PROGRAM DO MALOWANIA PROSTY PROGRAM DO MALOWANIA 1. Ten projekt to program do malowania podobny do TuxPainta. Program nie będzie może miał profesjonalnych możliwości, ale jak na aplikację stworzoną z niewielkiej liczby bloczków

Bardziej szczegółowo

BACKUP BAZ DANYCH FIREBIRD

BACKUP BAZ DANYCH FIREBIRD BACKUP BAZ DANYCH FIREBIRD SPIS TREŚCI Informacje ogólne... 2 Tworzenie projektu... 2 Krok 1: Informacje podstawowe... 2 Krok 2: Dane... 3 Backup bazy umieszczonej na serwerze... 3 Bezpośredni backup pliku

Bardziej szczegółowo

Klawisze funkcyjne w OpenOffice.org Writer

Klawisze funkcyjne w OpenOffice.org Writer Klawisze funkcyjne w OpenOffice.org Writer F2 Ctrl + F2 F3 Ctrl + F3 F4 Shift + F4 F5 Ctrl + Shift + F5 F7 Ctrl + F7 F8 Ctrl + F8 Shift + F8 Ctrl+Shift+F8 F9 Ctrl + F9 Shift + F9 Ctrl + Shift + F9 Ctrl

Bardziej szczegółowo

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład dr Artur Bartoszewski 1 Intencje Intencje (obok Aktywności) są jednym z podstawowych komponentów z których zbudowane są aplikacje systemu Android. Są one odpowiedzialne przede wszystkim za obsługę rozkazów

Bardziej szczegółowo

Wykład 2 Składnia języka C# (cz. 1)

Wykład 2 Składnia języka C# (cz. 1) Wizualne systemy programowania Wykład 2 Składnia języka C# (cz. 1) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Budowa projektu 2 Struktura programu

Bardziej szczegółowo

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

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl Do połączenia z serwerem A&B w celu załadowania lub pobrania materiałów można wykorzystać dowolny program typu "klient FTP". Jeżeli nie

Bardziej szczegółowo

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji: Nr: 15 Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1 Data modyfikacji: 2013-10-25 Co zawiera ten dokument: Ten dokument opisuje elementy systemu Windows 8 i Windows 8.1 powiązane z programem Kancelaris.

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

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists() Paweł Gmys PHP strona 1 Lekcja 10 Uprawnienia Aby skrypt PHP mógł odwołać się do pliku, musi mieć odpowiednie uprawnienia. Szczegóły są zależne od serwera. Najczęściej chyba skrypt ma uprawnienia takie,

Bardziej szczegółowo

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30 MS Word 2010 Długi dokument Praca z długim dokumentem Kinga Sorkowska 2011-12-30 Dodawanie strony tytułowej 1 W programie Microsoft Word udostępniono wygodną galerię wstępnie zdefiniowanych stron tytułowych.

Bardziej szczegółowo

Programy LeftHand - Obsługa plików JPK. Luty 2017

Programy LeftHand - Obsługa plików JPK. Luty 2017 Programy LeftHand - Obsługa plików JPK Luty 2017 Spis treści 1. Wstęp... 2 2. Pierwsze uruchomienie funkcji JPK... 2 3. Generowanie plików JPK... 9 4. Wysyłanie plików JPK... 10 5. Pobieranie i drukowanie

Bardziej szczegółowo

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Projekt graficzny z metamorfozą (ćwiczenie dla grup I i II modułowych) Otwórz nowy rysunek. Ustal rozmiar arkusza na A4. Z przybornika wybierz rysowanie elipsy (1). Narysuj okrąg i nadaj mu średnicę 100

Bardziej szczegółowo

Instalacja i podstawowa konfiguracja aplikacji ImageManager

Instalacja i podstawowa konfiguracja aplikacji ImageManager Instalacja i podstawowa konfiguracja aplikacji ImageManager Wymagania systemowe dla aplikacji ImageManager przynajmniej 1 GB pamięci RAM (4 GB rekomendowane) przynajmniej 75 MB wolnego miejsca na dysku

Bardziej szczegółowo

CorelDRAW. wprowadzenie

CorelDRAW. wprowadzenie CorelDRAW wprowadzenie Źródło: Podręcznik uŝytkownika pakietu CorelDRAW Graphics Suite 12 Rysowanie linii 1. Otwórz program CorelDRAW. 2. Utwórz nowy rysunek i zapisz go w swoich dokumentach jako [nazwisko]_1.cdr

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

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9 Uruchamianie edytora OpenOffice.ux.pl Writer 9 Dostosowywanie środowiska pracy 11 Menu Widok 14 Ustawienia dokumentu 16 Rozdział 2. OpenOffice

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości Rozpoczniemy od zaprojektowania bazy danych w programie SYBASE/PowerDesigner umieszczamy dwie Encje (tabele) prawym

Bardziej szczegółowo

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych 2. Tablice Tablica to struktura danych przechowująca elementy jednego typu (jednorodna). Dostęp do poszczególnych elementów składowych jest możliwy za pomocą indeksów. Rozróżniamy następujące typy tablic:

Bardziej szczegółowo

Informatyzacja Przedsiębiorstw

Informatyzacja Przedsiębiorstw Informatyzacja Przedsiębiorstw Microsoft Dynamics NAV 2016 Development Environment C/AL Izabela Szczęch Informatyzacja Przedsiębiorstw Strona 1 Plan zajęć 1 Informacje ogólne dotyczące środowiska deweloperskiego

Bardziej szczegółowo

VBA ZAJĘCIA NR 7! praca z plikami (kontynuacja zajęć 6)

VBA ZAJĘCIA NR 7! praca z plikami (kontynuacja zajęć 6) VBA ZAJĘCIA NR 7! praca z plikami (kontynuacja zajęć 6) Dariusz Aksamit Wydział Fizyki Politechniki Warszawskiej Szkolenie Programowanie w języku Visual Basic for Application (VBA) Semestr letni 2017/2018

Bardziej szczegółowo

e-podręcznik dla seniora... i nie tylko.

e-podręcznik dla seniora... i nie tylko. Ekran logowania systemu Windows 7, w którym utworzono dwa konta użytkowników. Na ekranie logowania, każde konto użytkownika ma swoją nazwę i przypisany do niego obrazek. Wygląd obrazka oraz jego nazwę

Bardziej szczegółowo

Program 14. #include <iostream> #include <ctime> using namespace std;

Program 14. #include <iostream> #include <ctime> using namespace std; Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre) Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo