Okna.  Wirusy.  Notatniki.  Internet.  biuro.  Narzędzia.  Kierowcy

Visual Component Library (VCL) Delphi do wyświetlania informacje graficzne udostępnia nam następujące komponenty wizualne: Image (obraz), PaintBox (okno rysunku), DrawGrid (tabela z obrazami), Chart (wykresy i wykresy), Animate (wyjście klipów wideo) i Form. Te komponenty mają właściwość Canvas (opisaną powyżej), która daje dostęp do każdego piksela. Oczywiście nie musisz rysować piksel po pikselu, aby pracować z grafiką w Delphi, system Delphi zapewnia potężne narzędzia do pracy z grafiką.

Przyjrzyjmy się bliżej powyższym komponentom:

Składnik obrazu (obraz)

Jest to obiekt klasy TImage. Służy do wyświetlania obrazów odczytanych z plików graficznych. Domyślnie wyświetla na powierzchni formularza obrazy prezentowane w formacie *.bmp. Aby wyświetlać obrazy w formacie jpg, musisz dołączyć moduł JPEG do dyrektywy use. Znajduje się w zakładce Dodatkowe w Palecie Komponentów.

Po umieszczeniu komponentu Image na formularzu przybiera on postać wybranego prostokątnego obszaru.

Rysunek 9 — Komponent obrazu w formularzu

Aby otworzyć okno dialogowe wyboru żądanego obrazu, wykonaj następujące czynności za pomocą Inspektora obiektów. Aby to zrobić, znajdź właściwość Picture i kliknij trzy kropki po jej lewej stronie. Otworzy się okno Picture Editor i wybierz w nim Załaduj, w oknie, które zostanie otwarte, wybierz plik obrazu.

Można to również zrobić programowo, wywołując metodę LoadFromFile właściwości Picture:

Image1.Picture.LoadFromFile("nazwa_zdjęcia.jpeg");

gdzie nazwa_zdjęcia.jpeg to nazwa pliku.

Tabela 8 — Główne właściwości komponentu Image

Nieruchomość

Opis

Obraz wyświetlany w polu komponentu

Wymiary komponentów. Jeśli te wymiary są mniejsze niż rozmiar ilustracji, a właściwości Strech, AutoSize i Proportional są ustawione na False, to wyświetlana jest część obrazu

Umożliwia automatyczne skalowanie obrazów bez zniekształceń. Aby wykonać skalowanie, wartość właściwości AutoSize musi być ustawiona na False

Umożliwia automatyczne skalowanie (kompresowanie lub rozciąganie) obrazu zgodnie z rozmiarem komponentu Obraz. Jeśli rozmiar komponentu nie jest proporcjonalny do rozmiaru obrazu, obraz będzie zniekształcony.

Umożliwia automatyczną zmianę rozmiaru komponentu w celu dopasowania do rozmiaru obrazu

Pozwala określić położenie obrazu w polu komponentu Obraz w poziomie, jeśli szerokość obrazu jest mniejsza niż szerokość komponentu.

Powierzchnia do wyświetlania grafiki

Określa przezroczysty kolor tła obrazu

Przykład 1: Napisz przeglądarkę obrazów przy użyciu komponentu Image. Program musi posiadać następujące cechy:

  • przeglądać obrazy w folderze;
  • Zobacz obraz w pełnym rozmiarze lub w formacie najbardziej odpowiednim dla wielkości okna;
  • · zarządzać plikami obrazów, a także drukować, zapisywać, usuwać i modyfikować obrazy;
  • w razie potrzeby otwórz obraz w programie do edycji;

Rysunek 10 - Okno programu przed jego uruchomieniem

Tworzenie projektu:

  • 1. Utwórz folder dla plików programu i uruchom zintegrowane środowisko programistyczne Delphi.
  • 2. Dodaj komponenty do formularza:

Najpierw umieścimy na formularzu komponent Image, główny komponent, z którym będziemy musieli pracować. Oprócz tego potrzebujemy następujących elementów:

  • · ScrollBox Jest to konieczne, gdy w trybie pełnowymiarowym obraz wychodzi poza obraz. Do jego właściwości Aling przypisujemy wartość alClient tak, aby jego wymiary zmieniały się proporcjonalnie do rozmiaru okna. I umieszczamy na nim komponent Image;
  • · Dodamy również komponenty dialogowe SavePictureDialog i OpenPictureDialog do zapisywania i otwierania obrazów. Pierwszego potrzebujemy do skopiowania obrazka do wybranego katalogu, drugiego do wywołania otwartego okna dialogowego plik graficzny. Znajdują się one na stronie Okna dialogowe Palety komponentów. Z tej strony potrzebujemy również komponentu PrintDialog, który musimy wywołać okno dialogowe wyboru drukarki do drukowania.
  • Dodajmy MainMenu, aby dodać menu główne do programu i XPManifest, aby uzyskać bardziej kolorowy wygląd
  • · Potrzebujemy również miejsca do przechowywania nazw obrazów, które znajdują się w katalogu roboczym. Do tych celów wygodny jest komponent ListBox, który można ukryć podczas przetwarzania zdarzenia Create formularza Form1.
  • · Aby umieścić przyciski nawigacyjne i wygodnie z nimi pracować, dodajmy panel Zasłona, na którym umieścimy te przyciski (Poprzedni obraz, Następny obraz, Prawdziwy rozmiar, Dopasuj do rozmiaru, Usuń, Kopiuj do, Drukuj, Edytuj). SpeedButton jest dla nich wybierany jako komponent.
  • · Dodaj timer, aby złapać naciśnięcie klawiszy "Lewo" (poprzedni obraz), "Prawo" (następny obraz) i klawisz "Del" (usuń obraz).
  • · I jeszcze jeden komponent - ProgressBar, który wyświetla proces ładowania dużych plików *.Jpg.
  • 3. Napisz kod obsługujący zdarzenie kliknięcia przycisku (Poprzedni obraz, Następny obraz, Prawdziwy rozmiar, Dopasuj do rozmiaru, Usuń, Kopiuj do, Drukuj, Edytuj). Napisz kod obsługujący zdarzenie kliknięcia pozycji menu MainMenu (Exit, Open, Close, Create).
  • 4. Ustaw początkowe ustawienia tworzenia formularza. Kliknij dwukrotnie pusty obszar formularza i wpisz kod procedura procedura TForm1.FormCreate(Sender:TObject), patrz kod modułu w dodatku 1.
  • 5. Napisz procedury o następującej postaci:

