Amiga Dünyası sayı 21, sayfa 26

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 26

o anki pozisyonudur ve bir sonraki karakter burada görüntülenecektir. WINDOW(5) ise, çıktı penceresindeki kursorun pozisyonunun y- koordinatını verir. WINDOW(6), aktif çıktı penceresinde kullanılabilecek maksimum renk sayısını verir. WINDOW(7), aktif çıkış penceresine karşılık gelen "Intuition" penceresinin kayıt işaretidir. Bu işletim sistemi tarafından muhafaza edilen pencere yapısıdır. WINDOW(8), RASTPORT yapısının Intuition data alanının adresini verir. Bu değeri, ancak Amiga işletim sistemi yapısını biliyorsanız kullanabilirsiniz. Ekranda açık bir pencereyi silmeden ekrandan kaldırmak için kullanacağınız komut, WINDOW CLOSE pencere-no komutudur. Pencere görünmez olsa bile yine çıkış gönderebilirsiniz. Pencere-no ile belirtilen pencereyi aktif çıkış penceresi yaparak ön plana almak için WINDOW OUTPUT formatı kullanılır. SCREEN 1, 320, 200, 5,1 WINDOW 1, "Çıkış Penceresi",, 31,1 PRINT "Biz buradayız/" WHILE MOUSE(0)=0 AND INKEY$= "" LINE (319*RND,199*RND)-(319*RND, 199*RND), 31*RND, bf WEND WINDOW CLOSE 1 : SCREEN CLOSE 1 : END Açılabilecek pencere büyüklüğü boyutu ile de ilişkilidir. Ekran çözünürlüğü ve (x2,y2) argümanı olarak verilebilecek maksimum sayılar şunlardır:

EkranModu MaksimumPencereGenişliği 320x300 311x185 320x400 311x385 640x200 617x185 640x400 617x385 WRITE KOMUTU: Kullanım şekli:

WRITE (değişken ya da değer), (değişken ya da değer)... PRINT komutuna benzer. Dataları ekrana, o anki yazım pozisyonundan itibaren yazar. Ayırıcı olarak sadece virgül ve noktalı virgül kullanılır. İki komut arasındaki fark, WRITE komutunun datalar arasına virgülleri ve data kalemlerinin tırnak işaretlerini yerleştirmesidir. Bu özellik WRITE komutunu özellikle değerleri dosyalara gönderirken çok faydalı yapar. Değişken ya da değer kısmına ekrana yazdırılmak istenen data kalemleri girilir. WRITE "Merhaba"; "Nasılsınız?" WRITE# KOMUTU: Kullanım şekli: WRITE#dosya-no, (Değişken ya da değer), (Değişken ya da değer) WRITE# komutu, verilen data listesindeki değerleri ekran yerine dosya-no ile verilen dosyaya yazar. Özellikle sırasal dosyalara karakter dizisi yazmak için çok faydalı bir komuttur, çünkü datalar tırnak işaretleri arasında dosyaya gönderilecek ekran dataları değişkenleri ayırır. Dataları okuduğunuzda tüm ayırıcıları ile birlikte almış olmalısınız. Aşağıdaki örnek WRITE# ve PRINT# komutlarının kullanımını ve farklarını görebileceğiniz güzel bir çalışma olacak: OPEN "RAM:TEST" FOR OUTPUT AS 1

A$-"Herkese" B$-"Merhaba" WRITE# WRITE# 1, A$, B$ WRITE# 1, A, B, A$, B$ PRINT#1,A,B PRINT# 1, A:B PRINT# 1, A$, B$ PRINT# 1, A$; B$ PRINT# 1, A; B; A$, B$ CLOSE | Bu program ile oluşan dosyaya baktığı- mızda, sonucun şöyle olduğunu görecek- siniz;

12345, 67890 "Herkese", " Merhaba" 12345, 67890,"Herkese", "Merhaba" 12345 67890 12345 67890 Herkese Merhaba HerkeseMerhaba 12345 67890 HerkeseMerhaba Evet... Amiga Basic komutlarını tamamladık. Herhalde artık ihtiyacımız olan Basic komutlarını rahatlıkla kullanabiliyor; en azından istediğimiz işlemi yapabileceğiniz bir komut olup olmadığını biliyorsunuz. Şimdi AmigaBasic programlarınızda karşılaştığınız hata mesajlarına bakalım. Hepimiz sık sık bir beep sesi ile ekranın üst tarafında açılan bir hata kodu ve hata mesajı uyarısı ile karşılaşıyoruz değil mi? İşte hata kodları, hata mesajları ve açıklamaları: Bu aylık bu kadar. Gelecek ay hata mesajlarını incelemeye devam edeceğiz. Hoşçakalın...

en karşılığı FOR komutu bulunamaması uyumsuzluğu vardır.

Hata Kodu — Mesaj 1 NEXT WITHOUT FOR-FOR'SUZ NEXT NEXT yönergesinde verilen deği: mıştır. Yani FOR....NEXT dön; 2 SYNTAX ERROR - YAZIM HATASI

Program satırının yazımında hata vardır. Uyumsuz parantezler, tanımsız komut ya da yönerge, yanlış noktalama gibi. 3 RETURN WITHOUT GOSUB- GOSUB'SIZ RETURN Bir GOSUB ile dallanma yapılmadığı halde program çalışması sırasında RETURN komutu ile karşılaşılmıştır. 4 OUT OF DATA - EKSİK DATA Bir READ komutu çalıştığında okunmamış DATA yönergeleri yoksa, bu hata mesajı alınır.

5 ILLEGAL FUNCTION CALL - GEÇERSİZ FONKSİYON ÇAĞRISI Bir BASIC komutuna geçersiz değerler geçirildiğinde ortaya çıkar. Dizi elemanlarında negatif değerler ya da bunları GET ve PUT komutlarında kullandığınızda bu hatayı alırsınız. Bu mesaj BASIC komutlarından parametrelere çok büyük, çok küçük ya da yanlış tipte değerler geçirildiğinde de ortaya çıkar. 6 OVERFLOW - TAŞMA

Amiga Basic'in sayısal formatından çok büyük bir hesaplama sonucu alındığında ortaya çıkar. Taşma olduğunda sonuç sıfır kabul edilir ve çalışma hatasız sürecektir.

7 OUT OF MEMORY - BELLEK YETERSİZ Program çok uzun ve çok fazla sayıda değişken, çok komplike işlemler, FOR döngüsü ya da GOSUB olduğunda bu hata mesajı alınır. 8 UNDEFINED LABEL - TANIMLANMAMIŞ ETİKET GOTO, GOSUB ve DELETE gibi program satırlarında verilen etiket, program içinde bulunamamıştır. Etiket ismi yanlış yazılmış, etiketten sonra iki nokta üst üste konmamış, alt programla rutine aynı isim verilmiş olabilir. 9 SUBSCRIPT OUT OF RANGE - BOYUTLARDA TAŞMA Bu hata otomatik boyutlandırılmış bir dizinin elemanları dışında bir dizi elemanına erişilmek istendiğinde ortaya çıkar. Aynı şey DIM yönergesinde verilen boyuttan daha büyük bir dizi eleman değeri girildiğinde de olur. Dizi adının yanlış yazılması, dizi olmayan bir değişkene subscript verilmesi de hatayı oluşturan nedenlerden bazılarıdır. 10 DUPLICATE - TEKRAR TANIMLAMA Boyutlandırılmış bir dizinin tekrar boyutlandırılmaya çalışılması bu hataya neden olur. Halihazırda boyutlandırılmış bir diziyi tekrar boyutlandıramazsınız; çünkü yeni DIM yönergesinden önce, daha önce aynı isimle açılmış bu dizi kullanılmış olabilir. Ancak diziyi ERASE komutu ile silip UBOUND ve LBOUND ile alt ve üst limitlerini yeniden tanımlamak mümkündür. Birinci DIM yönergesinden sonra OPTION BASE komutunu kullanmak da, bu hata mesajına neden olur.

Klavyeyle gezinmek için ← ve → tuşları.