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
  ekranın köşesine yapışık bir button, form erdogan 4 2.841 03-03-2020, Saat: 15:56
Son Yorum: erdogan
  diziye benzersiz sayı atama harezmi 1 1.589 05-11-2019, Saat: 08:38
Son Yorum: serdar
  Çözüldü. Fastreport ta çalışma anında dataset atama cinarbil 2 2.966 11-07-2019, Saat: 17:55
Son Yorum: cinarbil
  Create edilen button olay ekleme. KUNTAY 4 3.521 26-05-2019, Saat: 15:19
Son Yorum: KUNTAY
  fonksiyon içinde parametreye default değer atama sorunu adelphiforumz 6 4.715 24-05-2019, Saat: 11:20
Son Yorum: adelphiforumz



Konuyu Okuyanlar: 1 Ziyaretçi