FireX

Kayıt : 16 Temmuz 2005
|
|
Merhaba arkadaşlar. Bu sefer çok ciddi ve zaman alan bir projeyle karşınızdayım. Giden emeği haddi hesabı yok. Bu projem Win32 derleyici. Aynı zamanda bir geliştirme ortamı. Öncelikle bu projemin de diğer projelerim gibi baştan sona %100 bana ait olduğunu belirtmek isterim. Herhangi bir derleyici, linker, assembler, kütüphane veya dışardan alınmış bir kod parçacığı kullanılmadı. Tamamen bana ait olduğu için özgün bir yapı oluşturdum. Diğer derleyicilere göre daha farklı bir işleyiş hakim. Çalışma prensibini kendi felsefeme göre oluşturdum. Amacım yeni bir dil, ürün geliştirip bunu piyasaya sürmek değil. Win32 konusunda, kimsenin tek başına yeni bir ürün sürüp rakip olmaya gücü yetmez zaten. Gerekte yok. Bu projeyi yazma amacım kariyer hedefleri yüksek birisi olarak öne çıkartıcı birşeyler sunmak, exelere olan ilgim ve derin sistem programcısı olarak bizzat yaşamak istediğim bazı durumlar ve bu çapta bir projeyle, assembly dilinde karşılaşabileceğim her türlü durumla yüzleşmek istedim. Alacağımı aldım, göreceğimi gördüm. Umarım iş konusunda da aynı getirileri sağlayacak. Projeyi baştan sona assembly diliyle yazdım. Derleyici boyutu 53 kb. Çıkarttığı exe boyutu ise 3 kb. Yazdığınız koda göre genişliyor. Form bileşenlerini geliştirme ortamında istediğiniz gibi şekillendirebilirsiniz. Genişletin, gizleyin vs. Bunları da kendi yöntemimle kaydedip okuttum. Derlenen exe de resource bulunmamaktadır. Yazdığım programlama dili ile form bileşenlerine birçok işlem yapılabiliyor. Fonksiyonlar sayıca pek fazla değil. Bunca işi tek başıma yaptığım için ciddi miktarda yük bindi ve ürün olarak sunulmayacak birşeyin daha fazla geliştirilmesi için de sebep olmadığı için yeterli düzeyde şey ekleyip bıraktım. Fonksiyon eklemek sıkıntı değil ekleyip çıkartırız fakat onlarca fonksiyon koymak için sebep yok. Neyse ben daha fazla lafı uzatmayayım. Kullanım ve programlama dili kurallarına geçelim. Bayağı yorgunum fakat aylar sonra biten birşeyi hem sabırsızlandığımdan hem de artık bunu görmekten çok sıkıldığımdan bir an önce elimden çıkarmak ve bir süre dinlendikten sonra sıradaki projelerime geçmek istiyorum. Kullanım Arayüz için 5 çeşit temel bileşeni ekledim. Buton, combobox, edit, listbox ve static. Üstte görülen butonlara tıklayarak forma bu bileşenleri ekleyebilir, sağ ekrandan özelliklerini ayarlayabilirsiniz. Olaylar ekleyebilirsiniz. Alt bölümde ise bilgilendirme ekranı bulunmaktadır. Hatalı kod satırları ve durumu oradan görebilirsiniz. Kod ekranı ve form arka arkaya durmaktadır. Üstteki butonları kullanarak kolayca geçiş yapabilirsiniz. ve son olarakta derle ve çalıştır butonlarımızla derleyip test edebilirsiniz.
 Exe derleyicinin bulunduğu klasöre program.exe olarak çıkacaktır. Programlama dili Programlama dilinde Türkçe karakterler kullanılabilmektedir. Hatta birçok fonksiyon isminde Türkçe karakterler bulunmaktadır.