procedura FindFileInFolder(ścieżka, ext: string);

Ta procedura skanuje folder ścieżki w poszukiwaniu plików z maską ext.

Pełna lista kodów modułu programu znajduje się w Dodatku 1 (Lista programów 3).

  • 1. Wypisz możliwości komponentu Image.
  • 2. Który obiekt klasy jest komponentem Image?
  • 3. 3. Jaki typ plików domyślnie obsługuje komponent Image?
  • 4. 4. Wymień główne właściwości komponentu Image.
  • 5. 5. Jaka właściwość przechowuje obraz komponentu Image?

PRACA LABORATORYJNA

TEMAT: « Grafika wDelfy- konstrukcja najprostsza
figury geometryczne"

Krótka informacja z teorii

Delphi udostępnia programistom trzy sposoby wyświetlania grafiki:

    kreślenie podczas działania programu

    wykorzystanie gotowych grafik

    tworzenie obrazów przy użyciu komponentów graficznych

Do kreślenia stworzono specjalne klasy, które udostępniają narzędzia i metody rysowania: narzędzia opisane są w trzech klasach - Tfont, Tpen, Tbrush; obszar rysowania i metody są dostarczane przez klasę Tcanvas.

Klasaczcionka- ustawia charakterystykę czcionki używanej do wyświetlania tekstu na kanwie. Właściwości klasy są opisane w sekcji „Podstawowe właściwości dostępne dla większości składników”.

Klasatpen– ustawia charakterystykę pisaka (ołówka), którym rysowane są linie.

Nieruchomości klasa tpen:

kolor:Tcolor - kolor linii (domyślnie czarny)

Szerokość:integer – grubość linii w pikselach;

styl = (psSolid, psDash, psDot, psdashDot, psClear) - definiuje styl linii (pełna, kreskowana, kropkowana, kreska-kropka, niewidoczna)

Klasaszczotka– ustawia charakterystykę pędzla używanego do malowania powierzchni obrazu.

Nieruchomości klasa szczotka:

kolor:Tcolor - kolor pędzla (domyślnie biały)

styl- ozdoba pędzla, może przyjmować następujące wartości:

BsSolid - kolorowanie stałe

BsClear - brak wypełnienia

BsVertical — linie pionowe

BsBdiagonal - prawe ukośne linie

BsDiagCross - ukośna komórka

BsPoziomo- linie poziome

BsFdiagonal - lewe ukośne linie

BsCross - komórka

Klasatekstylia- definiuje powierzchnię, na której umieszczony jest tworzony obraz oraz narzędzia, za pomocą których tworzony jest obraz: czcionka, ołówek, pędzel.

Domyślnie cały obszar roboczy formularza jest używany jako obszar roboczy (płótno, „płótno”) (bez tytułu, menu głównego i linii przewijania formularza), ale można wydzielić mniejsze obszary robocze wewnątrz formularza za pomocą komponentów pudełko z farbą Lub Obraz. Początek płótna to lewy górny róg obszaru roboczego, szerokość obszaru roboczego zależy od właściwości Szerokość klienta, wysokość - właściwość Wysokość klienta.

Nieruchomości klasa tekstylia:

Płótno:Tcanvas - określa obszar rysowania

Szczotka:Tbrush - pędzel do malowania zamkniętych kształtów

Czcionka:Tfont - czcionka do wyświetlania tekstu na kanwie

długopis:Tpen - ołówek (długopis) do rysowania

PenPoz:Tpoint - aktualna pozycja niewidzialnego kursora na kanwie

Komentarz : Typ Tpoint - zdefiniowany następująco:

Wpisz punkt T = rekord

piksele: Tcolor - ustawia kolory pikseli płótna, X, Y - współrzędne piksela. Właściwość Pixels jest przydatna do kreślenia wykresów przy użyciu punktów o wybranym kolorze.

Główne metody klasy TCanvas

    procedura Przenieś do(x, y: liczba całkowita); - przesuwa pisak bez rysowania linii do punktu o współrzędnych (x, y).

    procedura Linia do(x, y: liczba całkowita); - rysuje linię od aktualnego punktu do punktu o współrzędnych (x, y).

Przykład : Narysuj niebieską ukośną linię na kształcie od lewego górnego rogu kształtu do prawego dolnego rogu.

Kolor pisaka:= clblue;

PrzenieśDo(0,0); LineTo(ClientWidth, ClientHeight);

    procedura Prostokąt(x1,y1,x2,y2: liczba całkowita); - rysuje prostokąt: x1, y1 - współrzędne lewego górnego rogu; x2, y2 - współrzędne prawego dolnego rogu.

Przykład : na środku kształtu narysuj wypełniony żółtym kwadratem o wielkości 60 pikseli.

rozm Xc, Yc: liczba całkowita; //

Xc:=Szerokość klienta div 2;

Xy:=Wysokość klienta div 2;

Płótno.Pędzel.kolor:=clyżółty;

Płótno.prostokąt(xc-30,Yc-30,xc+30,Yc+30);

    procedura Elipsa(x1,y1,x2,y2: liczba całkowita); - rysuje elipsę wpisaną w prostokąt o podanych współrzędnych.

Przykład : narysuj elipsę wpisaną w komponencie PaintBox.

PaintBox1.Canvas.Pen.Width:=4; //szerokość linii = 4 piksele

