TWincontrol özelliği olan Image component ı arıyorum
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
TWincontrol özelliği olan Image component ı arıyorum
Component olmak zorunda değil. Yapmak istediğim, TImage ın üzerinde TControl den türetilmiş classları koymam gerekiyor, yani benim class ıma parent olacak ve resim(leri) gösterecek bir class, yöntem arıyorum. Karmaşık vs işlemler olmayacağından ücretli bileşenlere gerek yok, birde bu basit iş için gavura para vermek zorunda kalmayayım.
Öneri yada bilgisi olan var mı?
Öneri yada bilgisi olan var mı?
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: TWincontrol özelliği olan Image component ı arıyorum
Kod: Tümünü seç
tmyimage = class(twincontrol)
Protected
Procedure wm_paint()...
end;
Procedure wm_paint()...
Var
Dc: hdc;
bmp: tbitmap;
Begin
Dc := getwindowdc(handle);
Bmp := tbitmap.create;
Try
Cancas.handle := dc;
Bmp.loadfromfile(...);
bitbtl(dc, 0, 0, bmp.width, bmp.height, bmp.canvas.handle, 0, 0, srccopy);
Canvas.handle := 0;
Finally
Bmp.free;
Releasedc(handle, dc);
end;
End;
Wm_paint mesaji yerine paintwindow prosedürünü override yapabilirsin. Birden fazla yöntem mümkün.
Cepten yazdigim icin kod düzenlemesi yapamiyorum.
kıdemsiz üye
Re: TWincontrol özelliği olan Image component ı arıyorum
Bunlardanda pratik yöntem, Panel üstüne TImage koydum, ve eski kodlarda az değişiklikle, owner olarak timage ı taşıyan paneli benim TControl lere parent yaptım. Benim için önemli olan TControl lerin onmouse evetlerinin tetiklenmesi idi. TImage bunları ezmedi, buda işimi gördü.
EyvAllah saolasın.
EyvAllah saolasın.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Re: TWincontrol özelliği olan Image component ı arıyorum
TImage nesnesi üzerinden de mouse hareketlerini yakalayabilirsin. Kulagi tersten göstermeye benzer ama sonuca ulasabilirsin : ))
kıdemsiz üye
- fesiharslan
- Üye
- Mesajlar: 591
- Kayıt: 20 Eki 2006 11:37
- Konum: Erzurum
- İletişim:
Re: TWincontrol özelliği olan Image component ı arıyorum
Merhaba;freeman35 yazdı:Bunlardanda pratik yöntem, Panel üstüne TImage koydum, ve eski kodlarda az değişiklikle, owner olarak timage ı taşıyan paneli benim TControl lere parent yaptım. Benim için önemli olan TControl lerin onmouse evetlerinin tetiklenmesi idi. TImage bunları ezmedi, buda işimi gördü.
EyvAllah saolasın.
Panel ---> TImage fikrinizden yola çıkarak, bir component oluşturdum.Fikir sizin olduğu için tüm telif haklarını da size devrediyorum.
Örnek Ekran Görüntüsü
Component ve Örnek Uygulama Linki: https://mega.nz/#!6AMHxL5S!dwASsghZQ__T ... Q7h0sBxo2M
İyi Çalışmalar Hocam.
Re: TWincontrol özelliği olan Image component ı arıyorum
@ikra, Programcı tembel olmalı ki en kolay en sağlam yöntemi bulabilsin TImage üzerinde mouse un her pixel harektinde (x,y) TImage üzerindeki belirlenmiş yerlerdemi (25-32 kadar farklı alan), hangisinde vs gibi işleri döngüyle yapmak gerekir. Bunun yerine TControl ün onmouseEnter, ..lieave, ..Up eventlerinden bunu zaten alıyorum. Sadece ilgili yere konumlandırmak yetiyor, ayrıca anchor ları da ayarladınmı panel size ı değişsede TControl ler de değiştiğinden problem yaşanmıyor.
Örnek: @fesiharslan ın yukarıdaki screenshot larda, Tux un göz bebeklerinin üzerine mouse gelince, gözbebeklerinin rengi değişsin mesela
@fesiharslan, Allah razı olsun. Varsa, benim hakkım helaldir. emek senin, dolayısıyla tasarruf sana aittir.
Örnek: @fesiharslan ın yukarıdaki screenshot larda, Tux un göz bebeklerinin üzerine mouse gelince, gözbebeklerinin rengi değişsin mesela
@fesiharslan, Allah razı olsun. Varsa, benim hakkım helaldir. emek senin, dolayısıyla tasarruf sana aittir.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
-
- Üye
- Mesajlar: 152
- Kayıt: 16 May 2014 11:23
Re: TWincontrol özelliği olan Image component ı arıyorum
Hem Flicker Free hem TWinControl + hızının tadından yenmeyen Layer mantıklı bir Grafik kütüphanesi, adı ise Graphics32.
Aşağıdaki linkten SourceForge den son halini indirebilirsin, Ayrıca Seattle Paket destekli, tabi sizi .inc dosyalarında versiyon tanımlaması yaparak Berlin'ede yükleyebilirsiniz.
https://sourceforge.net/p/graphics32/code/HEAD/tree/
Sevgilerle.
Aşağıdaki linkten SourceForge den son halini indirebilirsin, Ayrıca Seattle Paket destekli, tabi sizi .inc dosyalarında versiyon tanımlaması yaparak Berlin'ede yükleyebilirsiniz.
https://sourceforge.net/p/graphics32/code/HEAD/tree/
Sevgilerle.
-
- Üye
- Mesajlar: 152
- Kayıt: 16 May 2014 11:23
Re: TWincontrol özelliği olan Image component ı arıyorum
Anladığım kadarıyla örneğin, bir TImage nin üstünde TImage varsa ve siz yine alttaki owner TImage nin sınırları içerisinde iseniz Leave ve Enter olaylarının çalışmasını istiyorsunuz, böyle birşey daha önce yaptım bunun için Owner için Message Redirecting yapmanız gerekmekte.
Re: TWincontrol özelliği olan Image component ı arıyorum
Lazarus ta BGRA ile yapmıştım, VirtualScreen e en yakın TImage denk geliyor, bunun üzerine canvas ile bitmap leri çiziyorum. Bu sürekli olan bir şey değil, Boyadığım bitmap in yerini bilmem ve mouse ile üzerine geldiğinde ve tıklandığında işlem yapmam gerek. İşin basiti bu. Code yazmadan yada en az kod ile ve hatalarla uğraşmamak için TControl den bir class mouse eventlerini yakalamamı sağlıyor. lazarusdan delphiye taşındığımdan yeni kodlarla uğraşma işini ötemeleyi tercih ediyorum ki projeyi tekrar bitirebileyim.
Önerin için teşekkürler, kaydettim. projeyi bitirdikten sonra geriye dönük güncellemeler de Graphics32 inceliycem. Şimdilik timage ve bitmap işimi çözdü, yani o form u bitirecek aşamadayım. tekrar başa sarmak şu an için zaman kaybı, ama ileride gerekecek, her nekadar panel in doublebuffer ı True olsada arada gıpraşıyola ezmak gerek bunları.
Önerin için teşekkürler, kaydettim. projeyi bitirdikten sonra geriye dönük güncellemeler de Graphics32 inceliycem. Şimdilik timage ve bitmap işimi çözdü, yani o form u bitirecek aşamadayım. tekrar başa sarmak şu an için zaman kaybı, ama ileride gerekecek, her nekadar panel in doublebuffer ı True olsada arada gıpraşıyola ezmak gerek bunları.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!