Komponen untuk menampilkan informasi grafis. Menggunakan kemampuan grafis Delphi. Informasi singkat dari teori

Bekerja dengan grafik di Delphi tidak hanya sekedar garis dan gambar, tetapi juga mencetak dokumen teks. Oleh karena itu di Delphi bekerja dengan grafis Anda perlu meluangkan sedikit waktu. Bekerja dengan grafis di Delphi melibatkan akses ke kanvas - properti Canvas dari komponen. Kanvas Delphi ini adalah kanvas yang memungkinkan pemrogram memiliki akses ke setiap titik (piksel) dan, seperti seorang seniman, menampilkan apa yang diperlukan. Tentu saja, menggambar piksel demi piksel bekerja dengan grafis di Delphi tidak diperlukan, sistem Delphi menyediakan kuat alat grafis, membuat tugas programmer lebih mudah.

Saat bekerja dengan grafik di Delphi, programmer memiliki garis besar (kanvas, kanvas - properti Kanvas Komponen Delphi), pensil (properti Pena), kuas (properti Brush) dari komponen atau objek yang ingin Anda lukis. Di pensil Pena dan kuas Sikat Anda dapat mengubah warna (properti Warna) dan gaya (properti Gaya). Akses ke font disediakan oleh properti kanvas huruf. Alat-alat ini memungkinkan Anda menampilkan teks dan grafik konten matematika dan teknik yang cukup kompleks, serta gambar. Selain itu, bekerja dengan grafis memungkinkan Anda untuk menggunakan sumber daya tersebut di Delphi jendela seperti file grafik dan video.

Tentu saja tidak semua komponen di Delphi memiliki sifat tersebut. Di tab Tambahan komponen khusus berada Gambar, dirancang khusus untuk menggambar, tetapi juga properti Kanvas memiliki, misalnya, komponen seperti ListBox, ComboBox, StringGrid, serta Form itu sendiri, yang menempatkan komponen kita! Selain itu, untuk mencetak dokumen, Delphi mengakses properti Canvas dari objek seperti printer.

Properti utama dari objek seperti Canvas Delphi adalah Piksel jenis Warna, yaitu larik titik (piksel) dua dimensi yang ditentukan berdasarkan warnanya. Menggambar di kanvas terjadi pada saat pemberian warna tertentu ke titik mana pun di kanvas. Setiap piksel dapat diberi warna apa pun yang tersedia untuk Windows. Misalnya, mengeksekusi pernyataan

Gambar1.Kanvas.Piksel:=clMerah;

Akan menghasilkan gambar titik merah dengan koordinat. Anda dapat mengetahui warna piksel dengan penugasan terbalik:

Warna:=Gambar1.Kanvas.Piksel;

Jenis Warna didefinisikan sebagai bilangan bulat panjang (LongInt). Empat byte-nya berisi informasi tentang proporsi warna biru (B), hijau (G), dan merah (R). Dalam sistem heksadesimal tampilannya seperti ini: $00BBGGRR. Proporsi setiap warna dapat bervariasi dari 0 hingga 255. Oleh karena itu, untuk menampilkan titik merah maksimum, perlu ditetapkan warna $000000FF.
Untuk warna standar di Delphi, sekumpulan konstanta teks ditentukan. Anda dapat melihatnya dengan membuka properti Warna, misalnya, Formulir yang sama di Object Inspector.

Tabel berikut berisi beberapa properti dan metode kanvas:

Prosedur TextOut(X, Y: Integer; konstanta Teks: WideString);
Menghasilkan keluaran string Teks mulai dari (X, Y) - piksel kiri atas teks.
Properti TextWidth( var Teks: String): Integer;
Berisi panjang string Teks dalam piksel.
Properti TextHeight( var Teks: String): Integer;
Berisi tinggi garis Teks dalam piksel.
Prosedur MoveTo(X, Y: Integer);
Memindahkan posisi ke piksel dengan alamat (X, Y).
Prosedur LineTo(X, Y: Integer);
Menarik garis lurus dari titik posisi saat ini ke piksel dengan alamat (X, Y). Alamat (X, Y) menjadi titik posisi saat ini.
Prosedur IsiRect( konstanta Benar: Benar);
Mengisi persegi panjang Benar di kanvas menggunakan kuas saat ini. Dapat digunakan antara lain untuk menghapus sebagian gambar pada kanvas.

Mari kita menulis, hanya dengan menggunakan metode kanvas ini, aplikasi untuk gambar pada kanvas komponen Gambar teks yang dimasukkan ke dalam komponen Memo:

Hal pertama yang akan kita lakukan adalah menginisialisasi variabel saat program dimulai. Penting untuk menentukan ukuran area gambar (kita akan membuat variabel global Rect bertipe TRect untuk ini) dan mengatur warna latar belakang Gambar putih:

prosedur TForm1.FormCreate(Pengirim: TObject);
mulai
Kanan.Kiri:=0;
Persegi.Atas:=0;
Kanan.Kanan:=Gambar1.Lebar;
Persegi.Bawah:=Gambar1.Tinggi;
Gambar1.Kanvas.Kuas.Warna:=clPutih;
akhir;

Kemudian gambarlah sebuah bingkai di sisi Gambar:

prosedur TForm1.halaman;
mulai
dengan Gambar1.Kanvas Mengerjakan
mulai
Pindah Ke(0, 0);
LineTo(Gambar1.Lebar-1, 0);
LineTo(Gambar1.Lebar-1, Gambar1.Tinggi-1);
LineTo(0, Gambar1.Tinggi-1);
GarisKe(0, 0);
akhir;
akhir;

