Kayıtlar

Lazarus free pascal - Dosya içeriğinde arama

  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ç...

Lazarus free pascal - Tanıtım

Resim
  Free pascal , ücretsiz ve açık kaynaklı bir bilgisayar yazılımı derleyicisidir. Derleyicisi, kısaca FPC olarak anılmaktadır.  Derleyici  : Yazılımcının yazdığı programı, bilgisayarın anlayacağı  makine koduna dönüştürür. Hacettepe Elektrik bölümünde 1. sınıfta Fortran 77 dersimiz vardı. Bizden sonraki dönemlerde pascal'a geçilmişti. Aradan 35 yılcık geçmiş ve pascal ile ancak şimdi tanışıyorum. Basic dilinden çok da farklı değilmiş. Pascal programlama dili ile ilgili birçok türkçe veya ingilizce kaynak internette bulunmaktadır. Bu nedenle, k ullanıcı sayısının epey fazla olduğunu tahmin ediyorum.   Pascal ailesinin diğer derleyicileri olan Turbo Pascal veya Delphi için youtube eğitim videolarını izlersen de pascal programlama dilinin temel komutlarını öğrenebilirsin. Örneğin bu listede ve burada bulunan türkçe videolarda geçen kodları free pascal ile rahatlıkla test edebilirsin.  Delphi ticari bir yazılım olarak  satılmaktadır .  Delphi ...

NodeMCU ile Lua ve MicroPython

Resim
  NodeMCU, üzerinde ESP8266-12E/F modülünü içeren bir geliştirme kartıdır. Daha önce bu kartı Arduino IDE ile programlayarak modbus TCP slave yapmıştık. Bacak özellikleri, usb sürücü yükleme gibi detaylar için o yazıya bakabilirsin. Kartın fiyatı oldukça düşük 3$ civarında bulunabiliyor. Daha gelişmiş özelliklere sahip ESP32 ise 6$ civarında piyasada bulunabiliyor. NodeMCU, Arduino IDE dışında Lua ve Micropython ile de programlanabiliyor. Dosya sisteminin kolay bir şekilde kullanılması ve utf-8 formatını desteklediğinden Micropython ortamı daha çok hoşuma gitti. Diğer taraftan örneğin kartı, tcp-seri port çevirici yapan Lua kodu  ( tcp2uart.lua )  gerçekten işe yarıyor. Benzer bir kodu Micropython için internette bulamadım.  Gereken dosya kurulumlarını Windows 10 ortamında yaptım ama dosyalar Linux veya Mac ortamına da kurulabiliyor. Kart üzerinde wifi, seri port, GPIO, I2C, SPI, PWM, ADC gibi özellikler bulunuyor. Cihaz, access point veya station modunda çalışabil...