BÖLÜM 6 SİSTEM BİRİMİ VE EKRAN KOMUTLARI Ekran komutları ekrandaki görüntü tasarımı için kullanılan komutlardır. Bu komutların program içinde kullanılabilmesi için, program başlığı satırından sonra USES komutunda CRT (Windows programları için WINCRT) unit isminin yazılması gereklidir. Aksi halde, ekran komutlarıyla ilgili yazılan komutlar Pascal derleyicisi tarafından tanınmayacaktır. En çok kullanılan ekran komutları aşağıda verilmiştir. 6.1 Clrscr "Clrscr" CRT/WINCRT üniti içinde yer alan bir alt programdır. Ekranda daha önce yazılı olan ifadeleri silerek ekranın temizlenmesi amacıyla kullanılır. 6.2 GotoXY Kursörü ekranın istenilen sütun ve satırına taşımak için kullanılır. Kullanımı; GotoXy(Sütun,Satır); şeklindedir. Normal bir ekran üzerinde 80 sütun ve 25 satır dır. j:word; clrscr; for j:=1 to 20 do gotoxy(j,j);write('balıkesir Üniversitesi'); gotoxy(50-j,j);write('balıkesir Üniversitesi'); end;
46 6.3. Readkey Klavyeden basılan karaktesi okumak için kullanılır. Bu fonksiyonun sonucu char tipi bilgidir. Turbo/Borland Pascal 7.0 'da tek başına kullanıldığında program bu komuta rastladığında, herhangi bir tuşa basılıncaya kadar programın çalışması kesilir. Örnek tus:char; clrscr; Write('Balıkesir ');Readkey; Writeln('Üniveristesi');Readkey; Readkey komutunun çok kullanıldığı uygulamalardan biri de basılan veya basılacak karakteri kontrol etmektir. Aşağıda verilen örnek programda her B tuşuna basıldığında "Balıkesir Üniversitesi" yazmaktadır. Program ESC tuşuna basılarak durdurulmaktadır. tus:char; j:word; repeat tus:=readkey; if upcase(tus)='b' then Write('Balıkesir Üniversitesi'); until tus=#27; 6.4 Keypressed Klavyeden bir tuşa basılıp basılmadığını kontrol etmek amacıyla kullanılan bir komuttur. Aşağıda verilen örnek programı inceleyiniz.
47 tus:char; j:word; j:=0; repeat Write('Balıkesir Üniversitesi'); j:=j+1; if keypressed then tus:=readkey; if j=75 then clrscr; j:=0; end; until tus=#27; 6.5 Window Ekranda pencere oluşturmak için kullanılan bir komuttur. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. Kullanımı; Window(X1,Y1, X 2,Y2); X1 :Pencerenin sol sütun numarası (1-80) Y1 :Pencerenin sol satır numarası (1-25) X2 :Pencerenin sağ sütun numarası (1-80) Y2 :Pencerenin sağ satır numarası (1-25) X1,Y1 X2,Y2
48 6.6 Delay Programın belirtilen süre kadar bekletilmesini sağlar. Delay (1000) komutu, programın 1 sn bekletilmesini sağlamaktadır. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. uses crt; window(20,5,60,20); REPEAT DELAY(5); Write('BAÜ'); UNTIL keypressed; 6.7 ClrEol Kursörün bulunduğu konumdan satırın sonuna kadar bütün karakterleri silmek için kullanılır. Kursör bulunduğu konumda kalır. uses wincrt; ClrScr; Writeln('Günaydın Bugün nasılsınız?'); Writeln('Enter tuşuna Basınız...'); Readln; GotoXY(1,2); {Kursör 2.satır 1.sütuna konumlandırılıyor} ClrEol; Writeln ('İyi olmanızı duymak güzel.'); 6.8 Highvideo Ekrana yazılacak yazının parlak yazılmasını sağlar. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. 6.9 Lowvideo Ekrana yazılacak yazının mat yazılmasını sağlar. Turbo/Borland Pascalda kullanılabilir. Bu komut sadece Dos için
49 6.10 Normvideo Ekrana yazılacak yazının normal parlaklıkta yazılmasını sağlar. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. Uses Crt; Begin Clrscr; Highvideo;Writeln('Parlak'); Lowvideo;Writeln('Mat'); Normvideo;Writeln('Normal'); End; 6.11 WhereX Kursörün üzerinde bulunduğu sütunun numarasını verir. 6.12 WhereX Kursörün üzerinde bulunduğu satırın numarasını verir. uses wincrt; Write('Şu anda kursör pozisyonu :',WhereX,',',WhereY); 6.13 TextColor Ekrana yazdırılacak yazının rengini ayarlamak için kullanılır. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. Kullanımı; Textcolor(Renkkodu/Adı);
50 Renklerin kodları aşağıda verilmiştir. Renk Kod Adı Siyah 0 Black Mavi 1 Blue Yeşil 2 Green Turquaz 3 Cyan Kırmızı 4 Red Pembe 5 Magenta Kahve 6 Brown Açık gri 7 Lightgray Koyu gri 8 Darkgray Açık mavi 9 Lightblue Açık yeşil 10 Lightgreen Açık turquaz 11 Lightcyan Açık kırmızı 12 Lightred Açık pembe 13 Lightmagenta Sarı 14 Yellow Beyaz 15 White Yanıp/sönme 128 Blink Textcolor(0)=Textcolor(black) 6.14 Textbackground Ekrana yazdırılacak yazının zemin rengini ayarlamak için kullanılır. Bu komut sadece Turbo/Borland Pascalda kullanılabilir. Kullanımı; Textbackground(renk kodu); uses Crt; { Siyah üzerinde yeşil karakterler} TextColor(Green); TextBackground(Black); WriteLn('Merhaba'); { Gri üzerinde yanıp sönen kırmızı karakterler} TextColor(LightRed+Blink); TextBackground(LightGray); WriteLn('Günaydın!'); { Mavi üzerinde sarı karakterler} TextColor(14); { Yellow = 14 } TextBackground(Blue); WriteLn('nasılsın'); NormVideo; { Orijinal özellik } End.
51 6.15 Sound/Nosound Sound, verilen frekansta ses üretmek için kullanılır. Nosound, sound ile üretilen sesi ortadan kaldırmak için kullanılır. Bu komutlar sadece Turbo/Borland Pascalda kullanılabilir. uses Crt; Sound(220); Delay(200); NoSound; Çalışma Sorusu: Readkey ve/veya keypressed komutlarından yararlanarak bir şifre programı yazınız. Program çalıştırılıp şifrenin girilmesi esnasında her girilen karaktere karşılık ekranda X karakteri görüntülenecektir.