if Key=VK_F2 then btnYeniClick( Sender );
if Key=VK_F3 then btnKaydetClick( Sender );
yukarıdakine benzer kodlar yazıyorum. bu kodlar devre dışı kalıyor. bazen derleme kesintiye uğruyor hata mesajı vermiyor. derlemeye devam ettiriyorum program çalıyor ancak formun OnKeyDown olayındaki kodlar devredışı kalıyor. tekrar düzeltiyorum. program derleme sırasında kesintiye uğradığı zaman onkeydown devredışı,
problemin sebebi ne olabilir.
Merhaba;
Uygulamayı adım adım çalıştırmayı deneyin bence hatanın nereden kaynaklandığını bulmak için. bugün başıma gelen bir olay, giriş formumda font yüklemesi yapıyordum fakat buradaki bir satırdan dolayı uygulama derlemeyi yapıyor fakat uygulama açılmıyordu. Görev yöneticisinde çalışır durumdaydı.
Windows 8.1 Pro kullanırken Windows 10 güncellemesini yapayım dedikten sonra başıma gelen bir olay. XE8 ile yapılan bir çalışma.
programı XE2 de yazmıştım daha sonra XE6 ya geçtim. aynı programı XE6 la geliştirmeye devam ettim ondan sonra oldu. düzelir diye çalışmaya devam ettim. sıfırdan XE6 da program yazdım aynı sorunları onda da yaşadım.
şimdilik bulduğum çözüm şu; programın bütün formlarını açıyorum. bütün formların OnKeyDonwn olaylarını tekrar aktive ediyorum. takıntısız bir derleme yapıyorum. derlenen exe programda problem olmuyor. ancak aynı projeyi geliştirmeye devam ettiğin zaman illaki derlemede takılma oluyor o zaman Formun OnKeyDown olayları ucuyor.
program yüklenirken (gelistirme esnasinda) ilk okunan pas dosyasi OnKeyDown prosedürünün tanimlandigi pas dosyasi olsun.
pojectmanager üzerinde projeye sag klik ve view source yap. orada siralamalari görürsün. düzenlemeyi yaptiktan sonra projeyi kayit et ve kapatip tekrardan ac. projectmanager'de siralamanin degistigini göreceksin.
kolay gelsin!
AddFontResource(PWideChar( ExtractFilePath(Application.EXEName) +'Tahoma.TTF')) ;
SendMessage(application.handle, wm_fontchange, 0, 0); // düzenlenmiş hali
//SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ; uygulamanın beklemeye aldığı kısım
Bu başlık altında sorulan soru ile alakalı değil ama sizin gönderdiğiniz bu kodla ilgili birşey paylaşmak istiyorum:
SendMessage ile broadcast mesaj gönderdiğinizde tüm uygulamalar bu mesajı işlemeden sizin programınız bir sonraki satıra geçmeyecektir. Application.handle olarak değiştirdiğinizde; sadece kendi programınıza mesaj gönderdiğiniz için ve programınız bu mesajı hemen işlediği için işler sorunsuz devam ediyor.
İşletim sistemi ile alakası nedir bilmiyorum ama diğer çalışan uygulamaların bu font değişikliğiyle bir ilgisi yoksa siz zaten broadcast mesaj göndermemelisiniz. Yada SendMessage yerine PostMessage kullanmalısınız.
Siz probleminizi zaten çözmüşsünüz ama belki okuyan birisinin işine yarar diye yazma ihtiyacı duydum, Kusura bakmayın...
AddFontResource(PWideChar( ExtractFilePath(Application.EXEName) +'Tahoma.TTF')) ;
SendMessage(application.handle, wm_fontchange, 0, 0); // düzenlenmiş hali
//SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ; uygulamanın beklemeye aldığı kısım
Bu başlık altında sorulan soru ile alakalı değil ama sizin gönderdiğiniz bu kodla ilgili birşey paylaşmak istiyorum:
SendMessage ile broadcast mesaj gönderdiğinizde tüm uygulamalar bu mesajı işlemeden sizin programınız bir sonraki satıra geçmeyecektir. Application.handle olarak değiştirdiğinizde; sadece kendi programınıza mesaj gönderdiğiniz için ve programınız bu mesajı hemen işlediği için işler sorunsuz devam ediyor.
İşletim sistemi ile alakası nedir bilmiyorum ama diğer çalışan uygulamaların bu font değişikliğiyle bir ilgisi yoksa siz zaten broadcast mesaj göndermemelisiniz. Yada SendMessage yerine PostMessage kullanmalısınız.
Siz probleminizi zaten çözmüşsünüz ama belki okuyan birisinin işine yarar diye yazma ihtiyacı duydum, Kusura bakmayın...
Hocam ne demek, neden kusura bakayım ben bu alanda yeni ve acemiyim, sizlerin sayesinde birşeyler öğreniyorum.iki kod arasındaki farklılığı farketmiştim fakat yorumlayamamıştım, onu da siz açıkladınız ve öğrenmiş oldum.Rabbim sizlerden razı olsun.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..