PaintBox1.Canvas.Ellipse(0,0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

    procedura Wielokąt(); - rysuje zamknięty wielokąt podany przez tablicę współrzędnych.

Przykład : narysuj wypełniony romb łączący środki boków figury

Var Xc, Yc: liczba całkowita; // tworzą współrzędne centrum obszaru klienta

Xc:=Szerokość klienta div 2;

Xy:=Wysokość klienta div 2;

Płótno.Pędzel.Kolor:=Rgb(275,140,70); // Pomarańczowy kolor zacienienie

Płótno.Polygon();

koniec;

    procedura Łuk(x1,y1,x2,y2,x3,y3,x4,y4: liczba całkowita); - wyświetla łuk elipsy ograniczonej prostokątem (x1, y1, x2, y2). Łuk jest wyświetlany od punktu o współrzędnych (x3,y3) do punktu o współrzędnych (x4,y4) przeciwko wskazówka godzinowa.

Przykład : narysuj łuk elipsy łączący środek górnej części komponentu
PaintBox ze środkiem jego prawej strony.

Procedura Tform1.Button1Click(Sender:Tobject);

Var X3,y3,x4,y4: liczba całkowita;

Z PaintBox1 zrób

Płótno.Pen.Kolor:= clBiały;

Płótno.Pióro.Szerokość:= 3;

Canvas.rectangle(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight);

X3:= ClientWidth div 2;

X4:=Szerokość klienta;

Y4:= wysokość klienta div 2;

Płótno.Pen.Color:= clMaroon;

Canvas.ARC(0, 0, PaintBox1.ClientWidth, PaintBox1.ClientHeight, x3, y3, x4, y4);

koniec;

    procedura Akord(x1,y1,x2,y2,x3,y3,x4,y4: liczba całkowita); - rysuje cięciwę - linię prostą łączącą 2 punkty elipsy: punkt o współrzędnych (x3, y3) z punktem (x4, y4).

Przykład : zastąp w przykładzie podanym dla metody ARC metodę Chord i uzyskaj ten wynik.

    procedura Ciasto(x1,y1,x2,y2,x3,y3,x4,y4: liczba całkowita); - rysuje odcinek elipsy łączący środek elipsy ze współrzędnymi (x3,y3) i (x4,y4).

Przykład : przedstaw w przykładzie podanym dla metody ARC metodę PIE i uzyskaj ten wynik.

    procedura tekst(x,y:liczba całkowita;Tekst:łańcuch); - wyświetla ciąg przekazany w parametrze Tekst w postaci prostokąta, którego lewy górny róg jest określony współrzędne x, y. Charakterystykę czcionki ustawia narzędzie Czcionka.

Przykład : wpisz nazwę skonstruowanego grafu na dole formularza.

Płótno.Czcionka.Wysokość:=20 ; // wysokość znaku 20 pikseli

Canvas.Font.Color:=clblue;

Canvas.TextOut(10, ClientHeight-24, 'Wykres funkcji SIN(X)');

Komponenty graficzne

Delphi oferuje szereg gotowych komponentów do ulepszenia interfejs użytkownika. Te komponenty są umieszczane na stronie Dodatkowy I System paleta komponentów.

CzęśćObraz(KlasaCzas) – przeznaczony do wyświetlania obrazów graficznych zapisanych w zewnętrznych plikach o rozszerzeniach:

    Ico(ikona, piktogram);

    bmp (mapa bitowa, mapa bitowa);

    Wmf, .emf (metaplik);

    Jpg, .jpeg (skompresowany obraz JPEG).

Główny nieruchomości :

rozmiar auta:boolean - jeśli true komponent dopasowuje swój rozmiar do rozmiaru ładowanego obrazka; domyślnie fałsz.

Rozciągać się:boolean - jeśli prawda, załadowana wartość zajmuje cały obszar komponentu; wartość domyślna to fałsz.

Płótno:Tcanvas — Służy do rysowania wewnątrz komponentu w czasie wykonywania.

zdjęcie:Tpicture — Określa obraz umieszczony w komponencie.

Główny metody klasa zdjęcie:

procedura Załaduj z pliku(nazwa pliku: ciąg znaków); - ładuje obraz do komponentu z pliku o nazwie Filename.

procedura Zapisz do pliku(nazwa pliku: ciąg znaków); -zapisuje obraz z komponentu do pliku o nazwie NazwaPliku.

Częśćpudełko z farbą - definiuje prostokątny obszar do narysowania. Główną własnością jest Płótno, dostępne są wszystkie metody klasy Tcanvas, nie ma niezależnych właściwości.

Przykład : narysuj elipsę żółty kolor Wpisany w komponencie PaintBox1.

Procedura Tform1Button1Click(nadawca:Tobject);

Z PaintBox1.Canvas zrobić

Pędzel.Kolor:=clyżółty;

Ellipse(0,0,PaintBox1.ClientWidth, PaintBox1.ClientHeight);

koniec;

CzęśćBitBtn przycisk mapy bitowej

Przycisk BitBtn w odróżnieniu od standardowego może zawierać oprócz nazwy (Caption) obrazek określony przez właściwość glif. Istnieje zestaw standardowych przycisków BitBtn, z predefiniowanymi właściwościami (z określonym obrazem, podpisem i przeznaczeniem) - typ standardowego przycisku jest wybierany poprzez właściwość Uprzejmy. Rodzaj=(bkCustom, bkAbort,bkCancel, bkClose...)

Zadanie numer 1

Utwórz aplikację, która zawiera dwa komponenty obrazu i 4 przyciski w głównym formularzu („Prześlij obraz”, „Zbuduj kształt geometryczny”, „Zmień kolor”, „Wyjdź”) i umożliwia:

a) załadowania do komponentu Image1 wybranego przez użytkownika obrazu graficznego w taki sposób, aby zajmował on cały obszar komponentu Image.

b) pod komponentem Obraz1 wyświetl napis „To jest obraz z pliku.

(dla dowolnego pomiaru wymiarów i położenia elementuObraz1 napis musi
być dokładnie poniżej składowej).

c) narysować kształt geometryczny wewnątrz komponentu Image2: wypełniony segment elipsy łączący środek komponentu Image ze środkami dolnej i prawej strony komponentu Image.

(z jakąkolwiek zmianą rozmiaru i położenia komponentuObraz2 figura musi być zbudowana poprawnie, tj. zgodnie z przydziałem dotyczącym komponentuObraz2)

d) zmienić kolor linii figury narysowanej w Image2 na żądanie użytkownika za pomocą komponentu ColorDialog.

Zadanie numer 2

Utwórz aplikację, która umożliwia losowe umieszczanie wielu etykiet w komponencie obrazu (na przykład słowo „Hurra!”). Aby zaimplementować, użyj generatora losowe liczby Randomize i funkcja Random.

Wymiary komponentu Obraz, słowo wyświetlane w Obrazie oraz ilość słów muszą zostać wprowadzone przez użytkownika.

Zadanie numer 3

Utwórz aplikację, która pozwoli Ci wybrać nazwę kształtu geometrycznego z ListBox i narysować wybrany kształt w komponencie Image. Kolor kształtu jest wybierany ze składnika RadioGroup.

Zadanie numer 4

Podziel komponent PaintBox1 na 4 równe części, każdą część pomaluj innym kolorem, np.: niebieskim, żółtym, zielonym, czerwonym.