Mari kita coba apa yang terjadi. Semuanya berfungsi, tetapi bingkainya belum ditampilkan. Oleh karena itu, mari tambahkan prosedur halaman dalam prosedur FormulirBuat. Sekarang indah. Selanjutnya, kami akan menulis prosedur sederhana untuk menghapus dan membersihkan Gambar. Ini perlu dipanggil sebelum pembaruan gambar apa pun, jika tidak, gambar sebelumnya dan berikutnya akan tumpang tindih.

prosedur TForm1.kliring;
mulai
Gambar1.Canvas.FillRect(Rect); //Persegi panjang Benar diisi dengan warna putih dan gambar terhapus.
akhir;

Sekarang giliran prosedur keluaran teks itu sendiri. Mari kita mulai menggambar teks dari titik (3, 3) - sudut kiri atas lembar, dengan sedikit lekukan sebesar 3 piksel. Setiap baris berikutnya akan diimbangi dengan tinggi garis:

prosedur TForm1.prn;
var saya: Bilangan bulat;
mulai
dengan Gambar1.Kanvas Mengerjakan
untuk saya:=1 ke Memo1.Garis.Hitungan Mengerjakan
TextOut(3, 3+(i-1)*TextHeight("A"), Memo1.Lines);
akhir;

Sekarang semuanya siap untuk menampilkan teks. Kami akan melakukan ini menggunakan acara OnChange:

prosedur TForm1.Memo1Change(Pengirim: TObject);
mulai
pembersihan;
prn;
halaman;
akhir;

Dan terakhir, tata cara mengubah ukuran font:

prosedur TForm1.Edit1Change(Pengirim: TObject);
mulai
Memo1.Font.Size:=UpDown1.Posisi;
Gambar1.Kanvas.Font.Ukuran:=UpDown1.Posisi;
Memo1Ubah(Pengirim);
akhir;

Anda dapat memodifikasi program ini untuk mencetak teks. Untuk bekerja dengan printer, Anda perlu menghubungkan modul pencetak:

satuan Unit1;

Antarmuka

kegunaan
Windows, Pesan, SysUtils, Varian, Kelas, Grafik, Kontrol, Formulir,
Dialog, StdCtrls, pencetak ;

Saat bekerja dengan printer sebagai kanvas, metode ini dipanggil untuk mulai mencetak MulaiDok, kemudian dokumen dikeluarkan, pencetakan diselesaikan dengan memanggil metode tersebut Dokumen Akhir:

Printer.BeginDoc;
dengan Printer.Kanvas Mengerjakan
mulai
...Cetak dokumen...
akhir;
Printer.EndDoc;

Lebar dan tinggi web printer tersedia melalui properti Printer.Lebar Halaman Dan Printer.Tinggi Halaman. Anda dapat menyelesaikan pencetakan pada satu halaman dan mulai mencetak pada halaman lain menggunakan metode ini Printer.Halaman Baru.


“Menampilkan informasi grafis dalam Delphi” Garis besar topik: 1.C S pppp ooooo ssss ooooo bbbb yyyy in in in yyyy vvvv ooooo dddd aaaa yy g rrrrr aaaa fff iii hhhh eee ssss kkkk ooooo yyyy nnnn ffff ooo rrr r mmmm ahhh tskst iiiiii iiiiii in vv dalam D D D D eeee llll pppp hhhh iiii O O tttt ooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k aaaa rrrrr tttt iiii nnnn ooooo kkkk O O tttt ooo bbbb rrrrr aaa zhzhzh dia nnnn iiiiii eeee y y g eee ooooo mmmm eee ttt rrrr eeee hhhh eee ssss kkkk iiiiii xxxx ffff iii yyyy uuuu rrrrr P Pooooh ssss tttt rrrrr ooooo eeee nnnn eeee yy y g rrrrr aaaa ffff iii kkkk oooo vvvv i dan dan d d d Aaaaaa yyyy rrrr aaaa mmmm mmmm....


1. Metode menampilkan informasi grafis. Di Delphi, ada beberapa cara untuk menampilkan informasi grafis: Output gambar yang telah disiapkan sebelumnya (komponen Gambar, Bentuk); P Konstruksi grafik dan diagram (Komponen bagan, dll.); F Pembentukan gambar secara terprogram (objek Canvas).


2.Tampilan 2.Tampilkan gambar. Tampilan gambar menggunakan komponen IMAGE yang kami periksa di LLC DDDD DDDD LLC Yiyy dan dan dan ZZZZ P P P PRRRDDDDDDDDDDDDDD IIII XXXX T T T T T T T T T T T T T T TOTEMMM .... Di sini kita akan mempertimbangkan contoh animasi paling sederhana yang secara berkala mengubah gambar yang ditampilkan di komponen Gambar . PPPP eee rrrrr eee yyyytttttttttttttttttttttttttttttttttttttttttttttttttoeee nnnn aaaaaaaaaaaaaaaaaaaaaaaaaaaa






3.Tampilan 3.Tampilan bentuk geometris. DAN Dari beberapa komponen Bentuk Anda dapat membuat gambar sederhana. P Dengan mengubah posisi (.Left,.Top), ukuran (.Width,.Height) dan warna (Brush.Color) komponen Bentuk secara terprogram dalam gambar, Anda dapat mengimplementasikan elemen animasi paling sederhana. R R R R aaaa ssssssss mmmm ooooh tttt rrrrr eee tttt yee p p p p rrrrr iii mmmm eee rrrrr....


4.Konstruksi 4.Konstruksi grafik dan diagram. Diagram dirancang untuk representasi yang lebih visual dari susunan data numerik, tampilan visual dan analisisnya. PPPP rrrrr iiii mmmm eee rrrrr.... Untuk membuat chart di Delphi ada beberapa komponen, salah satunya adalah komponen Chart (bagian TeeChart Std).










