trect ile caption'a yazı yazma sorunu.
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: trect ile caption'a yazı yazma sorunu.
Görüntü ile olması gereken anlamında sormak istemiştim.
Re: trect ile caption'a yazı yazma sorunu.
Tamam işte hocam görüntü ile gösterdim hatalı olan şeyi ve nasıl olması gerektiğini anladınız mı ne demek istediğimi?
Re: trect ile caption'a yazı yazma sorunu.
Ücretsiz AlphaControls Lite sürümünü indirip kurun.
http://www.alphaskins.com/dwnld.php
Kurduktan sonra form üzerine bir tane TSkinManager ekleyin.
SkinDirectory özelliğini kurulumu yaptığınız yerdeki skin dizinini gösterecek şekilde ayarlayın.
SkinName kısmından bir tane isim seçin.
Ardından form üzerine bir tane TsTitleBar nesnesi ekleyin.
Items özelliğini seçip bir tane Item ekleyin.
Eklediğiniz Item'ı seçip ObjectInspector üzerinde Align kısmını istediğiniz şekilde ayarlayın
Style özelliğini bsInfo olarak ayarlayın.
Caption özelliğine istediğiniz ifadeyi yazın.
FontData özelliklerini istediğiniz gibi ayarlayın.
Uygulamayı çalıştırdığınız zaman istdiğinizi elde etmiş olmanız gerekli.
http://www.alphaskins.com/dwnld.php
Kurduktan sonra form üzerine bir tane TSkinManager ekleyin.
SkinDirectory özelliğini kurulumu yaptığınız yerdeki skin dizinini gösterecek şekilde ayarlayın.
SkinName kısmından bir tane isim seçin.
Ardından form üzerine bir tane TsTitleBar nesnesi ekleyin.
Items özelliğini seçip bir tane Item ekleyin.
Eklediğiniz Item'ı seçip ObjectInspector üzerinde Align kısmını istediğiniz şekilde ayarlayın
Style özelliğini bsInfo olarak ayarlayın.
Caption özelliğine istediğiniz ifadeyi yazın.
FontData özelliklerini istediğiniz gibi ayarlayın.
Uygulamayı çalıştırdığınız zaman istdiğinizi elde etmiş olmanız gerekli.
- Dosya ekleri
-
- FomrCaption.png (552 Byte) 2700 kere görüntülendi
Re: trect ile caption'a yazı yazma sorunu.
Hocam burada unuttuğunuz birşey var.
Ben bunu kendi programıma değil başka bir programa yapıyorum findwindow ile farkındaysanız.
Yani program benim değil ve open source yok.
??
Ben bunu kendi programıma değil başka bir programa yapıyorum findwindow ile farkındaysanız.
Yani program benim değil ve open source yok.
??
Re: trect ile caption'a yazı yazma sorunu.
Diğer uygulamanın caption bilgisini değiştirmek yeterli olmuyor mu?
Kod: Tümünü seç
procedure UygulamaBasligiDegistir(const MevcutBaslik, YeniBaslik: string);
var
MyHandle: THandle;
begin
MyHandle := FindWindow(nil, PWideChar(MevcutBaslik));
SetWindowText(MyHandle, YeniBaslik);
end;
procedure TForm15.Button1Click(Sender: TObject);
begin
UygulamaBasligiDegistir('UO', 'Yeni başlık');
end;
Re: trect ile caption'a yazı yazma sorunu.
Hocam zaten ben öyle yapmaya çalışıyorum ama o zaman şöyle problem oluyor diyelim aynı uygulama 3 tane açık bu sefer karışıklık oluyor 3 üne birden aynı şeyi yazıyor yani benim yapmak istediğim olay tek kendisine yazsın olayı.
Ben dll kullanıyorum inject ediyorum bu sorunu nasıl çözeceğimi bilmiyorum.
Ben dll kullanıyorum inject ediyorum bu sorunu nasıl çözeceğimi bilmiyorum.
Re: trect ile caption'a yazı yazma sorunu.
Ben hala sorunun ne olduğunu tam anlayabilmiş değilim.
Test ettiğim zaman diğer uygulamadan 3 tane çalışıyor ise başlık değişikliği sadece bir tanesinde oluyor. Buton bir daha tıklandığı zaman bu defa ikinci uygulamanın adı değişiyor.
Aynı başlık ifadesi kullanılmak istenilmiyor ise kendi uygulamanız içinde TStringList ve TArray<THandle> kullanarak diğer uygulamaların başlığının ne olarak değiştirildiğini ve Handle bilgisini saklamak mümkün. Görsel ayırt edici olması için bir sayaç kullanarak her bir buton tıklandığında diğer uygulamaların başlığının sonuna farklı rakam eklemekte mümkün.
Son verilen örnek kodu bir DLL içinde kullanmakta mümkün.
Test ettiğim zaman diğer uygulamadan 3 tane çalışıyor ise başlık değişikliği sadece bir tanesinde oluyor. Buton bir daha tıklandığı zaman bu defa ikinci uygulamanın adı değişiyor.
Aynı başlık ifadesi kullanılmak istenilmiyor ise kendi uygulamanız içinde TStringList ve TArray<THandle> kullanarak diğer uygulamaların başlığının ne olarak değiştirildiğini ve Handle bilgisini saklamak mümkün. Görsel ayırt edici olması için bir sayaç kullanarak her bir buton tıklandığında diğer uygulamaların başlığının sonuna farklı rakam eklemekte mümkün.
Son verilen örnek kodu bir DLL içinde kullanmakta mümkün.
Re: trect ile caption'a yazı yazma sorunu.
Ama DLL içinde kullandığınızda 3 uygulama açık diyelim ben 3 ünü yan yana koyuyorum 3'üne aynı şeyi yazıyor?
Re: trect ile caption'a yazı yazma sorunu.
DLL içindeki ilgili kodu paylaşabilir misiniz?Shou yazdı:Ama DLL içinde kullandığınızda 3 uygulama açık diyelim ben 3 ünü yan yana koyuyorum 3'üne aynı şeyi yazıyor?
Re: trect ile caption'a yazı yazma sorunu.
Kod: Tümünü seç
procedure caption;
var
prochwnd:hwnd;
begin
prochwnd:=findwindow('TUO',nil);
setwindowtext(prochwnd,pchar('YENİ CAPTİON'));
end;
Re: trect ile caption'a yazı yazma sorunu.
1- Gördüğüm kadaryla FindWindow fonksiyonunun parametreleri benim verdiğim örnekten farklı.
2- DLL prosedür adını "Caption" dışında bir isim vermekte fayda var.
Bu DLL prosedürü sadece bir tane uygulamanın başlık ismini değiştirir. Tüm çalışan diğer uygulamaların bir defada başlıklarının değiştirilmesi sorunu "caption" prosedürünün çağırıldığı yerde/yerlerde aranmalı.
Kendiniz de yeni bir uygulamada bu kodu buton tıklamasına yerleştirip aynı anda 3-4 diğer uygulamadan çalışsa dahi sadece bir uygulamanın başlığının değiştiğini test edip sorunun bu kod ile ilgili olmadığını görebilirsiniz.
2- DLL prosedür adını "Caption" dışında bir isim vermekte fayda var.
Bu DLL prosedürü sadece bir tane uygulamanın başlık ismini değiştirir. Tüm çalışan diğer uygulamaların bir defada başlıklarının değiştirilmesi sorunu "caption" prosedürünün çağırıldığı yerde/yerlerde aranmalı.
Kendiniz de yeni bir uygulamada bu kodu buton tıklamasına yerleştirip aynı anda 3-4 diğer uygulamadan çalışsa dahi sadece bir uygulamanın başlığının değiştiğini test edip sorunun bu kod ile ilgili olmadığını görebilirsiniz.