Obok każdego rogu PaintBox1 wpisz współrzędne tego rogu (względem początku kształtu, w którym znajduje się komponent PaintBox1).

Zadanie numer 5

Z

wybierz typ rysowanej figury z komponentu Radiogroup1, kolor wypełnienia z komponentu Radiogroup2 i narysuj wybraną figurę w komponencie Obraz.

Zadanie numer 6

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podziel komponent PaintBox1 na 2 równe części, wewnątrz każdej części narysuj elipsę wypełnioną kolorem wybranym przez użytkownika w ColorDialog.

Zadanie numer 7

Z stworzyć aplikację pozwalającą na:

wybierz nazwę figury geometrycznej z listy ListBox i narysuj wybraną figurę w komponencie Obraz. Kształt powinien być wypełniony kolorem wybranym przez użytkownika w komponencie ColorDialog, jeśli w komponencie RadioGroup wybrano Yes.

Zadanie numer 8

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podziel komponent PaintBox1 na 4 równe części, wewnątrz każdej części narysuj inny kształt geometryczny (elipsa, romb, trójkąt i prostokąt). Kolor każdego kształtu jest wybierany przez użytkownika w ColorGrid.

Zadanie numer 9

wybierz nazwę geometrii z ListBox
kształty (elipsa, romb, prostokąt) i rysuj
wybrany kształt w komponencie Image. Lokalizacja
kształty w komponencie Image (I ćwiartka, II ćwiartka,

III lub IV ćwiartka) i wybrany kolor wypełnienia figury
z komponentów RadioGroup.

Zadanie numer 10

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podaj, że rozmiar strony nie może być tekstowy, nie może być liczbą ujemną i nie może przekraczać mniejszego rozmiaru formularza.

Podziel komponent PaintBox1 na 4 równe części, wewnątrz każdej części narysuj kształt geometryczny wybrany przez użytkownika w Combobox (elipsa, romb, trójkąt i prostokąt). Kolor kształtu jest wybierany przez użytkownika w ColorBox.

Zadanie numer 11

Stwórz aplikację, która pozwoli Ci:

wybierz pozycję elementu do rysowania z komponentu Radiogroup

w Komponencie obrazu prawego trójkąta ustaw
kolor wypełnienia kształtu lub kolor konturu, w zależności od
włączenie przycisków pola wyboru. Wybór koloru przez
Składnik ColorGrid.

Zadanie numer 12

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podaj, że rozmiar strony nie może być tekstowy, nie może być liczbą ujemną i nie może przekraczać mniejszego rozmiaru formularza.

Podziel komponent PaintBox1 na 2 równe części, wewnątrz jednej z nich narysuj wybraną przez użytkownika figurę geometryczną w Comboboxie (elipsa, romb, trójkąt i prostokąt). Kolor kształtu jest wybierany przez użytkownika w ColorBox.

Na przykład możesz zmienić kolor formularza w następujący sposób:

form1.Color:= ColorBox1.Colors;

Zadanie numer 13

Stwórz aplikację, która pozwoli Ci:

a) narysować kwadrat na środku kształtu (wielkość boku kwadratu wprowadza użytkownik). Podaj, że rozmiar strony nie może być tekstowy, nie może być liczbą ujemną i nie może przekraczać mniejszego rozmiaru formularza.

b) podzielić kwadrat jedną lub dwiema przekątnymi, w zależności od włączenia przycisków Checkbox i zamalować każdy powstały trójkąt innym kolorem. Wyboru koloru dokonuje użytkownik.

Zadanie numer 14

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podaj, że rozmiar strony nie może być tekstowy, nie może być liczbą ujemną i nie może przekraczać mniejszego rozmiaru formularza.

Podziel komponent PaintBox1 na 2 równe części, narysuj romb w jednej części i narysuj dowolny trójkąt w drugiej części. Kolor kształtu jest wybierany przez użytkownika w ColorBox.

Na przykład możesz zmienić kolor formularza w następujący sposób:

form1.Color:= ColorBox1.Colors;

Zadanie numer 15

Stwórz aplikację, która pozwoli Ci:

a) ustawić wymiary komponentu Obraz w poziomie i w pionie na takie same i równe liczbie wprowadzonej przez użytkownika z klawiatury;

(pod warunkiem, że rozmiar boku nie może być tekstowy, nie może być liczbą ujemną i nie może przekraczać mniejszego rozmiaru formularza)

b) podzielić komponent Image na 4 równe kwadraty dwiema niebieskimi liniami;

c) wewnątrz każdego powstałego kwadratu narysować wpisany w niego okrąg (kolor kół może być wybrany przez użytkownika poprzez okno dialogowe wyboru koloru).

Zadanie numer 16

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podaj, że rozmiar strony nie może być tekstowy, nie może być liczbą ujemną i nie może przekraczać mniejszego rozmiaru formularza.

Podziel komponent PaintBox1 na 9 równych części i pomaluj każdy powstały prostokąt szachownicy. Kolor wypełnienia jest wybierany przez użytkownika w ColorBox.

Na przykład możesz zmienić kolor formularza w następujący sposób:

form1.Color:= ColorBox1.Colors;

Zadanie nr 17

Umieść dwa komponenty obrazu i cztery przyciski na formularzu: Kolor linii, Kolor wypełnienia, Ok i Wyjdź; i komponent Edytuj.

Kiedy klikniesz przycisk OK, Image1 rysuje kwadrat o boku X, a Image2 rysuje trójkąt prostokątny o równych bokach, z których każdy ma długość X.

Wierzchołek trójkąta pokrywa się z początkiem Obrazu2. Jeden z wierzchołków kwadratu pokrywa się z początkiem Obrazu1.

Przycisk OK staje się dostępny tylko wtedy, gdy wybrany jest kolor linii i kolor wypełnienia do rysowania kształtu.

X - wybiera losowo, korzystając z funkcji Random, a wartość wartości X powinna zostać wyświetlona w komponencie Edit.

Zadanie numer 18

Utwórz aplikację, która pozwoli użytkownikowi ustawić wymiary komponentu PaintBox1 (w pikselach).

Podziel komponent PaintBox1 na 4 równe części, wewnątrz wybranej przez użytkownika części należy zbudować wypełnione koło, którego rozmiar ustala użytkownik. Użytkownik wybiera kolor wypełnienia w ColorBox.

Na przykład możesz zmienić kolor formularza w następujący sposób:

