örneğin form a ay resmi yerlestirdim.
calısma anında form u ay olrak gormek istiyorum formun boyutları ay seklinde olsun.
nasıl yapabilirim?
form resim şeklini alsın
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
Selam,
Windows'un SetWindowRegion giib bir fonksiyonu var, bahsettiği işlemler bu fonksiyonla yapılıyor. Senin yapman gereken de, kullandığın resimdeki şekli tespit etmek ve bunları bir Point dizisine atmak. Sonrada Windows API'sini kullanarak bu point dizisini Region olarak tanımlamak. Son olarak da bu region'u forma uygulamak. Ama sıkıntılı bir işlemdir, çünkü Point yapısının Windows ile uygumlu olması gerekir. Ayrıca resmin şeklini çıkarmak da zordur.
Ne kadar çok nokta eklersen eğimli hatlar o kadar güzel görünecektir. Ama bu fonksiyon AntiAlias desteklemediği için malesef kenarlar ne olursa olsun merdivenli görünecektir (kırık kırık yani)
Bütün bu işlemleri yapabilen ücretsiz bileşenler olması gerekiyor. Eğer programın ticari bir projeyse onları kullanmanı tavsiye ederim. Eğer sadece kendin için yazıyorsa ve vakit sorunun yoksa kendin yap. İnan bana kendini çok geliştirebileceğin bir konu.
Kolay gelsin
Bahadır Alkaç
Windows'un SetWindowRegion giib bir fonksiyonu var, bahsettiği işlemler bu fonksiyonla yapılıyor. Senin yapman gereken de, kullandığın resimdeki şekli tespit etmek ve bunları bir Point dizisine atmak. Sonrada Windows API'sini kullanarak bu point dizisini Region olarak tanımlamak. Son olarak da bu region'u forma uygulamak. Ama sıkıntılı bir işlemdir, çünkü Point yapısının Windows ile uygumlu olması gerekir. Ayrıca resmin şeklini çıkarmak da zordur.
Ne kadar çok nokta eklersen eğimli hatlar o kadar güzel görünecektir. Ama bu fonksiyon AntiAlias desteklemediği için malesef kenarlar ne olursa olsun merdivenli görünecektir (kırık kırık yani)
Bütün bu işlemleri yapabilen ücretsiz bileşenler olması gerekiyor. Eğer programın ticari bir projeyse onları kullanmanı tavsiye ederim. Eğer sadece kendin için yazıyorsa ve vakit sorunun yoksa kendin yap. İnan bana kendini çok geliştirebileceğin bir konu.
Kolay gelsin
Bahadır Alkaç
- Murat DİCLE
- Kıdemli Üye
- Mesajlar: 702
- Kayıt: 19 Nis 2006 04:12
- Konum: İstanbul
- İletişim:
Merhaba,
Çok basit..
Özellikle yazacağın program XP sistemi için olacak ise işe yarayacaktır.
TForm'un TransparentcolorValue özelliğini ve TransparetColor özellikleri ile yapaiblirsin.
Ben genelde TransparentColorValue için clLime (açık yeşil) kullanırım. TransparentColor ise TRUE olmalıdır.
Formun için bir resim seç, ve fotoşop ile resmin şefaf olması gereken gerlerini clLime renginde boya. ama clLime'ye tam karşılık gelen renk ile boyaman gerekli.
Sonra resmi forma koy. ve F9 yap. ve form üstündeki clLime renkteki herşey şefaf olacaktır.
Bunu resim koymadanda yapaiblirsin. mesela form üstüne bir iki button ve textbox koy. ve form renginide clLİme yap. çalıştırırsan enterasan bir sonuç alacaksın.
Tabi bu dediklerimi WinXP işletim sisteminde görebilirsin. 98'de transparent ve alphablending gibi özellikler geçersizdir.
bu kadar..
Saygılar..
Çok basit..
Özellikle yazacağın program XP sistemi için olacak ise işe yarayacaktır.
TForm'un TransparentcolorValue özelliğini ve TransparetColor özellikleri ile yapaiblirsin.
Ben genelde TransparentColorValue için clLime (açık yeşil) kullanırım. TransparentColor ise TRUE olmalıdır.
Formun için bir resim seç, ve fotoşop ile resmin şefaf olması gereken gerlerini clLime renginde boya. ama clLime'ye tam karşılık gelen renk ile boyaman gerekli.
Sonra resmi forma koy. ve F9 yap. ve form üstündeki clLime renkteki herşey şefaf olacaktır.
Bunu resim koymadanda yapaiblirsin. mesela form üstüne bir iki button ve textbox koy. ve form renginide clLİme yap. çalıştırırsan enterasan bir sonuç alacaksın.
Tabi bu dediklerimi WinXP işletim sisteminde görebilirsin. 98'de transparent ve alphablending gibi özellikler geçersizdir.
bu kadar..
Saygılar..