Bagi programmer-programmer seangkatan saya, istilah ClrScr atau Clear Screen, sangatlah terkenal di telinga. Bagaimana tidak, jika kita membuat program tanpa form, kita butuh menghapus layar agar dapat menampikan menu lain. Jika tidak, program kita akan tampak aneh karena tulisannya menurun terus menerus. Pengguna pastilah bingung.
Saat ini Clear Screen jarang digunakan. Tetapi saya sendiri masih sering menggunakan console untuk membuat program. Misal, program-program "nakal". Dengan cara console. Program tidak terasa berat. Tak perlu menghabiskan memori hanya untuk menampilkan form indah. Buat apa form kalau hanya perlu memeriksa apakah komputer si A lagi online atau enggak. Tidak perlu form apabila saya ingin memeriksa apakah IP tertentu sedang dipakai atau tidak.
Nah, program dibawah ini sudah diadaptasi dari program saya jaman dahulu. Kalau dulu lebih ke DOS, sekarang lebih ke Windows. Untuk praktek, saya akan sertakan program matematika kecil-kecilan untuk mendemokan kemampuan ClrScr. Perintah-perintah clrscr ini membutuhkan prosedur di unit Windows. Jadi jangan lupa menyertakannya di bagian Uses.
Cara kerja program clrscr ini gampang saja. Pertama-tama kita harus tahu bahwa setiap program Windows selalu mempunyai handle. Bisa dikatakan handle ini adalah mandor. Dan tugas mandor adalah memerintahkan anak buahnya. Apapun yang diperintahkan Windows kepada program, selalulah tertuju pada Handle. Dengan demikian, kita perlu mengenalkan Handle kepada Windows terlebih dahulu.
ProgramHandle := GetStdHandle(STD_OUTPUT_HANDLE);
Pada jaman program DOS, programmerlah yang menentukan lebar layar console. Biasanya sekitar 80 x 25 pixel. Tetapi pada program Delphi jaman Now. Perintah ini lebih sederhana. Kita sudah dibikinkan, sehingga tinggal baca saja.
Win32Check(GetConsoleScreenBufferInfo(ProgramHandle, csbi));
UkuranLayar := csbi.dwSize.X * csbi.dwSize.Y;
KoordinatUjung.X := 0;
KoordinatUjung.Y := 0;
Win32Check(FillConsoleOutputCharacter(ProgramHandle, ' ', UkuranLayar, KoordinatUjung,
NumWritten));
Masing-masing sel juga punya atribut, misalkan warna dan sebagainya. Sehingga juga perlu dipermak juga.
Win32Check(FillConsoleOutputAttribute(ProgramHandle, csbi.wAttributes, UkuranLayar, KoordinatUjung,
NumWritten));
Kembalikan kursor pada keadaan default saat layar tidak ada apa-apanya.
Win32Check(SetConsoleCursorPosition(ProgramHandle, KoordinatUjung));
0 comments:
Posting Komentar