form1.Color:= ColorBox1.Colors;

Aby wyświetlić informacje graficzne w bibliotece Delphi, dostarczane są komponenty, których listę podano w tabeli. 6.

Tabela 6

Komponenty do wyświetlania informacji graficznych

Część Strona Opis
Obraz (obraz) Dodatkowy Służy do wyświetlania grafiki
PaintBox (okno do rysowania) System Służy do tworzenia obszaru na formularzu, w którym można rysować
DrawGrid (tabela rysunkowa) Dodatkowy Służy do wyświetlania danych nietekstowych w wierszach i kolumnach
Wykres (wykresy i wykresy) Dodatkowy Komponent należy do rodziny komponentów TeeChart, które służą do tworzenia wykresów i wykresów
Chartfx (wykresy i wykresy) ActiveX Edytor wykresów i wykresów
FIBook (strony programu Excel) ActiveX Komponent do wprowadzania i przetwarzania informacji liczbowych
VtChart (wykresy) ActiveX Okno diagramu

Ponadto można wyświetlać i wprowadzać informacje graficzne na powierzchni dowolnego komponentu okna, który ma tę właściwość Płótno- płótno.

Tabele obrazów — komponenty DrawGrid i StringGrid

Część Rysuj siatkę używany do tworzenia tabeli w aplikacji, która może zawierać grafikę. Ten komponent jest podobny do komponentu Siatka sznurkowa, ponieważ ten ostatni pochodzi od siatka rysunkowa. Dlatego w Rysuj siatkę wszystkie właściwości, metody, zdarzenia komponentu są obecne Siatka sznurkowa, inne niż związane z tekstem, tj. poza właściwościami Komórki, Kolumny, wiersze, obiekty. Z tego punktu widzenia składnik Siatka ciągów ma o wiele większy potencjał niż siatka ściągająca, ponieważ może przechowywać zarówno obrazy, jak i teksty w komórkach. A jeśli chcesz wprowadzić tekst do niektórych komórek siatka ściągająca, w tym celu będziesz musiał użyć metod wyprowadzania tekstu na płótno, co nie jest zbyt wygodne.

składniki DrawGrid i StringGrid mieć płótno Płótno, gdzie można umieszczać obrazy.

Istnieje metoda prostownik komórkowy, która zwraca obszar płótna przydzielony dla danej komórki. Ta metoda jest zdefiniowana jako

funkcja CellRect(ACol, ARow: Longint): TRect;

Gdzie ACol i ARow- indeksy kolumn i wierszy, zaczynając od 0, na przecięciu których znajduje się komórka. Obszar zwracany przez tę funkcję to obszar płótna, w którym można narysować żądany obraz. Na przykład operator

DrawGridl.Canvas.CopyRect(DrawGridl.CellRect(1,1),

BitMap.Canvas,Rect(0,0,BitMap.Height,BitMap.Width));

kopie metodą Kopiujprost do komórki (1,1) tabeli Rysuj siatkę obraz z komponentu bitmapa. Ta komórka jest druga od lewej i druga od góry w tabeli, ponieważ indeksy zaczynają się od 0. Zwróć uwagę, że jeśli wymiary komórki są mniejsze niż rozmiar skopiowanego obrazu, to w komórce pojawi się tylko lewa komórka. Górna część Kino.

Komponentowy obraz płótna DrawGrid i StringGrid podobnie jak na kanwie dowolnego komponentu, podlega wymazywaniu, gdy okno aplikacji jest nałożone na inne okna lub np. gdy aplikacja jest zminimalizowana.

Wygodnym sposobem wstawianie obrazów do komórek Rysuj siatkę jest użycie procedury obsługi zdarzeń Narysuj komórkę. Zdarzenia te występują dla każdej komórki tabeli w momencie jej ponownego rysowania. Nagłówek modułu obsługi wygląda następująco:

procedura TForml.DrawGridlDrawCell (nadawca: TObject;

ACol, ARow: liczba całkowita; Prostokąt: TRect; Stan: TGridDrawState)

Parametr Państwo wskazuje stan komórki. Jest to zestaw, który może zawierać następujące elementy: gdWybrano- podświetlona komórka gdSkupiony- komórka, na której znajduje się fokus, gdNaprawiono- komórka w stałym obszarze stołu. Parametr Państwo może służyć do wyświetlania komórek w różny sposób w różnych stanach.

Składnik kształtu

Składnik kształtu można tylko warunkowo przypisać środkom przedstawiania informacji graficznych, ponieważ po prostu przedstawia różne kształty geometryczne, odpowiednio cieniowane. Główną właściwością tego składnika jest kształt(formularz), który może przyjmować następujące wartości:

StRectangle - prostokąt;

StKwadrat - kwadrat;

StRoundRect - prostokąt z zaokrąglonymi rogami;

StRouhdSquare - kwadrat z zaokrąglonymi rogami;

StEllipse - elipsa;

StCircle - koło.

Inną istotną właściwością komponentu jest Szczotka(szczotka). Ta właściwość jest obiektem typu szczotka, posiadające szereg właściwości podrzędnych, w szczególności kolor (Pędzel.Kolor) i styl (Styl pędzla) wypełnienie kształtu. Możesz zobaczyć wypełnienie przy niektórych wartościach stylu na ryc. 3.2. Trzecia ze specyficznych właściwości komponentu kształt- długopis(pióro), które definiuje styl linii.

Składnik wykresu

Teraz rozważ komponent Wykres. Ten komponent pozwala budować różne wykresy i wykresy, które wyglądają bardzo imponująco. Część wykres ma wiele właściwości, metod, zdarzeń, więc jeśli wziąć pod uwagę je wszystkie, to musiałbyś poświęcić temu cały rozdział. Dlatego ograniczamy się do rozważenia tylko głównych cech Wykres. Resztę można znaleźć we wbudowanej pomocy Delphi lub po prostu wypróbować je, eksperymentując z diagramami.

