Kayıtlar

Wizard of Wor

  1980'lerde ilk bilgisayarım olan, Commodore 64  bir oyun bilgisayarıydı. Resimde görülen mini versiyonunun, piyasada halen satılmakta olduğunu fark ettim. Bana alınmadan önce, topluca bir arkadaşa gider, onun evinde oyunları oynardık. Artık bizimkilere nasıl ısrar ettiysem, annemin bileziklerini bozdurup almıştık bilgisayarı. Enzo'da Sinclair, Saygın'da C64 vardı. Hey gidi günler hey.. C64 programlama dergisi vardı. Üşenmeden sayfalarca Basic kodunu yazıp, çalıştırdığımda aldığım zevk paha biçilmezdi. Oyunlar, teyp kasedi ile bilgisayara yüklenirdi. Oyun yüklenirken cızır cızır diye sesler çıkardı. Neyse ki o günlerde oynanan oyunları, Vice adındaki emülatör ile oynamak mümkünmüş. Vice, Windows, MacOS ve Linux bilgisayarda çalışabiliyor. O zamanlar çok oynadığım ve hala hatırlayabildiğim oyunun ismiydi Wizard of Wor. Hiç bir emülatör kurmadan direk internet tarayıcıdan da oynanabilir. Online sayfada, Enter tuşunu ateş etmek için kullanabilirsiniz. Yön tuşları hareket etm...

AutoHotkey ve Auto Clicker

Resim
  Auto Clicker programını oyuncu çocuklar kullanıyor genelde.. Oyun oynarken, daha hızlı veya daha çok ateş edebilmek için. Program sizin yerinize, istenen sıklıkta, istenen konumda mouse'a tıklıyor. Ben farklı bir amaç için kullanıyorum. Programı açıp, resimdeki gibi dakika kutusuna 8 yazıp, F6 tuşuna (Start) basarsan, mouse 8 dakikada bir tıklanacaktır. Bu durumda, ekran koruyucu devreye girmeyecektir. Evet ekran koruyucu ayarlarını yapmak varken böyle bir çözüme gerek var mı diye düşünebilirsiniz.. Güvenlik nedeniyle Bilgi İşlem Bölümü, ekran koruyucuyu iptal etmenizi engelliyor olabilir. AutoHotkey ise bayağı gelişmiş bir program. Bugün itibarıyla 2.0 sürümünü indirip test edebilirsiniz. Auto Clicker'ın yaptıklarını ve çok daha fazlasını yapabilen bir program. Lakin kullanmak için basit komutları olan programcıklar yapmanız gerekiyor. Program, klavyede bulunan tuşların işlevlerini değiştirebiliyor, form doldurabiliyor veya makrolar oluşturabiliyor. Örneğin, her gün baktığ...

Lazarus free pascal - Dosya içeriğinde arama