Grafik dan diagram. Data yang akan ditampilkan biasanya diteruskan ke Chart secara terprogram, contoh: Series1.Clear; (hapus seri) untuk i:=1 hingga N do Series1.addxy(i, A[i], clGreen); Nilai sumbu X Nilai sumbu Y Label sumbu X Warna data pada bagan PPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa. y y y = = = = S S S S iiii nnnn ((((xxxx))))


Berikutnya: Pekerjaan laboratorium ““”“ OOOO tttt ooooo bbbb rrrrr aaaa zhzhzh eee nnnn iiii eee k k k k aaaa rrrrr tttt iiii nnnnn ooooo kkkk i i i yyyy eee ooooo mmmm eee tttt rrrrr iiii hchchh eee ssss kkkk iiii xxxx ffff iiii yyyy rrrr, dan dan dan xxxx a a a a nnnnn iiii mmmm aaaa tsstst iiii yayayaya """"...Tugas: 1) Mengembangkan aplikasi untuk melakukan animasi sederhana dengan mengubah gambar yang ditampilkan di komponen Gambar secara berkala. (Jumlah gambar minimal tiga, pilih sendiri gambarnya).




Berikutnya: Pekerjaan laboratorium ““”“ PPPP oooo ssss tttt rrrrr ooooo eee nnnn iiii eee yy g rrrrr aaaa ffff iiii kkkk ooooo vvvv i i i d d d iiii aaaa yyyy rrrrr aaaa mmmm mmmm ..Tugas: 1)M memodifikasi aplikasi dari pekerjaan laboratorium 9 (Menampilkan data dalam tabel). Tambahkan kemampuan untuk menampilkan beberapa data dari tabel dalam histogram atau diagram lingkaran. 2) Buatlah grafik dari fungsi yang diberikan.

Deskripsi presentasi berdasarkan slide individual:

1 slide

Deskripsi slide:

2 geser

Deskripsi slide:

Lingkungan pemrograman visual Delphi, seperti Windows, mendukung antarmuka pengguna grafis (GDI - Graphic Delphi Interface). Di Delphi, ada dua cara untuk menampilkan informasi grafis: menampilkan gambar yang telah disiapkan sebelumnya; menggambar dari program.

3 geser

Deskripsi slide:

Metode pertama didasarkan pada penggunaan komponen Image dan Shape. Anda dapat menggunakan gambar (ikon) yang sudah jadi atau membuatnya sendiri menggunakan Editor Gambar. Cara kedua adalah menghasilkan gambar secara terprogram menggunakan objek Canvas.

4 geser

Deskripsi slide:

Delphi memiliki objek khusus, yang ditata sebagai properti Canvas. Ini hanya tersedia ketika aplikasi sedang berjalan, sehingga hanya dapat dikontrol dari dalam program dengan menulis kode yang diperlukan dalam Object Pascal. Jika suatu objek memiliki properti Canvas, Anda dapat menggambar pada permukaannya. Kandidat yang paling cocok untuk peran ini adalah formulir itu sendiri dan komponen khusus PaintBox.

5 geser

Deskripsi slide:

Properti objek kanvas: Pena – properti untuk menggambar garis dan batas bentuk geometris. Pena mengikuti perintah kursor grafis dan, pada gilirannya, memiliki properti bersarangnya sendiri: Warna – menentukan warna garis (hitam secara default); Mode – gaya menggambar (memiliki banyak arti yang tidak diberikan di sini); Gaya – gaya garis, yang dapat mengambil nilai berikut: рsSolid – padat (default); рsDosh – putus-putus; psDot – putus-putus; рsDoshDot – garis putus-putus (dan properti lainnya); Lebar – ketebalan garis (default 1 piksel);

6 geser

Deskripsi slide:

Brush – properti untuk mengisi bentuk dengan properti bertingkat berikut: Color – warna brush (putih secara default); Style – pola kuas, yang dapat memiliki nilai berikut: bsClear – pewarnaan solid; bsHorizontal – garis horizontal; bsVertikal – garis vertikal; bsFDiagonal – garis diagonal kiri; bsBDiagonal – garis diagonal kanan; bsCross – sel; bsDiagCross – sel miring;

7 geser

Deskripsi slide:

Font – properti untuk menampilkan teks yang memiliki properti bertingkat berikut: Warna – warna karakter; Tinggi – tinggi font dalam piksel; Nama – nama font; Ukuran – ukuran font; Gaya – gaya font, yang dapat mengambil nilai berikut: fsBold – tebal; fsItalic – miring; fsUnderline – digarisbawahi; fsStrikeOut – dicoret;

8 geser

Deskripsi slide:

PenPos (Posisi Pena) – properti untuk menyimpan posisi gambar saat ini (menentukan posisi pena di area gambar pada waktu tertentu); Piksel – properti array untuk menulis dan membaca koordinat masing-masing titik pada area gambar (“kanvas”).

Geser 9

Deskripsi slide:

Metode objek Canvas MoveTo(x,y: integer) – memindahkan pena dari posisi saat ini ke titik dengan koordinat x, y yang ditentukan tanpa menggambar garis; LineTo(x.y: integer) - memindahkan pena dari posisi saat ini ke titik dengan koordinat tertentu x, y, menggambar garis; Arc(x1, y1, x2, y2, x3, y3, x4, y4: integer) – menggambar busur elips pada persegi panjang dengan koordinat (x1, y1) dan (x2, y2). Busur ditentukan oleh jari-jari elips yang melalui titik (x3,y3) dan (x4,y4);

10 geser

Deskripsi slide:

Chord(x1, y1, x2, y2, x3, y3, x4, y4: integer) – menggambar chord elips sesuai dengan deskripsi yang diberikan untuk metode Arc; Ellipse(x1, y1, x2, y2: integer) – menggambar elips pada persegi panjang dengan sudut kiri atas di titik (x1, y1) dan sudut kanan bawah di titik (x2, y2); FillRect(Rect (x1, y1, x2, y2: integer)) – mengisi persegi panjang dengan warna yang ditentukan dalam Brush saat ini. Menggunakan fungsi Rect, yang mewakili persegi panjang pada koordinat tertentu;

11 geser

Deskripsi slide:

FloodFill(x,y: integer; Color: TColor; FillStyle: TFillStyle) – mengisi dengan warna saat ini yang ditentukan dalam properti Brush: dengan FillStyle=fsBorder – area tertutup dari titik dengan koordinat x, y hingga batas yang ditentukan oleh Warna; dengan FillStyle=fsSurface – bagian permukaan yang memiliki warna Color; Pie(x1, y1, x2, y2, x3, y3, x4, y4: integer) – menggambar sektor elips pada persegi panjang dengan koordinat (x1, y1) dan (x2, y2). Sektor tersebut ditentukan oleh dua jari-jari elips yang melalui titik (x3, y3) dan (x4, y4);

12 geser

Deskripsi slide:

Polyline (Points: array of TPoint) – menggambar polyline, menghubungkan titik-titik array Points secara berurutan; Poligon (Titik: larik TPoint) – menggambar poligon dengan menghubungkan titik-titik dalam larik Poin secara berurutan. Ini berbeda dari metode Polyline karena metode ini secara otomatis menghubungkan ujung polyline ke awalnya; Persegi Panjang (x1, y1, x2, y2: bilangan bulat) – menggambar persegi panjang dengan sudut kiri atas di titik (x1, y1) dan sudut kanan bawah di titik (x2, y2);

Geser 13

Deskripsi slide:

Retresh – metode ini dipanggil ketika diperlukan untuk menggambar ulang gambar; RoundRect (x1, y1, x2, y2, x3, y3: integer) – menggambar persegi panjang dengan sudut membulat. Sudut-sudutnya digambar berbentuk seperempat elips dengan lebar x3 dan tinggi y3; TextOut (x, y:integer, Text:String) – menampilkan teks yang ditentukan dalam parameter Teks. Teks ditempatkan dalam persegi panjang yang sudut kiri atasnya memiliki koordinat x, y.

Subjek :
Tujuan pekerjaan laboratorium Delfi.

Siswa harus belajar:

  • Buat grafik

Bagian teoritis

Piktogram Nama Halaman Tujuan
Gambar Tambahan
Membentuk Tambahan
DrawGrid

(tabel gambar)

Tambahan
Bagan

(bagan dan grafik)

Tambahan
Kotak cat

(jendela gambar)

Sistem

Membentuk Sikat

Gambar:

Bagan:

Metode Jernih

Metode Menambahkan

Metode TambahkanXY

Kotak cat:

Latihan 1

Tugas 2

Tugas 3

dengan PaintBox1, kanvas bisa

Kuas.Warna:= clMerah;

Pena.Warna:= clHijau;

Pena.Gaya:= psDash;

Pena.Warna:= clMerah;

Penjelasan:

Latihan 4

Var i: bilangan bulat;

Seri 1. Hapus;

untuk i:=0 hingga 22 lakukan

Seri1.TambahkanXY(saya*0.29.10*dosa(i*0,29),,clHijau);, Di mana i*0,29 (Nilai AX) ini adalah argumen dan 10* dosa(i*0,29) (Nilai AY)

  1. kamu=3,2*(14*x)
  2. y=dosa(x)
  3. y=cos(x)
  4. kamu=x 2 +cos(x)
  5. kamu=x 2 -4,5*4

Latihan 5

dengan ComboBox1 dimulai

Item:=Layar.Font;

  1. Simpan dan jalankan proyek.
  1. Tugas untuk bekerja.
  2. Tempelkan kode yang Anda tulis
  3. Kesimpulan tentang pekerjaan yang dilakukan. Subjek : Penggunaan kemampuan grafis.

    Tujuan pekerjaan laboratorium– Kenali kemampuan grafisnya Delfi.

    Siswa harus belajar:

    • Buat hal-hal grafis apa pun J
    • Gunakan kemampuan grafis
    • Gunakan kemampuan grafis
    • Buat grafik

    Bagian teoritis

    Delphi memungkinkan Anda mengembangkan aplikasi yang dapat menampilkan grafik: diagram, gambar, ilustrasi. Untuk menampilkan informasi grafis, perpustakaan Delphi menyediakan komponen, daftarnya diberikan dalam tabel berikut:

    Piktogram Nama Halaman Tujuan
    Gambar Tambahan Digunakan untuk menampilkan grafik: ikon, bitmap, dan metafile
    Membentuk Tambahan Digunakan untuk membangun primitif geometris
    DrawGrid

    (tabel gambar)

    Tambahan Digunakan untuk membuat tabel dalam aplikasi yang dapat berisi grafik
    Bagan

    (bagan dan grafik)

    Tambahan Digunakan untuk membuat bagan dan grafik
    Kotak cat

    (jendela gambar)

    Sistem Digunakan untuk membuat beberapa area pada formulir di mana Anda bisa menggambar

    Selain itu, Anda dapat menampilkan dan memasukkan informasi grafis pada permukaan komponen jendela mana pun yang memiliki properti Canvas. Gambar yang dibuat saat aplikasi dijalankan dapat berupa gambar diam atau animasi.

    Membentuk : hanya dapat diklasifikasikan secara kondisional sebagai sarana untuk menampilkan informasi grafis, karena ia hanya mewakili berbagai bentuk geometris, yang diberi warna yang sesuai. Properti utama komponen ini adalah Bentuk, yang dapat mengambil nilai Sikat(sikat) – properti ini adalah objek bertipe TBrush yang memiliki sejumlah sub-properti, khususnya: warna (Brush.Color) dan gaya (Brush.Style) dari isian bentuk. Properti spesifik ketiga dari komponen Bentuk adalah Pena, yang menentukan gaya garis.

    Gambar: properti utama: Picture – bertanggung jawab untuk memuat gambar, Stretch – bertanggung jawab atas ukuran gambar dalam komponen Image, AutoSize – bertanggung jawab atas ukuran komponen tempat gambar dimuat, dengan mempertimbangkan ukuran gambar.

    Bagan: Untuk mengatur nilai yang ditampilkan, Anda harus menggunakan metode Seri. Mari kita lihat tiga di antaranya.

    Metode Jernih menghapus serangkaian data yang dimasukkan sebelumnya.

    Metode Menambahkan: – Tambahkan(Nilai Konstan: Ganda; Label Konstan: String; AWarna: TWarna)

    memungkinkan Anda menambahkan titik baru ke diagram. Parameter AValue sesuai dengan nilai tambah fungsi, dan nilai argumen fungsi terisi secara otomatis, sehingga tidak perlu ditentukan, parameter ALabel adalah nama yang akan ditampilkan pada diagram dan legenda , AColor adalah warnanya. Parameter ALabel bersifat opsional, dapat disetel kosong: ".

    Metode TambahkanXY– AddXY(Const AXValue, AYValue: Ganda; Const ALabel: String; AColor: TColor)

    memungkinkan Anda menambahkan titik baru ke grafik fungsi. Parameter AXValue dan AYValue sesuai dengan argumen dan fungsi. Parameter ALabel dan AColor sama seperti pada metode Add.

    Kotak cat: terletak di halaman Sistem. Ini adalah jendela sederhana dengan garis besar tempat Anda dapat menggambar gambar sewenang-wenang. Alat grafis terdapat dalam properti Font, Brush dan Pen. Kanvas terkandung dalam properti Canvas komponen. Gambarnya sendiri diprogram di event handler onPaint.

    Latihan 1

    1. Buat program yang memperkenalkan Anda pada komponen Image. Komponen berikut harus ditempatkan: Label, Gambar, BitBtn, Tombol. Masuk seperti pada gambar dan unggah gambar apa pun. Sesuaikan komponen sehingga di Gambar1 gambar pas dengan bingkai, dan di Gambar2 gambar sesuai ukurannya. Buat keterangan alat, saat Anda mengarahkan kursor ke setiap gambar, properti Petunjuk bertanggung jawab atas petunjuk; untuk menampilkan, Anda perlu memasukkan teks dan mengaktifkan petunjuk di properti ShowHint.

    Tugas 2

    1. Tingkatkan ukuran formulir dan tambahkan komponen: Bentuk, Label. Berlangganan.
    2. Terapkan gaya ke setiap komponen Bentuk sesuai dengan gambar:

    Tugas 3

    1. Sebagai contoh, mari kita tempatkan komponen PaintBox pada form. penangan onPaint:

    dengan PaintBox1, kanvas bisa

    Kuas.Warna:= clMerah;

    Pai(12.100.140.280.12.100.140.280);

    Pena.Warna:= clHijau;

    Pena.Gaya:= psDash;

    Persegi Panjang (120,60, Lebar, Tinggi);

    Pena.Warna:= clMerah;

    poliline();

    TextOut(75,20,’Teks Anda mungkin ada di sini!’);

    Penjelasan: Baris pertama mengatur warna isian: Brush.Color:= clRed; Yang kedua menggambar bagian dari elips: Pie(12,100,140,280,12,100,140,280); Baris berikut menentukan parameter pena (jenis batas bentuk yang akan dimiliki), lebar, warna dan gaya garis: Pena.Lebar:= 4; Pena.Warna:= clHijau; Pena.Gaya:= psDash; Namun dalam hal ini kita akan melihat satu garis padat, karena jika ketebalannya lebih dari satu piksel maka gaya garisnya akan menjadi psSolid (padat). Baris berikut bertanggung jawab untuk menggambar persegi: Rectangle(120,60,Width,Height); Bintang merah digambar dengan perintah berikut: Polyline(); Baris terakhir bertanggung jawab untuk menampilkan teks: TextOut(75,20,'Teks Anda mungkin ada di sini!');

    Latihan 4

    1. Buatlah program yang membuat grafik fungsi y=10*sin(x)

    1. Perbesar formulir dan tempatkan komponen TСhart dari tab Tambahan di atasnya, dan tempatkan komponen Tombol, Label. Regangkan TСhart baru ke ukuran yang sesuai untuk pengembangan.
    2. Buka editor grafik dengan mengklik dua kali pada komponen. Mengedit dan menyesuaikan tampilan Seri. Untuk melakukannya, klik Tambah dan pilih jenis grafik Garis dan klik OK. Untuk mengganti judul, klik Judul dan masukkan rumus y=10*sin(x).
    3. Tuliskan kode untuk menggambar grafik di event OnClick komponen Button:

    Var i: bilangan bulat;

    Seri 1. Hapus;

    untuk i:=0 hingga 22 lakukan

    Seri1.TambahkanXY(i*0.29,10*sin(i*0.29),,”,clHijau);

    Penjelasan : Metode Seri 1. Jelas; menghapus rangkaian data yang dimasukkan sebelumnya sehingga saat diperbarui tidak ada nilai lama. Untuk menggambar grafik, diperlukan nilai, dalam kasus kita 22 nilai, yang grafiknya digambar oleh fungsi Seri1.TambahkanXY(saya*0.29.10*dosa(i*0,29),,clHijau);, Di mana i*0,29 (Nilai AX) ini adalah argumen dan 10* dosa(i*0,29) (Nilai AY) nilai perhitungan fungsi, ” (ALabel) nama yang akan ditampilkan pada diagram dan legenda boleh dikosongkan, dan clGreen (AColor) – warna garis.

    1. Selesaikan tugas berikut secara mandiri: buatlah grafik fungsi
    2. kamu=3,2*(14*x)
    3. y=dosa(x)
    4. y=cos(x)
    5. kamu=x 2 +cos(x)
    6. kamu=x 2 -4,5*4

    Latihan 5

    1. Buat aplikasi yang memungkinkan Anda melihat karakter font sistem.
    2. Perbesar form, letakkan DrawGrid1, ComboBox1, Label. Siapkan properti berikut untuk komponen DrawGrid1: RowCount=7, ColCount=32, FixedCols=0, FixedRows=0, DafaultColWidth=20, DefaultRowHeight=20.
    3. Agar konten setiap sel digambar ulang, buat event handler OnDrawCell untuk komponen DrawGrid1. Untuk menampilkan karakter font, kita akan menggunakan properti Canvas dari komponen DrawGrid1. Kita secara langsung memerlukan metode TextRect pada properti Canvas. Metode ini digunakan untuk menampilkan informasi teks dalam sel tertentu. Pengendali acara akan terlihat seperti ini:

    DrawGrid1.Canvas.textrect(persegi, Rect.Left, Rect.Top, char ((ARow+1)*32+acol));

    1. Simpan proyek. Pastikan sel tabel menampilkan karakter dari font default sistem.
    2. Untuk memilih font, kita akan menggunakan komponen ComboBox1. Agar komponen ini memuat semua font layar, Anda perlu menambahkannya ke daftar saat membuat formulir. Nama semua font layar dapat ditemukan menggunakan variabel Layar global bertipe TScreen. Variabel ini secara otomatis ditambahkan ke semua aplikasi Delphi. Variabel Layar berisi informasi tentang keadaan layar aplikasi saat ini: nama formulir dan modul data yang digunakan oleh aplikasi; data tentang formulir aktif dan komponen-komponen yang digunakan formulir ini; ukuran dan resolusi layar yang digunakan; informasi tentang kursor dan font yang tersedia untuk aplikasi. Informasi tentang font yang tersedia untuk aplikasi terdapat dalam properti Font, yang termasuk dalam variabel Layar.
    3. Buat event handler onCreate untuk formulir dan tambahkan pernyataan berikut ke dalamnya:

    dengan ComboBox1 dimulai

    Item:=Layar.Font;

    ItemIndex:=Items.IndexOf(Font.Nama);

    1. Simpan dan jalankan proyek. Komponen DrawGrid1 berisi karakter dari font yang diinstal di ComboBox1.
    2. Untuk mengikat nilai nama font DrawGrid1 dan ComboBox1, mari buat event handler lain:

    DrawGrid1.Font.Nama:=ComboBox1.Teks;

    1. Simpan dan jalankan proyek.
    1. Nomor, topik, tujuan pekerjaan laboratorium.
    2. Tugas untuk bekerja.
    3. Deskripsi data masukan, perantara, dan hasil yang menunjukkan jenisnya.
    4. Program dalam bahasa pemrograman.
    5. Hasil eksekusi program (Input data dan data yang diterima)
    6. Tempelkan kode yang Anda tulis
    7. Kesimpulan tentang pekerjaan yang dilakukan.

Untuk menampilkan informasi grafis, perpustakaan Delphi menyediakan komponen, daftarnya diberikan dalam tabel. 6.

Tabel 6

Komponen untuk menampilkan informasi grafis

Komponen Halaman Keterangan
Gambar Tambahan Digunakan untuk menampilkan grafik
PaintBox (jendela untuk menggambar) Sistem Digunakan untuk membuat beberapa area pada formulir di mana Anda bisa menggambar
DrawGrid (tabel gambar) Tambahan Digunakan untuk menampilkan data non-teks dalam baris dan kolom
Bagan (bagan dan grafik) Tambahan Komponen ini termasuk dalam keluarga komponen TeeChart, yang digunakan untuk membuat bagan dan grafik
Chartfx (grafik dan grafik) AktifX Editor bagan dan grafik
FIBook (halaman Excel) AktifX Komponen input dan pemrosesan informasi numerik
VtChart (grafik) AktifX Jendela pembuatan diagram

Selain itu, Anda dapat menampilkan dan memasukkan informasi grafis pada permukaan komponen jendela mana pun yang memiliki properti tersebut Kanvas- kanvas.

Tabel Gambar - Komponen DrawGrid dan StringGrid

Komponen DrawGrid digunakan untuk membuat tabel dalam aplikasi yang dapat berisi gambar grafik. Komponen ini mirip dengan komponen StringGrid karena yang terakhir berasal dari DrawGrid. Oleh karena itu di DrawGrid semua properti, metode, peristiwa komponen ada StringGrid kecuali yang berkaitan dengan teks, yaitu. kecuali properti Sel, Kolom, Baris, Objek. Dari sudut pandang ini, komponennya StringGrid memiliki kemampuan yang jauh lebih besar daripada DrawGrid karena dapat menyimpan gambar dan teks dalam sel. Dan jika Anda ingin memasukkan teks di beberapa sel DrawGrid maka Anda perlu menggunakan metode untuk menampilkan teks pada kerangka untuk ini, yang sangat tidak nyaman.

Komponen DrawGrid dan StringGrid memiliki garis besar Kanvas, di mana Anda dapat memposting gambar.

Ada sebuah metode sel-persegi, yang mengembalikan area kanvas yang dialokasikan untuk sel tertentu. Metode ini didefinisikan sebagai

fungsi CellRect(ACol, Arow: Longint): TRect;

Di mana ACol dan Arow- indeks kolom dan baris mulai dari 0, di perpotongan sel tersebut berada. Area yang dikembalikan oleh fungsi ini adalah area kanvas di mana gambar yang diinginkan dapat digambar. Misalnya saja operatornya

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

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

metode salinan SalinRek ke sel (1,1) tabel Gambar Gridl gambar dari komponen BitMap. Sel ini berada di urutan kedua dari kiri dan kedua dari atas tabel, karena indeks dimulai dari 0. Perlu diperhatikan bahwa jika sel lebih kecil dari ukuran gambar yang disalin, maka hanya bagian kiri atas gambar yang akan muncul di sel.

Gambar di kanvas komponen DrawGrid dan StringGrid, seperti pada kanvas komponen apa pun, komponen tersebut dapat dihapus saat jendela aplikasi tumpang tindih dengan jendela lain atau, misalnya, saat aplikasi diminimalkan.

Cara mudah untuk memasukkan gambar ke dalam sel DrawGrid adalah dengan menggunakan pengendali acara DiDrawCell. Peristiwa ini terjadi untuk setiap sel tabel pada saat digambar ulang. Header pengendali terlihat seperti:

prosedur TForml.DrawGridlDrawCell(Pengirim: TObject;

ACol, ARow: Integer; Benar: Benar; Negara: TGridDrawState)

Parameter Negara menunjukkan keadaan sel. Ini adalah satu set yang dapat berisi elemen-elemen berikut: gdDipilih- sel yang dipilih, gdFokus- sel yang menjadi fokus, gdTetap- sel di area tetap pada tabel. Parameter Negara dapat digunakan untuk menampilkan sel secara berbeda di negara bagian yang berbeda.

Komponen Bentuk

Komponen Bentuk hanya dapat diklasifikasikan secara kondisional sebagai sarana untuk menampilkan informasi grafis, karena ia hanya mewakili berbagai bentuk geometris, dengan warna yang sesuai. Properti utama dari komponen ini adalah Membentuk(bentuk), yang dapat mengambil nilai berikut:

StRectangle – persegi panjang;

StSquare – persegi;

StRoundRect - persegi panjang dengan sudut membulat;

StRouhdSquare - persegi dengan sudut membulat;

StEllipse – elips;

StLingkaran - lingkaran.

Properti penting lainnya dari komponen ini adalah Sikat(sikat). Properti ini adalah objek bertipe sikat, memiliki sejumlah sub-properti, khususnya warna (Kuas.Warna) dan gaya (Sikat.Gaya) mengisi gambar. Anda dapat melihat isian untuk beberapa nilai Style pada Gambar. 3.2. Properti spesifik ketiga dari komponen Membentuk- Pena(pena) yang mendefinisikan gaya garis.

Komponen Bagan

Sekarang mari kita lihat komponennya Bagan. Komponen ini memungkinkan Anda membuat berbagai bagan dan grafik yang terlihat sangat mengesankan. Komponen Bagan memiliki banyak properti, metode, peristiwa, sehingga jika kita mempertimbangkan semuanya, kita harus mencurahkan satu bab penuh untuk membahasnya. Oleh karena itu, kami akan membatasi diri untuk hanya mempertimbangkan ciri-ciri utama saja Bagan. Anda dapat menemukan sisanya di bantuan bawaan Delphi, atau mencobanya dengan bereksperimen dengan diagram.

Komponen Bagan adalah wadah benda Seri- pewaris kelas Seri TChart. Setiap objek tersebut mewakili serangkaian data yang dicirikan oleh gaya tampilan tertentu: grafik atau diagram tertentu. Setiap komponen Bagan mungkin mencakup beberapa episode. Jika Anda ingin menampilkan grafik, maka setiap rangkaian akan berhubungan dengan satu kurva pada grafik. Jika Anda ingin menampilkan bagan, untuk beberapa jenis bagan Anda dapat melapisi beberapa rangkaian berbeda di atas satu sama lain, untuk jenis bagan lainnya (seperti diagram lingkaran) mungkin akan terlihat jelek. Namun, meskipun demikian, Anda dapat menyetel untuk satu komponen Bagan beberapa rangkaian data yang sama dengan tipe grafik yang berbeda. Kemudian, dengan mengaktifkan salah satunya setiap saat, Anda dapat memberi pengguna pilihan jenis bagan yang menampilkan data yang mereka minati.

Tempatkan satu atau dua komponen Bagan pada formulir dan lihat properti yang terbuka di Object Inspector. Berikut beberapa penjelasan beberapa diantaranya.

AllowPanning - menentukan kemampuan pengguna untuk menggulir bagian grafik yang diamati saat runtime dengan menekan tombol kanan mouse. Nilai yang mungkin: pmNone - pengguliran dilarang, pmHori/ontal, pm Vertikal atau pmBoth - pengguliran diperbolehkan, masing-masing, hanya dalam arah horizontal, hanya dalam arah vertikal, atau dalam kedua arah.

AhowZoom - memungkinkan pengguna untuk mengubah pembesaran gambar saat runtime dengan memotong bagian bagan atau grafik dengan kursor mouse. Jika bingkai suatu fragmen digambar ke kanan dan ke bawah, maka fragmen tersebut diregangkan hingga menutupi seluruh bidang grafik. Dan jika bingkai digambar ke atas dan ke kiri, maka skala aslinya dikembalikan.

Judul - mendefinisikan judul diagram.

Kaki - mendefinisikan keterangan di bawah diagram. Tidak ada secara default. Teks tanda tangan ditentukan oleh subproperti Teks.

Bingkai - mendefinisikan bingkai di sekitar diagram.

Di samping banyak properti yang terdaftar di Object Inspector terdapat tombol dengan elips yang memungkinkan Anda memanggil satu atau beberapa halaman Editor Bagan - jendela multi-halaman yang memungkinkan Anda mengatur semua properti bagan. Diagram Editor juga dapat dipanggil dengan mengklik dua kali pada komponen Bagan atau dengan mengklik kanan padanya dan memilih perintah Edit Chart dari menu pop-up.

Klik dua kali pada komponen paling atas Bagan. Anda akan dibawa ke jendela Chart Editor pada halaman Chart, yang memiliki beberapa tab. Pertama-tama, Anda akan tertarik dengan tab Seri di dalamnya. Klik pada tombol Tambah - tambahkan seri. Anda akan dibawa ke jendela di mana Anda dapat memilih jenis bagan atau grafik. Dalam hal ini, pilih Pai - diagram lingkaran. Menggunakan tab Judul, Anda dapat mengatur judul bagan, tab Legenda memungkinkan Anda mengatur parameter untuk menampilkan legenda bagan (daftar simbol) atau menghapusnya sama sekali dari layar, tab Panel menentukan tampilan panel di tempat grafik ditampilkan, tab 3D memberi Anda kesempatan untuk mengubah tampilan grafik Anda: kemiringan, pergeseran, ketebalan, dll.

Saat Anda bekerja dengan Editor Bagan dan telah memilih jenis bagan, di komponen Bagan Formulir Anda menampilkan tampilannya dengan data kondisional yang dimasukkan ke dalamnya. Oleh karena itu, Anda dapat langsung melihat hasil penerapan berbagai opsi pada aplikasi Anda, yang sangat memudahkan.

Halaman Seri, yang juga memiliki sejumlah tab, memberi Anda kemampuan untuk memilih opsi tampilan tambahan untuk seri tersebut. Khususnya, untuk diagram lingkaran, pada tab Format, akan berguna untuk mengaktifkan opsi Pai yang Dilingkari, yang akan memastikan bahwa diagram ditampilkan sebagai lingkaran dengan ukuran berapa pun pada komponen Bagan. Pada tab Tanda, tombol grup Gaya menentukan apa yang akan ditulis pada label yang terkait dengan masing-masing segmen bagan: Nilai - nilai, Persen - persentase, Label - nama data, dll.

Anda juga dapat menambahkan rangkaian identik lainnya ke komponen Bagan ini dengan mengklik tombol Klon pada tab Seri di halaman Bagan, lalu untuk rangkaian baru ini mengklik tombol Ubah dan memilih jenis bagan yang berbeda, seperti Batang.

Keluar dari Editor Bagan, pilih komponen Bagan terbawah di aplikasi Anda dan ulangi pengaturan propertinya menggunakan Editor Bagan. Dalam hal ini, Anda perlu menentukan dua rangkaian jika Anda ingin menampilkan dua kurva pada grafik, dan memilih jenis bagan Garis. Karena kita berbicara tentang grafik, Anda dapat menggunakan tab Sumbu dan Dinding untuk menentukan karakteristik koordinat sumbu dan tepi tiga dimensi grafik.

Ini melengkapi desain tampilan aplikasi. Yang tersisa hanyalah menulis kode yang menentukan data yang ingin Anda tampilkan. Untuk aplikasi pengujian, mari kita tetapkan beberapa data konstan dalam diagram lingkaran, dan beberapa fungsi dalam grafik.

Untuk mengatur nilai yang ditampilkan, Anda harus menggunakan metode Seri. Mari kita fokus hanya pada tiga metode utama.

Metode Jernih menghapus serangkaian data yang dimasukkan sebelumnya.

Metode Menambahkan:

Tambahkan(Nilai Konstan:Double; Const ALabel:String; AColor:TColor) ,

memungkinkan Anda menambahkan titik baru ke diagram. Parameter Nilai sesuai dengan nilai tambah, parameter Label- label yang akan ditampilkan pada diagram dan legenda, AWarna- warna. Parameter Label- opsional, dapat diset kosong: ‘ ’. Metode TambahkanXY:

AddXY(Const AXValue, AYValue: Ganda; Const ALabel: String; AColor: TColor)

memungkinkan Anda menambahkan titik baru ke grafik fungsi. Pilihan Nilai AX Dan Nilai AY sesuai dengan argumen dan fungsi. Pilihan Alabel dan AColor sama seperti pada metodenya Menambahkan.

Jadi, prosedur untuk memuat data dalam contoh kita akan terlihat seperti:

konstanta Al=155; A2=251; A3=203; A4=404; var i:kata; mulai

Dengan Seri dimulai

Add(Al,"Lokakarya l",clKuning);

Tambahkan(A2,"Lokakarya 2",clBiru);

Tambahkan(A3,"Lokakarya 3",clRed);

Tambah(A4,"Lokakarya 4",clUngu); akhir;

Seri 2. Hapus; SeriS.Bersih; untuk i:=0 hingga 100 dimulai

Seri2.TambahkanXY(0,02*Pi*i,sin(0,02*Pi*i)

SeriS.TambahkanXY(0,02*Pi*i,cos(0,02*Pi*i) akhir;

ClRed); ,clBiru);

Operator Jernih diperlukan jika Anda akan memperbarui data saat aplikasi sedang berjalan.

Ini mengakhiri perkenalan kami dengan komponen tersebut Bagan. Benar, kami hanya mempertimbangkan sebagian kecil dari kemampuannya.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat