‘API’ Etiket Arşivi

Yüzen kontroller.. :)

// 15 Mayıs 2009 // Yorum Yok » // Delphi, Programlama

Başlığa aldanmayın bizim kontroller yüzmeyecek tabii, ama form gibi başlıkları(yani caption’ları) olacak.Bu da demek olacak ki, siz kontrollerinizi runtime sırasında hareket ettirebilecek, boyutları ile oynayabileceksiniz.

Peki bunun için ne yapmalıyız.. Yine sevgili Delphi’mizin Help’ini açıyoruz ve CreateParams yazıyoruz..Birde bakıyoruz ki bu metodu uygulayan temel sınıf TWinControl. Dolayısı ile TWinControl sınıfından miras almış tüm sınıflarda bu metodu ezebileceğiz. ;) Eh o zaman biz ne yapalım ne yapalım..Yüzme bilen bir TEdit bileşeni geliştirelim sizlerle..

TMyEdit = class(TEdit)
public
	procedure CreateParams(var Params : TCreateParams); override;
end;

Tanımlama bu kadar basit.Şimdi bu CreateParams ne yapar..Help’den okumuşsunuzdur elbette ama kısaca şunu yapar.Biliyorsunuz Windows ortamındaki handle’ı (HWND) si olan tüm karesel bölgelere (bazende bu alanlar karesel olmayabiliyor, bknz. SetWindowRgn API) pencere deniliyor. Ve bu pencereler CreateWindow yada CreateWindowEx API’leri ile oluştuluyor. Eh Delphi tam bu noktada oluşturulacak olan bu pencerenin bazı stil ayarlarını değiştirebilmemize olanak sağlıyor.Sağolsun. :) Pencere oluşturulduktan sonra bu özellikleri değiştirmek isterseniz de bknz. SetWindowLong API sini kullanabiliyoruz. Herneyse lafı fazla uzatmadan CreateParams metodunun gövdesini yazalım..
(more…)