Resim
  Youtube'da izle.. Github'dan indir.. Windows'un Dosya Gezgininde, bir dizinde bulunan dosyalar için içerik araması yapılabiliyor. Fakat text tabanlı dosyalardan sadece .txt uzantılı dosyalara bakabiliyor. Bana lazım olan,  .pas uzantılı Pascal kaynak kodlarına bakamıyor.  Programlamada yeni olanlar için (benim gibi), örneğin bir komutun kullanımını görmek amacıyla örnek dosyalara bakmak çok faydalı oluyor. Bu yazıda, bu amaca yönelik basit bir program geliştirdim. Program da denemez belki programcık desek daha doğru olur. Lazarus ile bu tip projeler oluşturmak gerçekten çok kolaymış. Adamlar bu iş için gerekli kütüphaneleri önceden oluşturdukları için program, karmaşık bir hal almadan tamamlandı.. Lazarus forumunda biraz araştırma yapmak yeterli oldu.  FileUtil kütüphanesi içinde yer alan FindAllFiles fonksiyonu işimi gayet güzel gördü.. FileUtil'i ayrıca kurmanıza gerek yok, Lazarus ile birlikte geliyor. Uses satırına yazmanız yeterli oluyor. (Wiki sayfasınd...

Lazarus free pascal - Bir bulmacanın anatomisi

Resim
  Resimde görülen bulmacanın son bulduğu, tebrikler mesajının geldiği penceredir. Kodları wiki sayfasından alıp, küçük bir ekleme yaptım. Tabii, bulmaca bahane maksat dili öğrenmek.. Amaç, resimdeki gibi 15 butonu sıralamak.. Oyun başladığında butonlar karışmış şekilde geliyor. Dikkat ettiysen, resimde bir butonluk boşluk var. Oynarken, boşluğa komşu olan bir butona tıklayınca, o buton boşluk ile yer değiştiriyor. Diğer bir ifadeyle buton, kayıyor (sliding puzzle). Yeni bir Application (form uygulaması) açtıktan sonra File > New Unit ile yeni unit2'yi projeye ekliyoruz. Save All yaparken unit2'nin ismini  unitGameBoard .pas olarak değiştiriyoruz. Daha sonra unit1 içinde uses satırına unitGameBoard yazarak bu unit'i kullanıyoruz. Amaç, proje kodlarını farklı dosyalarda tutarak daha sistemli bir şekilde yazılım geliştirmek.. Bu programdan ne öğreneceğim dersen.. Kullanılan butonlar dinamik olarak oluşturuluyor. Yani komponent paletinden bir buton alıp, forma yerleştirm...

Lazarus free pascal - Excel

Resim
  Youtube'da izle.. Lazarus ile Excel dosyası okunup, yazılabiliyor veya değiştirilebiliyor. Bunun için de bilgisayarda excel'in kurulmuş olması gerekmiyor. Yani adamlar oturup uğraşmış yapmış excel kütüphanesini. Kütüphane (paket) ismi FPSpreadsheet olarak geçiyor. 2 yıl önce "VBA ile veri loglama" isimli yazımda excel içinde bulunan visual basic kodlama ile bir uygulamayı göstermiştim. Seri porttan alınan bilgi, anında excel sayfasına yazdırılıyordu. Bunun için excel versiyonunun 32-bit olması gerekiyor. Bu yazıda, aynı işin Lazarus ile de yapılabildiğini göstermek istiyorum. Dediğim gibi bilgisayarda excel kurulmuş olması gerekmiyor. Önceki yazıları okuduysan, online paket yöneticisi ile fpspreadsheet'i Lazarus'a yükleme işini yapabilirsin. Forma bir tane TsWorksheetGrid komponenti ve 2 adet buton yerleştiriyoruz. Seri port kullanmak için bir de LazSerial paketinden TLazSerial komponentini forma eklemek lazım. Seri port kullanımı için bir önceki yazıya ...

Lazarus free pascal - Seri port

Resim
  Seri port veya RS232 bağlantı, hala endüstriyel cihazlar (etiket yazıcı, barkod okuyucu, PLC vs.) tarafından desteklenmektedir. Usb bağlantıda, temizlikçi kadın problemi varken, seri port kablosu sokete vidalanırsa sapasağlam yerinde duracaktır. ( temizlikçi kadın problemi: küçük bir dokunuşla usb kablo yuvasından çıkabilmektedir) Lazarus tanıtım yazısında hazırladığımız gibi küçük bir form hazırladık. TCP/IP bağlantıda olduğu gibi seri port kütüphanesi de utf-8 karakerleri destekliyor. Yani ş, ğ gibi karakterleri etiket yazıcıya bir sıkıntı olmadan gönderebiliyoruz. LazSerial paketini  Package > Online Package Manager... penceresinden Lazarus'a kuruyoruz.  Windows'da Lazarus normalde C:\lazarus dizinine kurulur. Paket yöneticisinin indirdiği kütüphaneler ise  C:\Users\kullanici\AppData\Local\lazarus\onlinepackagemanager\packages dizinine kurulurlar. Bu dizin içinde bulunan, test veya example (örnek) isimli dizinleri inceleyip kütüphaneyle ilgili örnek prog...

Lazarus free pascal - Thread

Resim
Önceki yazıyı okuyup, Lazarus'u kurdun ve Pascal (Delphi) ile ilgili biraz tecrübe kazandın diye düşünüyorum. Resimdeki formu oluşturmak için Project > New Project ... > Application menüsünü seçerek boş bir sayfa açıyoruz. Button1 ve Button2'yi sayfaya ekliyoruz. Buton'a çift tıklayarak aşağıdaki kodları buton tıklama olaylarına yazalım. procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:= 1 to 1000000 do begin button1.caption:= inttostr(i); //integer'ı string'e çevirir end; end; procedure TForm1.Button2Click(Sender: TObject); begin showmessage('Buton2''den merhaba!'); end; Programı çalıştırınca, önce buton2'ye tıklayın. Mesaj penceresi ekrana gelecektir. Buton1'e tıklarsan, butonun ismine yazan sayaç çalışmaya başlayacaktır. Bu sırada program penceresi sürüklenemez. Buton2'ye tıklayınca, mesaj penceresinin gelmediği veya buton2'nin çalışmadığı görülecektir. Ana thread, sayaç...