Edytor tekstu w C#

Za pomocą Borland C# Personal nawet początkujący programista może przygotować prosty, ale funkcjonalny edytor tekstu w ciągu niecałej godziny.

Za pomocą Borland C# Personal nawet początkujący programista może przygotować prosty, ale funkcjonalny edytor tekstu w ciągu niecałej godziny.

Borland C# Builder Personal to pełna, bezpłatna wersja świetnego środowiska programistycznego do tworzenia aplikacji do Windows w języku C#. Wersja Personal przeznaczona jest do nauki i tworzenia oprogramowania na własny użytek. Program może być świetnym wprowadzeniem do języka C# nawet dla osób do tej pory nie zajmujących się programowaniem.

Aby poznać możliwości Borland C# Builder Personal, przygotujemy bardzo prostą aplikację - edytor tekstowy obsługujący format RTF. Warsztat przeznaczony jest dla osób dopiero rozpoczynających pracę z tym środowiskiem i językiem C#. Utworzenie prostego edytora tekstu w Borland C# Builder nie wymaga dogłębnej znajomości tajników języka C#. Jeśli miałeś do czynienia z językami C, C++ lub Java, bez trudu zrozumiesz podany dalej kod źródłowy.

Pracę nad programem rozpoczynamy od uruchomienia Borland C# Builder Personal i utworzenia nowego projektu. W tym celu wybierz z menu opcję File|New|C# Application. Zostanie przygotowany ogólny szkielet aplikacji oraz puste okno dialogowe - główne okno aplikacji. Podobnie jak w innych środowiskach programistycznych firmy Borland, w C# Builder możesz zauważyć okno Object Inspektor z kartą właściwości (Properties) i obsługi zdarzeń (Events). W prawej części okna C# Builder widoczny jest Project Manager z listą plików związanych z projektem, a poniżej - lista dostępnych komponentów, których można użyć w aplikacji. Na liście tej znajdziesz zarówno komponenty widoczne, takie jak pola edycji, listy, pola wyboru, jak i niewidoczne, ale równie ważne, np. umożliwiające połączenie z bazą danych.

Borland C# Builder zaznacza odpowiadające sobie pary nawiasów, umożliwia też ukrywanie części kodu.

Borland C# Builder zaznacza odpowiadające sobie pary nawiasów, umożliwia też ukrywanie części kodu.

Główna część okna C# Buildera to okno projektowania interfejsu aplikacji. W górnej jego części widoczne są karty, za pomocą których szybko otworzysz potrzebny plik źródłowy. Poniżej obszaru projektowania okien dialogowych można zauważyć dwie karty, Code i Design. Klikając kartę Code, przejdziesz do edytora kodu źródłowego danego pliku, a kliknięcie karty Design ponownie wyświetli okno projektowania interfejsu. Warto przyjrzeć się kilku ciekawym możliwościom okna edycji kodu. Wszystkie elementy kodu: słowa kluczowe, identyfikatory, komentarze, stałe liczbowe, są wyróżnione odpowiednim kolorem. Kolorowanie składni to jednak już od dawna podstawowe wyposażenie środowisk programistycznych.

Po lewej stronie okna edycji kodu można zauważyć pionowe linie oraz małe kwadraty ze znakami + oraz -, sugerujące możliwość ukrywania fragmentów kodu. Tak jest w istocie. Każdy obszar będący definicją przestrzeni nazw, klasy czy metody może zostać "zwinięty" tak, że wyświetlany będzie jedynie nagłówek. Kliknij kwadrat oznaczony znakiem minus obok nagłówka public class WinForm: System. Windows.Form.Form. Cała definicja klasy WinForm (oprócz nagłówka) zostanie ukryta. Ponowne kliknięcie spowoduje wyświetlenie pełnej definicji klasy. Możliwość "zwijania" i "rozwijania" fragmentów kodu okazuje się niezwykle przydatna, zwłaszcza przy edycji długich plików źródłowych - pozwala oszczędzać czas, marnotrawiony dotąd na ciągłe przewijanie okna edycji kodu. Można zauważyć, że część kodu jest domyślnie ukryta - ten fragment programu generowany jest automatycznie i zawiera metody niezbędne do odpowiedniego wyświetlania kontrolek, które umieścimy w oknie aplikacji podczas wizualnego projektowania interfejsu. Zawartości tego bloku nie należy zmieniać ręcznie.

Warto wymienić jeszcze dwie drobne, ale niezwykle przydatne właściwości edytora kodu w C# Builder. Po ustawieniu kursora edycji przed znakiem otwierającym lub zamykającym nawias (okrągły, kwadratowy lub klamrowy) edytor automatycznie zaznaczy odpowiadający mu drugi nawias. Dzięki tej prostej opcji można uniknąć większości błędów związanych np. z zamykaniem bloków ujętych w nawiasy { }.

