Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder Tuş Birleşimi Kullanabilme


Tuş Birleşimi Kullanabilme

AÇIKLAMA

C++ Builder 6 ile uyumludur. Bu projede birden fazla tuş bileşiminin nasıl kullanıldığı gösterilmiştir. Geliştirilen uygulamada Ctrl tuşuna basılı tutarken Alt tuşuna bastığınızda form üzerinde aktif olan nesnesinin boyutunun iki katını çıktığını görülür. Ctrl tuşunu bıraktığınızda ise nesne eski haline geri dönmektedir. Form üzerinde iken tuşa basma işlemlerinin gerçekleşebilmesi için Form bileşenin KeyPreview özelliğinin true olması gerekmektedir. Nesne boyutunun büyütülmesi işlemi Form'un OnKeyDown olayına yazılmıştır. Yani form üzerinde iken tuşa basılı tuttuğunuz sürece içerisindeki kod parçası çalışacaktır. Bu durumda basılı tuttuğunuz zaman dilimi saniyenin çok çok küçük bir parçası olsa bile aktif nesne yüzlerce kat büyüyebilir. Oysaki bizim isteğimiz bastığımızda boyutu iki katına çıksın bıraktığımızda ise normal haline geri dönmesidir. Yani bir kontrol gerekmektedir. Bu durumda bize bir değişken yeterli olacaktır. Form'un özelliklerinden biri ola Tag'ı bu amaçla kullanabiliriz. Biliyoruzki tag özelliği kullanıcı isteğine bağlı forma ait bir değişkendir. Genellikler formlar arası geçişte bir değişken olarak kullanılsada (form durumlarını öğrenmek gibi) biz burada bu özelliği kendi programımız için kullanmış bulunmaktayız.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt

Program Kodu:

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma resource "*.dfm"
  10. TForm1 *Form1;
  11. //---------------------------------------------------------------------------
  12. __fastcall TForm1::TForm1(TComponent* Owner)
  13.         : TForm(Owner)
  14. {
  15. }
  16. //---------------------------------------------------------------------------
  17.  
  18.  
  19. void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
  20.       TShiftState Shift)
  21. {
  22. TKeyboardState State;
  23. GetKeyboardState(State);
  24. bool Result =((State[VK_CONTROL] & 128));
  25. if(Form1->Tag!=1  &&  Result==true && Key==VK_MENU)
  26. {
  27.  Form1->Tag=1;
  28.  ActiveControl->ScaleBy(2,1);
  29. }
  30. }
  31. //---------------------------------------------------------------------------
  32.  
  33. void __fastcall TForm1::FormKeyUp(TObject *Sender, WORD &Key,
  34.       TShiftState Shift)
  35. {
  36. TKeyboardState State;
  37. GetKeyboardState(State);
  38. bool Result =((State[VK_CONTROL] & 128));
  39. if( Form1->Tag!=0 &&  Result==true && Key==VK_MENU)
  40. {
  41. Form1->Tag=0;
  42. ActiveControl->ScaleBy(1,2);
  43. }
  44. }
  45. //---------------------------------------------------------------------------
Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Salı, 04 Eylül 2012 02:41 )