Butonlara resim ekleme [Çözüldü]
Butonlara resim ekleme [Çözüldü]
Merhabalar arkadaşlar
Projemde buton nesnesine "stylelookup" bölümündeki ikonlardan hariç kendi seçtiğim ikonları kullanmak istiyorum. Bu mümkün mü acaba hocalarımızın yardımını bekliyorum şimdiden herkese teşekkürler ederim.
Projemde buton nesnesine "stylelookup" bölümündeki ikonlardan hariç kendi seçtiğim ikonları kullanmak istiyorum. Bu mümkün mü acaba hocalarımızın yardımını bekliyorum şimdiden herkese teşekkürler ederim.
En son codder71 tarafından 04 Şub 2016 01:12 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme
Merhaba;
Icon destekleyen delphi buton türleri CornerButton, SpeedButton ve Button'dur.
Ana forma 1 adet ImageList1 ekle. Bu nesneyi Çift tıkla ve Width ve Height alanlarına image boyutunu yaz. Örn: W= 24, H=24
Burada belirtilen Image Boyutu ile yükleyeceğiniz image boyutu aynı olmalıdır.
Açılan pencerede, "Add" butonuna tıklayın. Bir resim seçin.
Aynı işlem adımlarını takip ederek birden fazla image ekleyebilirsiniz.
Yüklenen image boyutunu bu pencerede yeniden düzenleyebilirsiniz.
Resmi seçtikten sonra, işleminiz tamamlandıysa; "OK" butonuna basın.
Ana formdan, harici resim eklemek istediğiniz butonu seçin.
Butonun Object Inspector'dan, "images" özelliğini ImageList1 olarak seçin.
Butonun Object Inspector'dan "ImageIndex" özelliğinden bir resim seçerek işleminizi tamamlayın.
Örnek:

Icon destekleyen delphi buton türleri CornerButton, SpeedButton ve Button'dur.
Ana forma 1 adet ImageList1 ekle. Bu nesneyi Çift tıkla ve Width ve Height alanlarına image boyutunu yaz. Örn: W= 24, H=24
Burada belirtilen Image Boyutu ile yükleyeceğiniz image boyutu aynı olmalıdır.
Açılan pencerede, "Add" butonuna tıklayın. Bir resim seçin.
Aynı işlem adımlarını takip ederek birden fazla image ekleyebilirsiniz.
Yüklenen image boyutunu bu pencerede yeniden düzenleyebilirsiniz.
Resmi seçtikten sonra, işleminiz tamamlandıysa; "OK" butonuna basın.
Ana formdan, harici resim eklemek istediğiniz butonu seçin.
Butonun Object Inspector'dan, "images" özelliğini ImageList1 olarak seçin.
Butonun Object Inspector'dan "ImageIndex" özelliğinden bir resim seçerek işleminizi tamamlayın.
Örnek:

Re: Butonlara resim ekleme [Çözüldü]
Çok Teşekkürler sorun çözülmüştür.




- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme [Çözüldü]
Hocam bu konuda bir sorum daha olacak bu resimleri ekleyebiliyorum ama resmi ortaya filan alamıyorum. Birde boyutu yazmama rağmen resmin atılan boyutu hiç bir zaman değişmiyor ve resim çok küçük bir şekilde devamlı sol köşede duruyor. Resmi istediğimiz yere ve boyuta getirebiliyozmu acaba yardımcı olursan sevinirim.
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme [Çözüldü]
Merhaba;
Bahsetmiş olduğun boyut sorunu, her Platformun kendine has kısıtlamasını olmasından dolayıdır.
Çözümüne gelince;
Delphi, Multi-Device uygulamalarda nesneleri iç içe yerleştirmemize izin vermektedir.
Yani bir nesne başka bir nesnenin bir elemanı gibi davranabiliyor.
Sanırım aşağıdaki resimdeki gibi bir nesne yapısı istiyorsunuz.