Değişken tanımlama İki çeşit değişken tipini yeterli gördüm. sayı ve karakter sayı: sayı tipinde 4294967295 sayısına kadar sayı tutabilirsiniz. Negatif sayılarla da çalışılabilir. Kullanım: sayı abc sayı abc=234 İster değer atayın ister atamadan değişkeninizi oluşturun size kalmış. karakter: karakter tipinde istediğiniz uzunlukta string verilerinizi saklayabilirsiniz. Kullanım: karakter[5] abc üsttekinde 5 karakterlik bir yer açtık. karakter[5] abc=asd bunda ise asd stringini abc değişkenine atayarak değişkenimizi oluşturduk. Değişkenleri program içerisinde başına ! koyarak kullanıyoruz. !abc=4 !abc=!diğerdeğişken gibi aynı zamanda dört işlem yapabilirsiniz. Örnek: !abc=!abc+1 !abc=1+3*4/2 !abc=!diğerdeğişken+2*3 gibi karakter türündeki değişkenlere de string atayabilirsiniz. !abc=yenistring gibi. Fakat ayırdığınız alanı taşırmamaya dikkat edin. Negatif sayılar: Negatif sayıları sayının önüne e koyarak ifade ediyoruz. Örnek: !abc=e2 eksi 2 abc'ye atanır Bileşenler için; Yazı atama özelliği (Bileşene yazı atamanızı sağlar) Örnek: buton1.yazı=deneme button1.yazı=!değişkenadı edit1.yazı=firex edit1.yazı=!değişkenadı Pozisyon ayarlama (İstediğiniz kordinatlara bileşeni taşıyın) button1.pozisyon(24,43) button1.pozisyon(!x,!y) Boyut ayarlama button1.boyut(50,100) button1.boyut(!genişlik,!yükseklik) Aktif pasif yapma button1.aktif button1.pasif Gizleme, görünür yapma button1.göster button1.gösterme Bu üsttekileri tüm bileşenlerde uygulayabilirsiniz. Listbox'a eleman ekleme listbox1.lbekle=elemanyazı listbox1.lbekle=!eklenen Combobox'a eleman ekleme combobox1.cbekle=elemanyazı combobox1.cbekle=!eklenen Listbox'dan eleman silme
listbox1.lbsil=1 1. elemanı siler Combobox'dan eleman silme combobox1.cbsil=1 Diğer fonksiyonlar kapat: Kullanım: kapat ve mesaj kutusu: Kullanım: mesajkutusu(başlık,deneme) mesajkutusu(!başlık,!yazı) mesajkutusu(deneme,!yazı) Olaylar programaçılırken: Program açılırken çalışmasını istediğiniz komutları yazıyoruz. Örnek: programaçılırken mesajkutusu(test,deneme) olayson olayson tüm olaylar için bitirme tagı. programkapanırken: Program kapanırken çalışacak komutlar. Örnek: programkapanırken mesajkutusu(test,deneme) olayson Önemli not: Yazdığınız kodları olay tagları içerisine almazsanız, kodlar olay döngüsü içerisinde sürekli çalıştırıldığından bazı durumlarda henüz bileşenler o anda hazır olmadığı için probleme yol açabilir. Bu sebeple program açılırken, butona tıklayınca gibi olaylar içerisine alırsanız bu durumda sıkıntı yaşamazsınız. Zaten olay döngüsü içine almamak için bir sebepte yok. Sadece o imkanı sağlamak istedim. tıklayınca: Bileşene tıklandığında çalışır. Fakat bunun kullanımı biraz daha farklı. Örnek tıklayınca button1 kapat olayson button2 mesajkutusu(deneme,deneme) olayson olayson Görüldüğü üzere tıklayınca olayı bir üst kısımda bileşen isimlerini içine alacak şekilde duruyor. Burası yapılması gereken tıklayınca olayını açıp kapamak ve içerisine hangi bileşen kullanılacaksa koymak Örnek: button1 kapat olayson seçildiğinde: Seçim yapıldığında gerçekleşir. Örnek: seçildiğinde combobox1 kapat olayson olayson değiştiğinde: Edit bileşenindeki yazı değiştiğinde gerçekleşir. Örnek: değiştiğinde edit1 kapat olayson edit2 mesajkutusu(deneme,deneme) olayson olayson lbseçildiğinde: Listbox seçimi yapıldığında gerçekleşir. Örnek: lbseçildiğinde Listbox1 kapat olayson olayson lbseçimdeğişim: Listbox seçimi değiştiğinde gerçekleşir. Örnek: lbseçimdeğişim Listbox1 kapat olayson olayson Şartlar: Değişken sayı, sayı değişken, sayı sayı, değişken değişken karşılaştırmaları yapabilirsiniz. >, <, >=, <=, = büyüktür, küçüktür, büyük eşittir, küçük eşittir ve eşit olmak üzere hepsini kullanabiliyoruz. Şartları iç içe kullanabilirsiniz. Örnek: şart(2 mesajkutusu(deneme,deneme) şartson şart(2>4) mesajkutusu(deneme,deneme) şartson şart(!a mesajkutusu(deneme,deneme) şartson şart(2 mesajkutusu(deneme,deneme) şart(!asd mesajkutusu(test,test) şartson şartson ... Şartları kapatırken şartson tagını kullanıyoruz. Döngü: Şartlı döngü bulunmakta. Şart gerçekleştiği sürece döner. Şart ın desteklediği tüm karşılaştırmaları yapar ve işi bitince döngüden çıkar. Örnek: döngü(!sayi<15) messagebox(deneme,test) !sayi=!sayi+1 döngüson Fonksiyonlar: İsterseniz kendi fonksiyonunuzu oluşturabilirsiniz. Örnek: fonksiyon abc !a=!a*2 !b=2+3+!a fonkson Fonksiyonu çağırmadan önce üstünde tanımlıyoruz ve fonkson tagıyla kapatıyoruz. çağır fonksiyonismi şeklinde çağırabilirsiniz. Örnek: fonksiyon abc !a=!a*2 !b=2+3+!a fonkson ... çağır abc Önemli hata mesajları "Değişken bloğu bulunamadı" "Kod bloğu bulunamadı" "Kod bloğu kapatılmadı" Her zaman program iskeleti ilk açıldığı şekilde olduğu gibi değişkenler kodlar son kalmalıdır. Bu taglar bulunmalıdır.
değişkenler bloğu ilk satırda olmalıdır. "Bileşen bulunamadı." hatası alırsanız bileşen eklemelisiniz. "Kapanmayan blok bulunmakta" hatası alırsanız kapatmadığınız şart, döngü, olay vs bulunmakta. Blokların olaysa olayson, şartsa şartson şeklinde kapanması önemlidir. ve bunun gibi birçok uyarı, hata mesajı bulunmakta. Birçok hata olasılığı ekledim. Fakat tüm olasılıkları da eklemedim. Çok absürd hatalarda programı veya derleyiciyi çökertebilirsiniz. Fazlasıyla sapıtırsa derleyiciyi kapatıp tekrar açınız. Özellikle kurallar delinmeye çalışılırsa bir şekilde bunlar gerçekleşebilir. Programlama dili satır satır işletilmektedir. Tek satır içerisinde gereksiz boşluk kullanmayınız.
Şimdilik diyeceğim bu kadar. Eğer denerseniz, hatalı koddan doğan problemlerden öte hatasız ve çalışması gereken kodlarda bug çıkarsa bildirirseniz memnun olurum. Yazdığınız kodu buraya yapıştırıp olanları yazınız. Bunun dışında derleyici hakkında veya bu konular hakkında sorularınız varsa bu konuda alabilirim. Sizden ricam lütfen indirmeden önce kullanımı gözden geçiriniz. ve böylelikle bir projenin daha sonuna geldim. Dediğim üzere iş, tecrübe odaklı birşey olduğu için daha fazla geliştirmeyeceğim. Fakat bildirdiğiniz bugları şu günden 3 gün sonraya kadar düzelteceğim. Daha fazla bununla uğraşmak istemiyorum. Artık bunu görmekten inanın midem bulanır hale geldi. Bir süre kafamı dinleyip diğer projeme geçeceğim. Diğer projede görüşmek üzere...
 Örnek programlar Program1: İlk olarak forma iki tane buton atınız. Kod: değişkenler karakter[7] abc=deneme karakter[5] asd=test kodlar tıklayınca button1 mesajkutusu(!abc,!asd) olayson button2 kapat olayson olayson son Program2: Programa bir adet buton atınız. Kodlar: değişkenler sayı !x=0 sayı !y=0 kodlar tıklayınca button1 döngü(!x<200) button1.pozisyon(!x,!y) !x=!x+1 !y=!y+1 döngüson olayson olayson son Program3: Bir adet buton ve bir adet listbox atınız. Kodlar: değişkenler sayı x=0 karakter[3] eleman=ok kodlar tıklayınca button1 döngü(!x<6) listbox1.lbekle=!eleman !x=!x+1 şart(!x=3) mesajkutusu(yarısı,yarısına geldik) şartson döngüson olayson olayson programaçılırken mesajkutusu(merhaba,merhaba) olayson programkapanırken mesajkutusu(hoşçakal,hoşçakal) olayson son
