Butonlara resim ekleme [Çözüldü]

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

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.
En son codder71 tarafından 04 Şub 2016 01:12 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme

Mesaj gönderen fesiharslan »

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:
Resim
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

Çok Teşekkürler sorun çözülmüştür. :bravo: :bravo: :bravo:
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen fesiharslan »

Rica ederim.
İyi Çalışmalar
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

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.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen fesiharslan »

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.

Resim

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.
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

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. :bravo: :bravo:
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen fesiharslan »

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.
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

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.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen fesiharslan »

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.
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

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.
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen fesiharslan »

Hafta içi bir örnek yapar buradan paylaşırım.
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

Hocam teşekkür ederim sabırsızlıkla bekliyorum örneği :bravo: :bravo:
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen fesiharslan »

Merhaba;
Aşağıdaki resimde birinci Rectangle'a Renk animasyonu, İkinci Rectangle'a ise Saydamlık animasyonu uygulanmıştır.
Resim

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;
İkinci TRectangle için;

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;
Aynı işlemler kod yazmadan da ColorAnimation, FloatAnimation veya Effrect'lerle de yapılabilir.
Kullanıcı avatarı
codder71
Üye
Mesajlar: 117
Kayıt: 10 Tem 2010 07:41

Re: Butonlara resim ekleme [Çözüldü]

Mesaj gönderen codder71 »

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. :bravo: :bravo:
Cevapla