Menghapus Layar Console


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;

Kita menentukan variabel koordinat paling atas untuk mengembalikan kursor pada tempat kosong paling atas paling kiri.

KoordinatUjung.X := 0;
KoordinatUjung.Y := 0;

Jika layar console terisi, itu berarti beberapa/semua selnya (sepanjang 80 x 25)  ada yang terisi. Sehingga jika kita mengosongkan, berarti kita memberikan string kosong saja.

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));

Program Selengkapnya:

Menghapus Layar Console Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.