Część wykres jest kontenerem obiektów Seria- potomkowie klas Seria Tchart. Każdy taki obiekt reprezentuje serię danych charakteryzujących się określonym stylem wyświetlania: jednym lub drugim wykresem lub diagramem. Każdy składnik wykres może obejmować kilka serii. Jeśli chcesz wyświetlić wykres, każda seria będzie odpowiadać jednej krzywej na wykresie. Jeśli chcesz wyświetlać wykresy, dla niektórych typów wykresów możesz nałożyć na siebie kilka różnych serii, dla innych (na przykład dla wykresów kołowych) prawdopodobnie będzie to wyglądać brzydko. Jednak w tym przypadku można ustawić dla jednego komponentu wykres kilka serii tych samych danych z inny rodzaj diagramy. Następnie, aktywując jeden z nich w każdym momencie czasu, możesz dać użytkownikowi wybór typu wykresu, na którym będą wyświetlane interesujące go dane.

Umieść jeden lub dwa komponenty wykres na formularzu i spójrz na właściwości, które otwierają się w Inspektorze obiektów. Wyjaśnijmy niektóre z nich.

AllowPanning - określa możliwość przewijania przez użytkownika obserwowanej części wykresu podczas wykonywania poprzez naciśnięcie prawego przycisku myszy. Możliwe wartości: pmNone - przewijanie wyłączone, pmHori/ontal, pm Vertical lub pmBoth - odpowiednio przewijanie dozwolone tylko w poziomie, tylko w pionie lub w obu kierunkach.

AhowZoom - umożliwia użytkownikowi zmianę powiększenia obrazu w czasie wykonywania poprzez wycinanie fragmentów wykresu lub wykresu kursorem myszy. Jeśli ramka fragmentu jest rysowana w prawo iw dół, to ten fragment jest rozciągany na całe pole wykresu. A jeśli ramka zostanie narysowana w lewo, wówczas przywrócona zostanie oryginalna skala.

Tytuł — określa tytuł wykresu.

Stopka - definiuje podpis pod diagramem. Brak domyślnie. Tekst etykiety jest definiowany przez właściwość podrzędną Tekst.

Ramka – definiuje ramkę wokół wykresu.

Obok wielu wymienionych właściwości w Inspektorze obiektów znajdują się przyciski z wielokropkiem, które umożliwiają wywołanie jednej lub drugiej strony Edytora wykresów - wielostronicowego okna, które pozwala ustawić wszystkie właściwości wykresów. Wywołanie Edytora diagramów jest również możliwe poprzez dwukrotne kliknięcie na komponencie wykres lub kliknij na nią kliknij prawym przyciskiem myszy myszy i wybierając polecenie Edytuj wykres z wyskakującego menu.

Kliknij dwukrotnie górny komponent Wykres. Zostaniesz przeniesiony do okna Edytora wykresów na stronę Wykres, która ma kilka zakładek. Przede wszystkim zainteresuje Cię zakładka Seria na nim. Kliknij przycisk Dodaj - dodaj serię. Zostaniesz przeniesiony do okna, w którym możesz wybrać typ wykresu lub wykresu. W ta sprawa wybierz Kołowy — Wykres kołowy. Korzystając z zakładki Tytuły można ustawić tytuł diagramu, zakładka Legenda pozwala ustawić opcje wyświetlania legendy diagramu (listy symboli) lub całkowicie usunąć ją z ekranu, zakładka Panel określa wygląd panelu na którym wyświetlany jest diagram, zakładka 3D umożliwia zmianę wyglądu diagramu: pochylenie, ścinanie, grubość itp.

Gdy pracujesz z Edytorem wykresów i wybrałeś typ wykresu, komponenty wykres Twój formularz wyświetla swój wygląd z wprowadzonymi do niego danymi warunkowymi. Dlatego możesz od razu obserwować wynik zastosowania różnych opcji do swojej aplikacji, co jest bardzo wygodne.

Strona Serii, która również zawiera kilka zakładek, umożliwia wybranie dodatkowych parametrów wyświetlania dla serii. W szczególności dla wykresu kołowego na zakładce Format przydatne jest włączenie opcji Kołowy w kółku, która zapewni wyświetlenie wykresu jako koła przy dowolnej wielkości komponentu Wykres. Na zakładce Oznaczenia przyciski grupy Styl określają, co zostanie zapisane na etykietach powiązanych z poszczególnymi segmentami wykresu: Wartość – wartość, Procent – ​​procenty, Etykieta – nazwy danych itp.

Jeśli chcesz, możesz dodać kolejną identyczną serię do tego komponentu wykresu, klikając przycisk Klonuj na karcie Serie strony Wykres, a następnie dla tej nowej serii kliknij przycisk Zmień i wybierz inny typ wykresu, na przykład Słupkowy .

Wyjdź z Edytora wykresów, wybierz niższy komponent Wykres w swojej aplikacji i powtórz dla niego ustawienia właściwości za pomocą Edytora wykresów. W takim przypadku musisz określić dwie serie, jeśli chcesz wyświetlić dwie krzywe na wykresie, i wybrać typ wykresu liniowego. Ponieważ rozmawiamy Jeśli chodzi o wykresy, możesz użyć zakładek Oś i Ściany, aby ustawić charakterystykę współrzędnych osi i trójwymiarowych ścian wykresu.

Na tym projekcie wygląd aplikacja się kończy. Pozostaje napisać kod określający dane, które chcesz wyświetlić. W przypadku aplikacji testowej zdefiniujmy po prostu pewne stałe dane na wykresie kołowym i niektóre funkcje na wykresach.

Aby ustawić wyświetlane wartości, użyj metod Series. Skupmy się na trzech głównych metodach.

metoda Jasne czyści serię z wcześniej wprowadzonych danych.

metoda Dodać:

Add(Const AValue:Double; Const ALebel:String; AColor:TColor) ,

umożliwia dodanie nowego punktu do wykresu. Parametr Wartość odpowiada wartości dodanej, parametrowi Etykieta- etykietę, która będzie wyświetlana na wykresie oraz w legendzie, Kolor- kolor. Parametr Etykieta- opcjonalnie, może być puste: ‘’. metoda DodajXY:

AddXY(Const AXValue, AYValue: Double; Const ALebel: String; AColor: TColor)

umożliwia dodanie nowego punktu do wykresu funkcji. Opcje Wartość AX I Wartość AY dopasuj argument i funkcję. Opcje ALetykieta i AKolor tak samo jak w metodzie Dodać.

Zatem procedura ładowania danych w naszym przykładzie może wyglądać następująco:

stałaAl=155; A2=251; A3=203; A4=404; var i:słowo; zaczynać

Zacznij od Seriesl

Add(Al,"Sklep l",clŻółty);

Add(A2,"Projekt 2",clBlue);

Add(A3,"Piętro 3",clRed);