Tworząc kod w C#, należy pamiętać o specjalnym rodzaju komentarzy, używanym w tym języku. Mogą zawierać znaczniki XML, dzięki którym możliwe jest później automatyczne wygenerowanie dokumentacji technicznej, opisującej działanie klas i metod.

Najczęściej stosowany jest znacznik <summary> </summary>, który powinien zawierać ogólny opis klasy lub metody. Pamiętajmy, że znaczniki w XML zawsze muszą być zamknięte, w tym wypadku znacznikowi <summary> musi zawsze towarzyszyć znacznik </summary>. Co ciekawe, C# Builder nie sprawdza automatycznie domknięcia znaczników XML w komentarzach. Może w następnej wersji?

Po tym dość długim, ale - mam nadzieję - interesującym opisie edytora kodu w Borland C# Builder przejdźmy do właściwego tworzenia aplikacji. Najpierw należy ułożyć komponenty w oknie projektowania interfejsu. Powiększ okno aplikacji i umieść w nim komponent MainMenu oraz RichTextBox.

Dodaj do menu typowe pozycje menu każdego szanującego się edytora plików tekstowych, a więc tworzenie nowego dokumentu, wczytywanie zawartości pliku tekstowego itd. W menu powinny także znaleźć się opcje związane z wykorzystaniem Schowka: kopiowaniem, wycinaniem i wklejaniem fragmentów tekstu. Pamiętaj, że należy wskazać menu używane przez aplikację.

Zaznacz główne okno aplikacji i w oknie właściwości wybierz odpowiednią wartość parametru Menu. Komponent RichTextForm, czyli po prostu obszar edycji dokumentu w naszym programie powinien obejmować całą dostępną powierzchnię okna aplikacji, a także zmieniać swoje rozmiary wraz ze skalowaniem okna programu. Aby osiągnąć ten drugi efekt, zaznacz komponent RichTextForm, a następnie ustaw właściwość Anchor na Top, Bottom, Left, Right. Upewnij się także, że okna aplikacji ma właściwość FormBorderStyle ustawioną na Sizable. Oczywiście możesz zmieniać wszelkie inne właściwości okna programu i użytych komponentów.

Przyszła pora na pierwsze uruchomienie programu. W tym celu użyj opcji Run|Run lub klawisza skrótu [F9]. Przetestuj działanie programu: obszar edycji dokumentu powinien działać całkiem dobrze, łącznie z obsługą Schowka! Menu również jest widoczne, ale zupełnie niefunkcjonalne. Dodamy jeszcze obsługę opcji menu, najpierw jednak zakończ działanie programu.

W oknie projektowania interfejsu wybierz opcję menu programu, która służyć ma do kopiowania zaznaczonego tekstu do Schowka, i kliknij ją dwukrotnie. Zostanie utworzona metoda obsługująca zdarzenie (kliknięcie danej opcji menu). Oprogramowanie tej metody nie wymaga zaawansowanej znajomości języka C#, bo składa się z pojedynczego wiersza kodu (DocumentBox to nazwa komponentu RichTextForm).

private void menuItem15_Click(object sender, System.EventArgs e)

{

DocumentBox.Copy();

}

W podobnie prosty sposób możesz oprogramować wklejanie tekstu ze Schowka (DocumentBox.Paste();) i wycinanie tekstu (DocumentBox.Cut();). Dodajmy nieco bardziej zaawansowaną opcję: zmianę rodzaju, koloru i wielkości czcionki zaznaczonego fragmentu tekstu. Aby wygodnie zmienić krój i rozmiar czcionki, należy do aplikacji dodać nowy komponent typu FontDialog, o nazwie np. FontD. Zaznacz odpowiednią opcję menu projektowanej aplikacji i przejdź na kartę Events w Object Inspector. Dwukrotnie kliknij pole obok pozycji Click - zostanie utworzona metoda obsługi tego zdarzenia. Kod metody wyglądać będzie następująco (nazwa funkcji może się zmienić w zależności od nazwy danej opcji menu).

private void menuItem29_Click(object sender, System.EventArgs e)

{

if( FontD.ShowDialog() == DialogResult.OK)

DocumentBox.SelectionFont = FontD.Font;

}

Równie łatwo można dodać opcję zmiany koloru zaznaczonego obszaru tekstu. Tym razem dodaj do programu komponent ColorDialog i nazwij go np. ColorD. Podobnie jak poprzednio, utwórz metodę obsługującą kliknięcie odpowiedniej opcji w menu (np. Format | Kolor). Kod metody również przypomina poprzedni przypadek.

private void menuItem36_Click(object sender, System.EventArgs e)

{

if( ColorD.ShowDialog() == DialogResult.OK)

DocumentBox.SelectionColor = ColorD.Color;

}


Zobacz również