Handle Numarası Vermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Handle Numarası Vermek
S.A arkadaşlar delphide yazdığım yeni bileşenlere handle numarasını nasıl verebilirim TGraphicControl sınıfından türetilen nesnelerin handle numarası olmuyorda
Şimdiden Teşekkürler
Şimdiden Teşekkürler
Bize iyilik yaraşır.
AS.
Öncelikle doğru foruma taşıdım. Her grubun altında ne tür mesajlar atılabileceği yazıyor.
Handle sadece TwinControl sınıfında oluyor ve bu unique (tekil) bir sayı. Ne yapmak istediğini yazarsan daha detaylı bilgi verilebilir ama kafana göre bir numara verebilirsin. Grafik nesnelere handle vererek ulaşmayı düşünüyorsan, bildiğim kadarıyla bu mümkün değil.
Kolay gelsin.
Öncelikle doğru foruma taşıdım. Her grubun altında ne tür mesajlar atılabileceği yazıyor.
Handle sadece TwinControl sınıfında oluyor ve bu unique (tekil) bir sayı. Ne yapmak istediğini yazarsan daha detaylı bilgi verilebilir ama kafana göre bir numara verebilirsin. Grafik nesnelere handle vererek ulaşmayı düşünüyorsan, bildiğim kadarıyla bu mümkün değil.
Kolay gelsin.
Öncelikle özür dilerim
sonuçta ikiside TControl sınıfından geliyor Ama TWinControl Sınıfında Handle Numarası var TGraphicControl Sınıfında yok demekki vermek mümkün Controls Unitini inceledim ama handle numarasını nasıl verdiklerini anlamadım
tam olarak demek istediğim şu Buton nesnesinin handle numarası var ama Image nesnesinin handle numarası yok ben TImage nesnesinden yeni bir sınıf türetmek istiyorum ve bu sınıfın handle numarasıda olsun istiyorum nasıl olacak bu
Anlatabildim mi
sonuçta ikiside TControl sınıfından geliyor Ama TWinControl Sınıfında Handle Numarası var TGraphicControl Sınıfında yok demekki vermek mümkün Controls Unitini inceledim ama handle numarasını nasıl verdiklerini anlamadım
tam olarak demek istediğim şu Buton nesnesinin handle numarası var ama Image nesnesinin handle numarası yok ben TImage nesnesinden yeni bir sınıf türetmek istiyorum ve bu sınıfın handle numarasıda olsun istiyorum nasıl olacak bu
Anlatabildim mi

Bize iyilik yaraşır.
gozume carpan su oldu
TWinControl sınıfı CreateParams ve CreateHandle diye iki virtual metoda sahip
bunlar sayesinde pencere tipini windows a tanıtıp gecerli bir handle numarası alır
tabi is bu kadar basit olmamalı bence
bir windows programı yapı olarak WNDCLASS veri tipinin windowsa register edilmesi ile calısır. CreateWindow ile WNDCLASS ta belisttiginiz class ismine gore bir pencere yarattıgınızda windows ta size bir handle no verir(CreateWindow fonksiyonu donusu)
olay kısaca bu sekilde gelismekte
TWinControl sınıfı CreateParams ve CreateHandle diye iki virtual metoda sahip
bunlar sayesinde pencere tipini windows a tanıtıp gecerli bir handle numarası alır
tabi is bu kadar basit olmamalı bence
bir windows programı yapı olarak WNDCLASS veri tipinin windowsa register edilmesi ile calısır. CreateWindow ile WNDCLASS ta belisttiginiz class ismine gore bir pencere yarattıgınızda windows ta size bir handle no verir(CreateWindow fonksiyonu donusu)
olay kısaca bu sekilde gelismekte
ÜŞENME,ERTELEME,VAZGEÇME
Merhaba,
bu konular biraz detaylı ancak dilim döndüğünce yazmaya çalışıyım. Daha detaylı bilgiyi Delphi Help'te ve Ray konopka'nın Developing Custom Delphi Components isimli kitabında bulabilirsin.
* TGraphicControl : Kullanıcının etkileşimde bulunmadığı componentler için kullanılıyor : Label gibi. Handle olmadığı için daha az kaynak tüketiyor. Kullanıcı eğer etkileşimde bulunmayacaksa bunun tercih edilmesini tavsiye ediyorlar.
* TWinControl : Kullanıcının etkileşimde bulunduğu ekranda gözüken componentler için kullanılıyor. TEdit gibi.
buna göre :
* eğer handle'ı olan bir bileşen yapmak istiyorsan TWinControl veya daha alt bir sınıftan devralman gerekiyor. Bu durumda birçok şeyi kendin yapmak zorunda kalabilirsin. Delphi'de bu şekilde bir örnek var : TLabel ve TStaticText. TLabel : grafik bir component ve handle'ı yok, TstaticText'in handle'ı var. Bunların kodlarına bakmanda faydalı olabilir.
Son olarak : VCL kaynak kodu elinde varsa mutlaka incele. Bu konuda en büyük kaynaklardan biri bu kaynak kod
Kolay gelsin.
bu konular biraz detaylı ancak dilim döndüğünce yazmaya çalışıyım. Daha detaylı bilgiyi Delphi Help'te ve Ray konopka'nın Developing Custom Delphi Components isimli kitabında bulabilirsin.
* TGraphicControl : Kullanıcının etkileşimde bulunmadığı componentler için kullanılıyor : Label gibi. Handle olmadığı için daha az kaynak tüketiyor. Kullanıcı eğer etkileşimde bulunmayacaksa bunun tercih edilmesini tavsiye ediyorlar.
* TWinControl : Kullanıcının etkileşimde bulunduğu ekranda gözüken componentler için kullanılıyor. TEdit gibi.
buna göre :
* eğer handle'ı olan bir bileşen yapmak istiyorsan TWinControl veya daha alt bir sınıftan devralman gerekiyor. Bu durumda birçok şeyi kendin yapmak zorunda kalabilirsin. Delphi'de bu şekilde bir örnek var : TLabel ve TStaticText. TLabel : grafik bir component ve handle'ı yok, TstaticText'in handle'ı var. Bunların kodlarına bakmanda faydalı olabilir.
Son olarak : VCL kaynak kodu elinde varsa mutlaka incele. Bu konuda en büyük kaynaklardan biri bu kaynak kod

Kolay gelsin.
Aslında çok net ve doyurucu cevaplar almışsınız. Ancak ısrar ettiğiniz konu programcının elinde olan birşey değil. Handle windows işletim sistemi tarafından atanan bir değer. Bu cevabı da zaten ilk mesajda almışsınız. Eğer bunda ısrar edecekseniz o zaman windows işletim sisteminin handle atadığı bileşenler kullanacak veya onlardan yararlanacaksınız. Bütün cevaplar bunu içeriyor zaten.mcihad yazdı:Soruma cevap alamadım yani
Bende ısrarınızı anlamadım.

... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...