Add(A4,"Projekt 4",clPurple); koniec;

Seria 2. Wyczyść; Seria S. Wyczyść; dla i:=0 do 100 zaczynają się

Seria2.AddXY(0,02*Pi*i;sin(0,02*Pi*i)

SeriaS.AddXY(0,02*Pi*i,cos(0,02*Pi*i) koniec;

ClRed); ,clBlue);

Operatorzy Jasne są potrzebne, jeśli zamierzasz aktualizować dane w trakcie działania aplikacji.

To kończy nasze wprowadzenie do komponentu. Wykres. To prawda, rozważaliśmy tylko niewielką część jego możliwości.


„Wyświetlanie informacji graficznych w Delphi” Plan tematyczny: 1.С С pppp oooo ssss oooo bbbb yyyy v v vyyyy vvv oooo dddd aaaa yy grrrr aaaa ffff iii hhhh eeee ssss kkkk oooo yyyy nnnn ffff oooo rrrr mmmm ahhh zzzz iiiiii iiiii c c c c D D D Deee llll pppp hhhh iiii O O tttt ooooh bbbb rrrr aaaa zhzhzhzh eeeee nnnn eeeee eeeee k k k aaaa rrrr tttt nnnn oooo kkkk O O tttt oooo bbbb rrrr ahhh zhzheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeyiii hhhh eeeeesssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanie.


1. Metody wyświetlania informacji graficznych. Istnieje kilka sposobów wyświetlania informacji graficznych w Delphi: Wyjście wstępnie przygotowanych obrazów (komponenty Image, Shape); P Konstrukcja grafów i wykresów (wykres składowy itp.); Obrazowanie F programowo(Obiekt płótna).


2.Wyświetl 2.Wyświetl zdjęcia. Zbadaliśmy wyświetlanie obrazów za pomocą komponentu Image w okresowej zmianie wyświetlanego obrazu w komponentach Image. PPPP EDURRRREEEE YYYE TTTT IIII n N N n AAAAA PP PRRR IIII MMMMEEEE RRRRR ...






3. Wyświetlacz 3. Wyświetlacz kształtów geometrycznych. Możesz tworzyć proste rysunki z kilku komponentów Shape. P Programowo zmieniając położenie (.Left,.Top), rozmiar (.Width,.Height) i kolor (Brush.Color) składowych Shape na rysunku, można zaimplementować elementy najprostszej animacji. R R R R aaaa sssssssssss mmmm oooo tttt rrrr eee tttt b pp pp rrrr iiiiiii mmmm eee rrrr...


4. Konstrukcja 4. Konstrukcja grafów i wykresów. Diagramy są przeznaczone do bardziej wizualnej reprezentacji tablic danych liczbowych, ich wizualnej prezentacji i analizy. RRRR iiiiii mmmm eeee rrrr.... W Delphi jest kilka komponentów do kreślenia wykresów, jednym z nich jest komponent Chart (sekcja TeeChart Std).










Wykresy i diagramy. Dane do wyświetlenia są zwykle przekazywane do wykresu programowo, na przykład: Series1.Clear; (szereg czysty) dla i:=1 do N do Series1.addxy(i, A[i], clGreen); Wartość na osi X Wartość na osi Y Etykieta na osi X Kolor danych na wykresie rrrr rrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaczyli czyli jest rrrrrrrrrrrrrr y y y y y y y y y y = = = = S S S iiii nnnn ((((xxxx)))))