Bunun için;
1- Forma bir adet button nesnesi yerleştirin ve boyutunu ayarlayın.
2- Forma bir adet TImage nesnesi yerleştirin.
3- Image nesne boyutunu, yüklemek istediğiniz resim boyutu ile aynı olacak şekilde ayarlayın.
Ör: Resim boyutu 128x128 ise, Image Width=128, Image Height=128 olsun.
4- Resmi seçili duruma getirin ve Object Inspector dan MultiResBitmap özelliğinin yanındaki ... butonuna basın.
5- Açılan pencerenin sağ tarafında yer alan resim seçim butonuna basarak, butona yerleştireceğiniz resmi seçin ve pencereyi kapatın.
6- Structure penceresine geçin Image1 nesnesini Button1 nesnesinin üzerine sürükleyip, bırakın.
Böylece Image nesnesi, button nesnesinin bir iç elemanı olacaktır.
7- Tekrar resmi seçerek, Object Inspector penceresinden Align özelliğini ayarlayın.
Ör: Right, left, Contents vb.
8- Son olarak resim seçili iken Object Inspector penceresinden, Resim tıklama olayının buton tıklama olayına aktaracak olan HitTest özelliğini False yapın.
Bahsetmiş olduğun boyut sorunu, her Platformun kendine has kısıtlamasını olmasından dolayıdır.
Çözümüne gelince;
Delphi, Multi-Device uygulamalarda nesneleri iç içe yerleştirmemize izin vermektedir.
Yani bir nesne başka bir nesnenin bir elemanı gibi davranabiliyor.
Sanırım aşağıdaki resimdeki gibi bir nesne yapısı istiyorsunuz.

Bunun için;
1- Forma bir adet button nesnesi yerleştirin ve boyutunu ayarlayın.
2- Forma bir adet TImage nesnesi yerleştirin.
3- Image nesne boyutunu, yüklemek istediğiniz resim boyutu ile aynı olacak şekilde ayarlayın.
Ör: Resim boyutu 128x128 ise, Image Width=128, Image Height=128 olsun.
4- Resmi seçili duruma getirin ve Object Inspector dan MultiResBitmap özelliğinin yanındaki ... butonuna basın.
5- Açılan pencerenin sağ tarafında yer alan resim seçim butonuna basarak, butona yerleştireceğiniz resmi seçin ve pencereyi kapatın.
6- Structure penceresine geçin Image1 nesnesini Button1 nesnesinin üzerine sürükleyip, bırakın.
Böylece Image nesnesi, button nesnesinin bir iç elemanı olacaktır.
7- Tekrar resmi seçerek, Object Inspector penceresinden Align özelliğini ayarlayın.
Ör: Right, left, Contents vb.
8- Son olarak resim seçili iken Object Inspector penceresinden, Resim tıklama olayının buton tıklama olayına aktaracak olan HitTest özelliğini False yapın.
Re: Butonlara resim ekleme [Çözüldü]
Hocam çok teşekkür ederim. Aslında bu anlattığınızı ben TRectangle nesnesi ile yapıyordum ama tıklama olayını bir türlü ayarlayamamıştım. Bu anlatımınız çok kolay ve açıklayıcı olmuş. Artık bu anlattığınız şekilde butonları kullanırım. Tekrar teşekkür ederim.



- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme [Çözüldü]
Rica ederim;
Yalnızca tıklama olayı için bir iş yapacak iseniz, TRectangle tabi ki TButton nesnesine göre daha esnek ve kullanışlıdır.
Fakat TButton nesnesinde bulunan property ve event'ları da kullanma ihtiyacınız olursa TButton kullanmalısınız.
Yalnızca tıklama olayı için bir iş yapacak iseniz, TRectangle tabi ki TButton nesnesine göre daha esnek ve kullanışlıdır.
Fakat TButton nesnesinde bulunan property ve event'ları da kullanma ihtiyacınız olursa TButton kullanmalısınız.
Re: Butonlara resim ekleme [Çözüldü]
Bahsettiğiniz gibi hocam TRectangle gerçekten çok kullanışlı ama Tbutton nesnesindeki gibi tıklayınca tıklama gerçekleştiğine dair bir action gerçekleşmiyor eğer öyle bir durum gerçekleştirebilsek aslında butona göre çok güzel bir component ama tıklama actionu olmadığından dolayı çift component kullanıyorum.
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme [Çözüldü]
TRectangle nesnesine tıklama olayı anında, tıklama efekti verilebilir.
Hatta buton nesnesinden da çok hoşunuza gidecek animasyon (FloatAnimation ve TransitionEffect'lerle) efektler uygulanabilir.
Hatta buton nesnesinden da çok hoşunuza gidecek animasyon (FloatAnimation ve TransitionEffect'lerle) efektler uygulanabilir.
Re: Butonlara resim ekleme [Çözüldü]
Merhabalar fesih bey cevabınız için teşekkür ederim. Hocam sizden ricam bana bir örnek paylaşırsanız bu konuda çok yardımcı olursunuz. Şimdiden çok teşekkür ederim.
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme [Çözüldü]
Hafta içi bir örnek yapar buradan paylaşırım.
Re: Butonlara resim ekleme [Çözüldü]
Hocam teşekkür ederim sabırsızlıkla bekliyorum örneği



- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: Butonlara resim ekleme [Çözüldü]
Merhaba;
Aşağıdaki resimde birinci Rectangle'a Renk animasyonu, İkinci Rectangle'a ise Saydamlık animasyonu uygulanmıştır.

Birinci TRectangle için;
İkinci TRectangle için;
Aynı işlemler kod yazmadan da ColorAnimation, FloatAnimation veya Effrect'lerle de yapılabilir.
Aşağıdaki resimde birinci Rectangle'a Renk animasyonu, İkinci Rectangle'a ise Saydamlık animasyonu uygulanmıştır.

Birinci TRectangle için;
Kod: Tümünü seç
procedure TForm2.Rectangle1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
Rectangle1.AnimateColor('Fill.Color', TAlphaColors.Null, 0.5, TAnimationType.&In,
TInterpolationType.Quartic);
Rectangle1.AnimateColor('Stroke.Color', $0000FFD0, 0.1);
end;
procedure TForm2.Rectangle1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
Rectangle1.AnimateColor('Fill.Color', $FFE0E0E0, 0.1, TAnimationType.&In, TInterpolationType.Quartic);
Rectangle1.AnimateColor('Stroke.Color', TAlphaColors.Black, 0.2);
end;
Kod: Tümünü seç
procedure TForm2.Rectangle2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
Rectangle2.AnimateFloat('Opacity', 0.4, 0.7, TAnimationType.InOut, TInterpolationType.Linear);
end;
procedure TForm2.Rectangle2MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
Rectangle2.AnimateFloat('Opacity', 1, 0.7, TAnimationType.InOut, TInterpolationType.Linear);
end;
Re: Butonlara resim ekleme [Çözüldü]
Merhabalar Fesih bey
Öncelikle hocam il dışındaydım bu yüzden ancak deneyip cevap yazabildim bunun için kusura bakmayın. Ellerinize sağlık örnekler gerçekten çok açıklayıcı olmuş ve gerçekten hocam burada bana ve bu sorunu formda yaşayanlara açık kaynak olacaktır bunun için teşekkürler ederiz. Deneme yaparken yalnız hocam bir sorunla karşılaştım. Bir form oluşturdum ve bir Rectangle nesnesi ekledim ve bitmap ekleyerek tilestrech yaptım ve ilk örnekte verdiğiniz kodu aynısını kullandım ama bir tepki vermedi ama 2. örnekteki verdiğiniz kodlar kusursuz çalışıyor. Denemelerimi mobil cihazda yaptım hocam birinci örnekte nerde hata yapmış olabilirim ?
Örnekler için tekrar teşekkürler ederim iyi aksamlar dilerim.

Öncelikle hocam il dışındaydım bu yüzden ancak deneyip cevap yazabildim bunun için kusura bakmayın. Ellerinize sağlık örnekler gerçekten çok açıklayıcı olmuş ve gerçekten hocam burada bana ve bu sorunu formda yaşayanlara açık kaynak olacaktır bunun için teşekkürler ederiz. Deneme yaparken yalnız hocam bir sorunla karşılaştım. Bir form oluşturdum ve bir Rectangle nesnesi ekledim ve bitmap ekleyerek tilestrech yaptım ve ilk örnekte verdiğiniz kodu aynısını kullandım ama bir tepki vermedi ama 2. örnekteki verdiğiniz kodlar kusursuz çalışıyor. Denemelerimi mobil cihazda yaptım hocam birinci örnekte nerde hata yapmış olabilirim ?
Örnekler için tekrar teşekkürler ederim iyi aksamlar dilerim.