Download linki
www.alpgulec.com/firex.rar
|
ontedi

Kayıt : 4 Eylül 2005 www.ontedi.com
|
|
Hoca gayet güzel bir çalışma olmuş. Türkçe karakter kullanman ise ayrı bir güzel. En azından ne yazılacağı bilinebilir.
http://www.ontedi.com
Siteme beklerim herkesi.
|
NmC

Kayıt : 23 Kasim 2008 (Cahil AKPli)
|
|
Hocam arızasın sen ya :|
Valla akıl mantık işi değil...
Ne diyeyim helal olsun :))
There are 10 types of people in the world. Those who knows binary and those who dont...
|
FCN

Kayıt : 28 Eylül 2007 Yerel Disk(C)
|
|
NmC bunu yazdı: -----------------------------
Hocam arızasın sen ya :|
Valla akıl mantık işi değil...
Ne diyeyim helal olsun :))
-----------------------------
hislerime tercüman olmuşsn :D
Follow me : http://twitter.com/TheFCN // FCN Bilişim Hizmetleri // Microsoft .Net Developer
|
Emrow

Uzaklaştırılmış Üye
Kayıt : 17 Mart 2007 Tampere
|
|
http://teslanetwork.net Emrow, 15 Ekim 2011 (Cumartesi) 12:52 tarihinde Türkiye AB'ye girene kadar uzaklaştırıldı.
Uzaklaştırılma Sebebi: deli lan bildigin bu..
|
wasd

