Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Button lara kısa yol atama hk.
#1
iyi günler
form üzerindeki button lara kısayol atıyorum.
Klavyeden Alt+F1 .. Alt+F12  arası tuşladığında  
önce Alt+F1 basılmış gibi işlem görüyor sonra  sadece F1 basılmış gibi işlem yapıyor.
tüm tuş tanımlarında aşağıdaki gibi  yaparak sorun çözülüyor ama kod kalabalığı oluyor.
F1 .. F12 lerin Onkeypress olayına tanımlamak isteyince Key:Char nedeni ile tip uyuşmazlığı oluyor.
Onkeypress olayında Key:Char
KeyDown veya KeyUp Key: Word

procedure Tkapifrm.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
    
    if (Shift = [ssAlt]) and (Key = VK_F1) then
        begin
        bt_formul_al.click;
        Key := #0;
       end;

   if (Key = VK_F1) then
      begin
      bt_ilk.Click;
      Key := #0;
      end;
end;
   

kullandığım ve iki tuşa basılmış gibi algılayan kod aşağıda
procedure Tkapifrm.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin

 if (Key = VK_F1)       then bt_ilk.Click; // F1 ilk kayıt butonuna basıldı
 if (Key = VK_F2)       then bt_onceki.Click; // F2 onceki butonuna basıldı
 if (Key = VK_F3)       then bt_sonraki.Click; // F3 sonraki butonuna basıldı

 if (Key = VK_F1) and (Shift = [ssAlt])      then bt_formul_al.Click; // Alt+F1 Formul al
 // if (Shift = [ssAlt]) and (Key = VK_F1)      then bt_formul_al.Click; // Alt+F1 Formul al
end;
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#2
Bu tarz işler için TAction tavsiye ederim. TActionList bileşenine bakılabilir.
There's no place like 127.0.0.1
WWW
Cevapla
#3
Delphi 7 kullanırken bende ide' den run ettiğimde tuşların işlemedeğini görüp epey uğraşmıştım sonra derleyip exe'yi çalıştırdığımda ise tuşlar çalışıyordu..... Hani bi ihtimal....
Cevapla
#4
@SimaWB  

Allah razı olsun 
Süper bir şey 
tek satır kod yazmadan kısayol verilebiliyor
daha ne özellikleri var araştırayım.
teşekkür ederim.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#5
@SimaWB önerisi destekliyorum.

Başlıktaki sorunuzun cevabı için çözümsüz de ondan farklı bir yol deneniyor algısı oluşmasın diye, sorunsalın aslında IF bloklarını bağlayıcı (birbiri ile ilişki anlamında) olarak ELSE kullanılmadığını gördüğümü ve bu nedenle olduğunu bildirmek için yazma gereği duydum.

var
  A,B : Integer;
begin
 A := 10;
 B :=  5;

 if (A=10) AND (B=5) then ShowMessage( 'A:10 B:5');

 if (A=10) then ShowMessage('A:10');
end;


gibi bir örnek için iki durum için iki mesaj görürken, araya ELSE koyarsanız 


var
  A,B : Integer;
begin
 A := 10;
 B :=  5;

 if (A=10) AND (B=5) then ShowMessage( 'A:10 B:5')
 ELSE
 if (A=10) then ShowMessage('A:10');
end;
sadece birisi için mesaj görürsünüz. Mantık olarak örnekteki gibi en çoğulcu ihtimalden tekile doğru bir sıralama izlerseniz mantık tutar ( önem sırası dieylim). 

Ancak aksi ( tekilden çoğula ) sıralama yapılırsa if satırları dilediğiniz mantık silsilesi için dikkate alınmaz.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#6
(09-03-2019, Saat: 19:17)mrmarman Adlı Kullanıcıdan Alıntı: @SimaWB önerisi destekliyorum.

Başlıktaki sorunuzun cevabı için çözümsüz de ondan farklı bir yol deneniyor algısı oluşmasın diye, sorunsalın aslında IF bloklarını bağlayıcı (birbiri ile ilişki anlamında) olarak ELSE kullanılmadığını gördüğümü ve bu nedenle olduğunu bildirmek için yazma gereği duydum.

var
  A,B : Integer;
begin
 A := 10;
 B :=  5;

 if (A=10) AND (B=5) then ShowMessage( 'A:10 B:5');

 if (A=10) then ShowMessage('A:10');
end;


gibi bir örnek için iki durum için iki mesaj görürken, araya ELSE koyarsanız 


var
  A,B : Integer;
begin
 A := 10;
 B :=  5;

 if (A=10) AND (B=5) then ShowMessage( 'A:10 B:5')
 ELSE
 if (A=10) then ShowMessage('A:10');
end;
sadece birisi için mesaj görürsünüz. Mantık olarak örnekteki gibi en çoğulcu ihtimalden tekile doğru bir sıralama izlerseniz mantık tutar ( önem sırası dieylim). 

Ancak aksi ( tekilden çoğula ) sıralama yapılırsa if satırları dilediğiniz mantık silsilesi için dikkate alınmaz.

Hocam site de bir hata var sanıırm.. Yanlış Captionın cevabını buraya atmış yine Smile
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#7
@mcuyan  herhangi bir yanlışlık yok
@mrmarman hocam kodları başka örnekten alarak verdiğinden siz excel secili sutun örneği zannettiniz.


@mrmarman bilgilendirme için teşekkür ederim.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Tüm alt componentlere event atama murtishow76 7 742 12-10-2018, Saat: 14:04
Son Yorum: murtishow76
  static değişkene Default değer atama! bozli54 3 952 26-05-2017, Saat: 15:35
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi