C++ programowanie zdarzeniowe

background image

1

Samouczek C++

Programowanie zdarzeniowe

Dr inż.Stanisław Lipski

background image

2

Borland Builder 6.0

• Jak sterować aplikacją za pomocą

przycisków?

• Jak tworzyć i wykorzystywać okno

dialogowe TEdit?

• Krok po kroku!

background image

3

Wybierz: File - > New Application
Uzyskasz pusty formularza Form1

KR
OK

1

background image

4

Krok 1a

• Widzisz swoją formę Form1, Object TreeView

oraz Object Inspector.

• Object Inspector ma ono dwie zakładki:

Properties i Events.

• Wybierz arkusz Properties
• Odszukaj własność Caption i w polu obok wpisz

sobie nazwę Twojej własnej aplikacji.

• Odszukaj własność Color i w polu obok ustaw

sobie ulubiony kolor arkusza na którym chcesz

dalej pracować.

• W taki sposób tworzysz program nie wpisując ani

jednej linijki kodu, ale możesz go podpatrywać w

drugim oknie Unit1.cpp,które jest za Twoim

arkuszem.

• Wypróbuj inne własności arkusza.

background image

5

Krok 2 - przyciski

• Na pasku zadań są zakładki w których mieszka

bardzo wiele możliwości. Zapoznaj się z nimi!

• W zakładce standard masz możliwość wstawiania

gotowego przycisku.

• Wystarczy kliknąć na niego a potem na arkusz.
• Zobaczysz gotowy przycisk z napisem Button1.

Wystarczy wiedzieć do czego ma służyć i potem

go opisać.

• Wypróbuj co możesz zrobić myszą z tym

przyciskiem!

background image

6

Krok 3. Przeznaczenie przycisku

• Naciśnięcie przycisku ma na celu

zakończenie aplikacji

• Co należy zrobić?

• W tym celu należy:
- Opisać przycisk na arkuszu
- Wpisać kod polecenia w unit.cpp

Jeśli Twój przycisk ma zamykać aplikację to

:

background image

7

Krok 3 – opis przycisku na arkuszu

background image

8

Krok 3 – opis przycisku na arkuszu

• Wykorzystujesz Object Inspector.
• Wykorzystując własność Caption ustalasz

nazwę arkusza

• Wykorzystując własność Font ustalasz

napis na przycisku

• Możesz wykorzystać Label i wstawić tekst

w sąsiedztwie.

• Wypróbuj inne własności z Object

Inspector dla tego arkusza.

background image

9

Zdarzenie

• Object Inspector ma dwie zakładki: Propertiwes i Events.

• Upewnij się że wybrana jest Forma i przejdź do zakładki

Events.

• Tam masz wszystkie zdarzenia które obsługuje forma

• W tym celu dla obsługi możesz wykorzystać zdarzenie

OnClick.

• Obsługę tego zdarzenia możesz zdefiniować w dwojaki

sposób – poprzez dwukrotnie kliknięcie na przycisku lub

wybranie w Object Inspector zakładki Events i dwukrotne

kliknięcie na puste pole obok napisu OnClick.

• Po wykonaniu jednej z wymienionych opcji zostanie

wygenerowana procedura obsługi zdarzenia OnClick dla

wybranego przycisku.

• Wystarczy uzupełnić ją poleceniem powodującym

wywołanie zaplanowanego zdarzenia.

background image

10

Krok 4 – polecenie

• Jak klikniesz dwukrotnie w przycisk,

zobaczysz taki kod:




• Trzeba go uzupełnić!

void __fastcall

TForm1::Form1(TObject *Sender)

{

}

//--------------------

background image

11

Krok 4 – polecenie

void __fastcall

TForm1::Form1(TObject *Sender)

{

Tutaj zrób trochę miejsca

}
//tutaj wpisz polecenie dla przycisku

background image

12

Krok 4 – polecenie

• W tym konkretnym przypadku wystarczy

Close ();

• Następnie zapisz aplikację i uruchom

kompilator

• Jeśli wszystko wykonałeś bezbłędnie,

uruchom aplikację

• Zobaczysz swój przycisk który już jest

aktywny. Teraz czas bardziej

zawansowane programy!

background image

13

Krok 4 – polecenie

background image

14

Zadanie 1 do samodzielnego wykonania

• Napisać program, w którym zostaną

umieszczone 4 przyciski z napisami

• 3 z nich Czerwony, Zielony, Niebieski mają

spowodować, aby ich wciśnięcie

skutkowało zmianą tła formularza

odpowiednio na kolor czerwony, zielony i

niebieski.

• 4 – ma zamykać aplikację.
• Wypróbuj zmianę koloru przyciski i napisu

na nim.

background image

15

Zadanie 2 do samodzielnego wykonania

• Utwórz nową aplikację, w której umieścisz komponent TLabel. W

Inspektorze Obiektów ustaw dla niego własności:

Caption=”Przyklad użycia komponentów z karty standard”, Font-

>Size=20.

• Umieść na formularzu komponent TGroupBox, a następnie zmień

jego własności: Caption=”Styl czcionki”, Font->Size=10.

• Na komponencie TGroupBox umieść cztery komponenty

TCheckBox. Zmień ich własności Caption odpowiednio na:

- Pogrubiona, Pochylona, Podkreślona, Przekreślona.

• Aplikacja będzie miała za zadanie zmieniać styl czcionki użytej w

komponencie TLabel w zależności od zaznaczenia stosownej opcji.

Wskazówka: Wykorzystaj zdarzenie OnClick dla komponentu

TCheckBox i jego własności State oraz Checked. Posłuż się

własnością Font->Style komponentu Tlabel.

• Ustaw odpowiednio styl na fsBold (pogrubiony), fsItalic

(pochylony), fsUnderline (podkreślony), fsStrikeOut

(przekreślony).

• Przykład pochylania tekstu:

if (CheckBox2->Checked)

Label1->Font->Style=TFontStyles()<<fsItalic;

background image

16

Zadanie 3

• Umieść na formularzu komponent TEdit.

• Usuń dla niego napis z własności Text.

• Następnie umieść przycisk (TButton) i ustaw jego

własność Caption na “Zmien napis”.

• Ustal działanie aplikacji tak aby naciśniecie

przycisku powodowało przepisanie tekstu z pola

edycyjnego do etykiety.

background image

17

Rozwiązanie zad. 3

Wykorzystując okno dialogowe Edit chcę zmieniać napis tytułowy po

naciśnięciu przypisku.
Okno Edit ma pozostać aktywne i wprowadzenie nowego napisu i

ponowne naciśniecie przycisku znów zmieni napis.

background image

18

Wskazówka:

• Wykorzystaj zdarzenie OnClick dla

przycisku:

• void __fastcall

TForm1::Button1Click(TObject *Sender)

• {
• Label1->Caption=Edit1->Text;
• }

background image

19

background image

20

Przed naciśnięciem

przycisku

Po naciśnięciu

przycisku

background image

21

Zadanie 4

• Zaprojektuj formularz o przedstawionym poniżej

wyglądzie:

background image

22

Rozwiązanie zad. 4.

• Na formularzu umieść komponent TPanel z zakładki Standard.

• Usuń dla niego wartość własności Caption.

• Następnie umieść trzy komponenty TTrackBar z zakładki Win32.

• Dla każdego z suwaków ustaw własności:

Min=0, Max=255, Frequency=5.

• W kolejnym kroku umieść trzy etykiety (komponent TLabel z

zakładki Standard) opisujące za pomocą liter R, G, B kolory jakie

reprezentują suwaki.

• Dla każdej z etykiet ustaw własności:

Font=Arial, Size=20, Style=fsBold,

• Następnie zmodyfikuj stosownie ich kolor tak aby R było napisane

kolorem czerwonym, G – zielonym, a B –niebieskim.

• Dla suwaka reprezentującego kolor czerwony obsłuż zdarzenie

OnChange wywoływane w momencie zmiany położenia wskaźnika

suwaka.

• Wykorzystaj funkcję RGB zwracającą na podstawie trzech

podanych wartości kolorów barwę wynikową.

• Do pobrania aktualnej pozycji wskaźników suwaka wykorzystaj

własność Position.

background image

Rozwiązanie zad. 4 cd.

• Dla wygenerowania podglądu uzyskanej barwy

ustaw własność kolor panela. Posłuż się kodem:

Panel1->Color=(TColor) RGB(TrackBar1->Position,

TrackBar2->Position, TrackBar3->Position);

• Dla pozostałych dwóch suwaków zdefiniuj tak

zdarzenie OnChange, aby wywoływała się ta

sama funkcja co dla suwaka obsługującego kolor

czerwony.

• Ustaw tytuł okna na “Mieszacz kolorów”.

• Dołącz przycisk zamykający aplikację.

• Uruchom i przetestuj aplikację.

23

background image

24

background image

25

background image

26

Uzupełnienie

• Spowoduj aby nastawy suwaków uwidaczniały się

wewnątrz barwnego panela. Niech się tam pokaże

tekst “(100,100,100)” opisujący wartości trzech

barw składowych.

• Wykorzystaj:

Panel1->Caption= "("+AnsiString(TrackBar1->

Position)+","+

AnsiString(TrackBar2->Position)+","+
AnsiString(TrackBar3->Position)+")";

background image

27

Uzupełnienie

• Dodaj do formularza checkbox z opisem “Heksadecymalnie”

decydujący czy współrzędne mają się pokazać w systemie

szesnastkowym.

• Posłuż się funkcją IntToHex zamieniającą liczbę dziesiętną

na napis w systemie heksadecymalnym.

• Ponieważ ten sam kod byłby wykorzystywany zarówno w

przy zmianie stanu checkboxa jak i przy zmianie położenia

suwaka dlatego też zdefiniuj funkcję “Napis”.

• W tym celu otwórz plik nagłówkowy (naciśnij prawy klawisz

myszy na zakładce z nazwą otwartego pliku cpp i wybierz

Open Source/Header File).

• W części prywatnej klasy formularza zadeklaruj funkcję:

void Napis();

background image

28

Uzupełnienie

• Wróć do pliku cpp i zdefiniuj ciało funkcji:

void TForm1::Napis()

{

if(CheckBox1->Checked)

Panel1->Caption="("+IntToHex(TrackBar1->Position,2)+

","+IntToHex(TrackBar2->Position,2)+","+

IntToHex(TrackBar3->Position,2)+")";

else

Panel1->Caption="("+AnsiString(TrackBar1->Position)+","+

AnsiString(TrackBar2->Position)+","+

AnsiString(TrackBar3->Position)+")";

}

• Następnie wywołaj ją w funkcji obsługi zdarzenia OnChange

dla suwaków oraz w funkcji obsługującej zdarzenie OnClick

dla chceckboxu.

background image

29

Praca domowa.

Napisać samodzielnie program dla

aplikacji rozwiązującej dowolne równania kwadratowe.

background image

30

Dziękuję za zainteresowanie

• stlipski@gmail.com


Wyszukiwarka

Podobne podstrony:
Teksty programow Zdarzenie1
Programowanie zdarzeniowe kontakt, zaliczenie
Programowanie zdarzeniowe W1 Wprowadzenie
Porównanie SWT AWT SWING, Studia, WAT Informatyka, Pz - programowanie zdarzeniowe
C programowanie zdarzeniowe
Programowania zdarzeniowe W1 Technologia Applet AWT
Programowania zdarzeniowe W2 SWING Listeners
perełki programowania gier vademecum profesjonalisty tom i (fragment) wykrywanie zdarzeń w trójwymi
Programowanie obiektowe i zdarzeniowe w Delphi
Programowanie obiektowe i zdarzeniowe w Delphi
SYMULACJA ZDARZEŃ NA POZIOMIE INTERWENCYJNYM Z WYKORZYSTANIEM RZECZYWISTOŚCI WZBOGACONEJ PROGRAM AR
Nowy Prezentacja programu Microsoft PowerPoint 5
zdarzenia masowe, Dr I Baumberg 1 1

więcej podobnych podstron