Kayıt : 14 Haziran 2006 Ace of Spades
|
|
Banned from heaven...
|
|
|
Helal...
Olay burda zaten :
Amacım yeni bir dil, ürün geliştirip bunu piyasaya sürmek değil. Win32 konusunda, kimsenin tek başına yeni bir ürün sürüp rakip olmaya gücü yetmez zaten. Gerekte yok. Bu projeyi yazma amacım kariyer hedefleri yüksek birisi olarak öne çıkartıcı birşeyler sunmak, exelere olan ilgim ve derin sistem programcısı olarak bizzat yaşamak istediğim bazı durumlar ve bu çapta bir projeyle, assembly dilinde karşılaşabileceğim her türlü durumla yüzleşmek istedim. Alacağımı aldım, göreceğimi gördüm. Umarım iş konusunda da aynı getirileri sağlayacak.
Eski bir magirus atasözü der ki; Basamakta durmayın, otomatik kapı çarpar...
|
FireX

Kayıt : 16 Temmuz 2005
|
|
Teşekkür ederim arkadaşlar. Nihayet şundan kurtulmanın keyfini yaşıyorum. Össden çıkmış ve kurtulmuş öğrenci psikolojisi yaşıyorum şu an :))
|
|
|
Buton ekledik mesela mouse ile formda istediğimiz yere taşıyamıyoruz. Şu sağdan taşırkende yorucu olabiliyor. yanina en azından [+] [-] şeklinde button ekle oradan arttırıp çoğaltabilelim. Nesne sayısı çok az. Ayrıca form üzerinde işlem yapamıyoruz. mesela form.gizle gibi bi komut eklenebilir. valla çok eksiği var ama bunu yapmışsın yeter, daha ne diyelim :)
tekinsizim size göre,
ibret için yakılması gereken
|
BuZuL

Kayıt : 9 Eylül 2005 NAVRAS
|
|
helal sana firex yine taşşaklı bir proje yapmışın tebrik ediyorum.
DAĞDA ÜÇ BEŞ KOYUN SÜRÜSÜ,
TUTTURMUŞ BİR KÜRDİSTAN TÜRKÜSÜ,
ELİNE ALMIŞ BAYRAK DİYE BİR MASA ÖRTÜSÜ,
SATSAN BEŞ PARA ETMEZ NE DİRİSİ NE DE ÖLÜSÜ,
SOYU SOYSUZ OLAN SENSİN TOPRAK SENİN NEYİNE,
İTE İTLİK YAPIP KAFA TUTMA BEYİNE,
ANLASA DEDİĞİMİ SOKAKTAKİ KÖPEK AĞLAR HALİNE,
DUY ULAN SOYSUZ NE MUTLU TÜRKÜM DİYENE.......
|
|
|
helal olsun yine alp nediyim valla senden adam olcak =) nice projelere hep daha iyiye =)
"Şimdi yatayım yarın sabah erkenden kalkıp tekrar yatarım"
|
|