Dalej: Praca laboratoryjna """" OOOO tttt oooo bbbb rrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyly XXXX FFFF IIII GGGG UUUU Rrrrr, i XXXXX A A A ANNNNNNNNNNE MMMM AAAAA AAAAA IIIIIAIA ”” ”” ”” .... Zadanie : 1) rozwijać aplikacja do wykonywania najprostszych animacji poprzez okresową zmianę wyświetlanego obrazu w komponentach obrazu. (Liczba zdjęć to co najmniej trzy, sam wybierz zdjęcia).




Dalej: Praca laboratoryjna """" PPPP oooo ssss tttt rrrr oooo eeee nnnn iiiiii eeeee yy y gr rrrr aaaa ffff iii kkkk oooo vvvv i i dd dd iii AAAA yyyy rrrr aaaa mmmm mmmm """"...Zadanie: 1) Zmodyfikuj aplikację z Praca laboratoryjna 9 (Wyświetl dane w tabeli). Dodaj możliwość wyświetlania niektórych danych z tabeli na wykresie słupkowym lub kołowym. 2) Skonstruować wykres danej funkcji.

Praca z grafiką w Delphi to nie tylko linie i rysunki, ale także drukowanie dokumenty tekstowe. Dlatego w Delphi praca z grafiką trzeba poświęcić trochę czasu. Pracować z grafika w Delphi obejmuje dostęp do płótna - właściwości Canvas komponentów. Płótno Delphi jest to płótno, które pozwala programiście mieć dostęp do każdego punktu (piksela) i, jak artysta, wyświetlać to, co jest potrzebne. Oczywiście rysuj piksel po pikselu pracować z grafiką w Delphi nie jest konieczne, system Delphi zapewnia potężne możliwości narzędzia graficzne które ułatwiają pracę programisty.

Podczas pracy z grafiką w Delphi programista ma do dyspozycji płótno (płótno, płótno - właściwość Płótno Komponenty Delphi), ołówek (property długopis), pędzel (właściwość Brush) komponentu lub obiektu, na którym ma rysować. Przy ołówku długopis i pędzle Szczotka Można zmienić kolor (właściwość Kolor) i styl (właściwość Styl). Dostęp do czcionek zapewnia właściwość canvas Czcionka. Narzędzia te pozwalają wyświetlać zarówno tekst, jak i dość złożone wykresy treści matematycznych i inżynierskich, a także rysunki. Oprócz, pracować z grafiką pozwala na korzystanie z takich zasobów w Delphi Okna jako pliki graficzne i wideo.

Oczywiście nie wszystkie komponenty w Delphi mają te właściwości. Na karcie Dodatkowy zlokalizowany wyspecjalizowany komponent TObraz, specjalnie zaprojektowany do rysowania, ale także właściwość Płótno posiadają np. takie komponenty jak ListBox, ComboBox, StringGrid, a także sam Form, na którym umieszczane są nasze komponenty! Ponadto Delphi wykorzystuje właściwość Canvas obiektu, takiego jak drukarka, do drukowania dokumentów.

Główną właściwością obiektu takiego jak Canvas Delphi jest piksele typ TKolor, czyli jest to dwuwymiarowa tablica punktów (pikseli) określonych przez ich kolor. Rysowanie na płótnie następuje w momencie nadania danego koloru dowolnemu punktowi płótna. Każdemu pikselowi można przypisać dowolny dostępny kolor okien. Na przykład wykonanie instrukcji

Image1.Canvas.Pixels:=clRed;

Spowoduje wylosowanie czerwonej kropki ze współrzędnymi. Możesz uzyskać kolor piksela przez odwrotne przypisanie:

Kolor:=Obraz1.Płótno.Piksele;

Typ TKolor zdefiniowana jako długa liczba całkowita (LongInt). Jego cztery bajty zawierają informacje o proporcjach kolorów niebieskiego (B), zielonego (G) i czerwonego (R). W systemie szesnastkowym wygląda to tak: $00BBGGRR. Proporcja każdego koloru może zmieniać się od 0 do 255. Dlatego, aby wyświetlić maksymalną czerwoną kropkę, należy ją przypisać kolor 000000FF.
Dla kolorów standardowych Delphi definiuje zestaw stałych tekstowych. Możesz to zobaczyć, otwierając właściwość Kolor w Inspektorze obiektów, na przykład tego samego formularza.

Poniższa tabela zawiera niektóre właściwości i metody płótna:

Procedura TextOut(X, Y: liczba całkowita; konst Tekst: szeroki ciąg);
Tworzy ciąg znaków Tekst począwszy od (X, Y) - lewego górnego piksela tekstu.
Szerokość tekstu właściwości ( rozm Tekst: Ciąg znaków): liczba całkowita;
Zawiera długość łańcucha Tekst w pikselach.
Wysokość tekstu właściwości( rozm Tekst: Ciąg znaków): liczba całkowita;
Zawiera wysokość linii Tekst w pikselach.
Procedura MoveTo(X, Y: Integer);
Przesuwa pozycję do piksela o adresie (X, Y).
Procedura LineTo(X, Y: Integer);
Rysuje linię prostą od punktu o aktualnej pozycji do piksela o adresie (X, Y). Adres (X, Y) staje się aktualnym punktem pozycji.
Procedura FillRect( konst Prostokąt: TRect);
Wypełnia prostokąt Prost na płótnie przy użyciu bieżącego pędzla. Może służyć między innymi do wymazania części obrazu na płótnie.

Napiszmy, używając tylko tych metod canvas, aplikację dla obrazu na kanwie komponentu Obraz tekst wprowadzony do komponentu notatka:

Pierwszą rzeczą, którą zrobimy, jest zainicjowanie zmiennych podczas uruchamiania programu. Konieczne jest określenie wymiarów obszaru rysunku (utworzymy do tego zmienną globalną Rect typu TRect) oraz ustawienie koloru tła Obraz biały:

procedura TForm1.FormCreate(Nadawca: TObject);
zaczynać
Prostokąt Lewy:=0;
Góra prostokąta:=0;
Rect.Right:=Obraz1.Szerokość;
Rect.Bottom:=Obraz1.Wysokość;
Image1.Canvas.Brush.Color:=clWhite;
koniec;

Następnie narysuj obramowanie wokół boków obrazu:

procedura TForm1.strona;
zaczynać
z Obraz1.Płótno Do
zaczynać
PrzenieśDo(0, 0);
LineTo(Obraz1.Szerokość-1, 0);
LineTo(Obraz1.Szerokość-1, Obraz1.Wysokość-1);
LineTo(0, Image1.Height-1);
LiniaDo(0, 0);
koniec;
koniec;

Spróbujmy, co się stało. Wszystko działa, ale ramka nie jest jeszcze wyświetlana. Dodajmy więc procedurę strona w procedurze Utwórz formularz. Teraz jest pięknie. Następnie napiszemy prostą procedurę wymazywania, czyszczenia obrazu. Będzie musiał zostać wywołany przed jakąkolwiek aktualizacją obrazu, w przeciwnym razie poprzednie i następne obrazy będą się nakładać.

procedura TForm1.clearing;
zaczynać
Image1.Canvas.FillRect(Rect); //Prostokąt Prost wypełniona bielą, obraz jest wymazany.
koniec;

Teraz kolej na samą procedurę wyjścia tekstu. Zacznijmy wyświetlać tekst od punktu (3, 3) - lewego górnego rogu arkusza, z małym wcięciem na 3 piksele. Każda kolejna linia zostanie przesunięta na wysokość linii:

procedura TForm1.prn;
rozm i: liczba całkowita;
zaczynać
z Obraz1.Płótno Do
Do ja:=1 Do Memo1.Linie.Liczba Do
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
koniec;

Teraz wszystko jest gotowe do wyjścia tekstowego. Zrobimy to przez zdarzenie OnChange:

procedura TForm1.Memo1Change(Nadawca: TObject);
zaczynać
clearing;
prn;
strona;
koniec;

I wreszcie procedura zmiany rozmiaru czcionki:

procedura TForm1.Edit1Change(Nadawca: TObject);
zaczynać
Memo1.Font.Size:=UpDown1.Position;
Image1.Canvas.Font.Size:=UpDown1.Position;
Memo1Change(nadawca);
koniec;

Możesz zmodyfikować ten program, aby drukował tekst. Aby pracować z drukarką, musisz podłączyć moduł drukarki:

jednostka rozdział 1;

Interfejs

używa
Windows, Wiadomości, SysUtils, Warianty, Klasy, Grafika, Kontrolki, Formularze,
Dialogi, StdCtrls, drukarki ;

Podczas pracy z drukarką jako płótnem metoda jest wywoływana w celu rozpoczęcia drukowania. BeginDoc, następnie dokument jest wyprowadzany, drukowanie kończy się wywołaniem metody EndDoc:

Drukarka.BeginDoc;
z Drukarka.Płótno Do
zaczynać
... Drukowanie dokumentu...
koniec;
Drukarka.EndDoc;

Szerokość i wysokość obszaru roboczego drukarki są dostępne we właściwościach Drukarka.Szerokość strony I Drukarka.Wysokość strony. Możesz zakończyć drukowanie na jednej stronie i rozpocząć drukowanie na innej, korzystając z tej metody Drukarka.NowaStrona.

Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl + Enter
UDZIAŁ: