11.07.2015 Views

Amiga Dunyasi - Sayi 23 (Nisan 1992).pdf - Retro Dergi

Amiga Dunyasi - Sayi 23 (Nisan 1992).pdf - Retro Dergi

Amiga Dunyasi - Sayi 23 (Nisan 1992).pdf - Retro Dergi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

AMIGADİLLERCENKER OZKURTHepinize iyi günler! Bu ayki yazımızda, diğer sayfalarda görmüşolduğunuz gibi, uzun bir (diğerlerine göre) örnek C programıylakarşı karşıyayız. Programımız, geçen sayıda vermiş olduğumörneklerin yeni bir versiyonu. Hatırlayacağınız gibi bu örnekler,bir menü oluşturarak disketteki programlarımızı kullanmamızısağlıyordu. Bu ay da, benzer şekilde çalışan bir örnek geliştirmeyiuygun gördüm. Fakat yeni örneğimizin aynı zamandada bazı yeni özellikleri bulunuyor.Programımız karışık görülebilir. Fakat sakın siz de buna aldanıpyazmaktan veya incelemekten vaz geçmeyin. Çünkü böyleprogramları yazabilmeniz için, öncelikle yazılanları anlayabilmenizgerekiyor. Programı yazarken elimden geldiğince alt rutinlerebölmeye çalıştım. Böylece her rutini siz de kendi programlarınızdakullanabilir ve daha rahat anlayabilirsiniz.Yeni bir programı denerken, kesinlikle ilk bakışta satır satır incelemeyin.Listeye bakarken, rutinleri bloklar halinde görmeyeve ayırmaya çalışın. Daha sonra her bloğun ne işe yaradığını öğrenin.Böyle incelediğiniz zaman satırlar karışık gelmez ve programıanlamanız daha kolay olur.Programda ilk olarak incelenmesi gereken blok, 'main()' bloğudur.Blok içerisinde yapılanlara dikkat edin. Daha sonra kullanılandeğişkenlerin tipini, local veya global olduğunu ve neamaçla kullanıldığını öğrenin. Altrutinleri bulun ve hangi parametrelerlekullanıldığını görün. Bundan sonra programı satır seviyesindeinceleyebilirsiniz.Bu kadar tavsiyeden sonra, şimdi programımızın kullanılmasınabir göz atalım. Programımız compile edilip çalıştırıldıktansonra, bir parametre istemektedir. Bu parametre, disketteki programlarınlistesini içeren bir dosyadır. Bu dosyada, menü ismi,programın menüdeki ve disketteki ismi bir kurala göre herhangibir text editör (en iyisi CED) ile yazılır. Programımız bu dosyadakilisteyi hafızasındaki değişkenlere atayarak saklar. Daha sonrabu liste kullanıcının seçebilmesi için ekrana sıralanır ve mouseile kontrol edilerek seçilir. Seçilen program disketten yüklenerekçalıştırılır ve bu arada bizim programımız da kendini hafızadansiler. Programımızın yapmış olduğu iş, kısaca bu kadar. Ben buprogramı yazarken, daha önce görmüş olduğum 'Selector' adındakibir utility programından esinlendim. Bu örneği hazırlamanedenlerimin başında, sizlerin de benzer şekilde utility programlarıyazabileceğinizi göstermektir.Şimdi programımızın listesine bir göz atalım. Bu arada programımızınadını 'MenuDesign' olarak belirledim. İsterseniz siz deyeni isimler koyabilirsiniz. Ne de olsa programımız bir PublicDomain !.../*...............................................................................*//* Programming and Coding by Cenker OZKURT *//*...............................................................................*//*................................................*//* include Dosyalari *//*................................................*/#include #include #include #include#include /*...............................................*//* Library yapi değişkenleri *//* ..............................................*/struct IntuitionBase *IntuitionBase;struct GfxBase *GfxBase;struct DosBase *DosBase;struct RastPort *rp;struct Window *window;/*…………………………………………………………*//* Program içerisinde kullandigimiz Global değişkenler *//*…………………………………………………………*/char title[80];charview[30][20];chardisk[30][30];char *name[]={ " ",0 };char *list;int no=0;int fin;/*……………….……………*//* Ana program satirlari *//*……………………………*/main(argcargv)int argc;char *argv[];{int a; /* local değişken */if(argc=-l) /* menu listesi kontrol ediliyor */printf( "Usage : menudesign [list]\n ");return(1);}/*………………….. *//* library'ler aciliyor *//*……………………*/IntuitionBase=OpenLibrary("intuition. library ",0);GfxBase=OpenLibrary("graphics.library",0);DosBase=OpenLibrary("dos.library",0);/*………………………………………………*//* window ve rp değişkenleri belirleniyor *//* bu değişkenler belirlenmeden *//* window'u kullanmamız mumkun değil *//*………………………………………………*/window=IntuitionBase->ActiveWindow;rp=window->RPort;SetDrMd(rp,JAMl);/*……………………………………………..*//* Bu satirlardan itibaren kendi hazirladigim *//* rutinler cagriliyor *//*……………………………………………..*/clear(); /* değişkenleri temizler */load(argv[1]); /* menu liste dosyasini disketten yükler */scr_clear(); /*window'u siler.-Is32 kütüphanesinde bulunur */draw_box(); /* window'a kutulari çizer */search(); /* listedeki isimleri değişkenlere tasir */menudesign(); /* programın ismini ekrana yazar */flood(); /* programların isimlerini kutulara yazar */a=mouse(); /* mouse ile program seçimini bekler */if(a==0) { /* eger secilmezse cikar */quit(); /* program cikisi */scr_clear();exit(0);}AMIGA DÜNYASI 20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!