tek tuş sözlük mantığı nedir?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mucon
Üye
Mesajlar: 17
Kayıt: 05 Oca 2004 06:52
Konum: Ankara

tek tuş sözlük mantığı nedir?

Mesaj gönderen mucon »

Merhaba
Bir sözlük projesinde; bir belge (word, pdf, internet v.b) içinde geçen bir kelimeyi, mous'la seçerek herhangi bir fonksiyon tuşu (Alt-F2, Ctrl-F2 vb.)
ile formumuzda bulunan edit kutusunun içine nasıl ekleyebiliriz?

Cevap verenlere şimdiden teşekkürler

(Not: Veritabanı ile ilgili kodların yazımında herhangi bir sorun yok) :)
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Mesaj gönderen abdulkadir »

Merhaba

Formun KeyPeview in true yap

Kod: Tümünü seç

Form1.Keypreview:=True;
Formun keydown olayı

Kod: Tümünü seç


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  begin
if (Shift = [ssCtrl]) and (Chr(Key) = 'W') then
  begin
Edit1.Text:=RichEdit1.SelText;
end;
end;
örnekte
"ctrl" + "w" tuslarına basılınca olay gerceklesir
(secili metin edit1 e aktarılır)

sevgiler
Kullanıcı avatarı
mucon
Üye
Mesajlar: 17
Kayıt: 05 Oca 2004 06:52
Konum: Ankara

Mesaj gönderen mucon »

Merhaba Abdülkadir Bey

Cevabınız ve soruya ilginiz için teşekkür ederim..

Ancak şöyle bir problem var.. Siz Richedit içinde geçen kelimenin seçilerek edit1 kutusuna aktarılmasını kodlamışsınız. Fakat benim yaptığım projede ise program arkada çalışacak (mesela taskbar da) ve internet, word gibi dosyalarda geçen kelime seçilerek edit1 kutusuna aktarılacak..

Sanırım bunun için WinApi programlama gerekmekte fakat hangi kod kullanılması gerekiyor onu bilmiyorum... :) :)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam.

- Biliyorsunuz, Windows'ta basılan/yapılan herşey havada uçan mesajlar şeklindedir.

- Normalde her program kendi üzerinde akan Mesajları okuma kabiliyetindedir. Windows'ta basılmış bir tuşu algılamak için Windows'un ana otoyolu diyebileceğim Hooking (kanca ile) ile erişmeniz lazım.

- Bu durumda oradaki basılan tuş, daha windows algılamadan sizin programınızın denetimine geçecektir. Kulağınıza hoş geliyor değil mi ? Ama bu kadar mesajdan hangisini kullanacağınızı; WM_ ile başlayan bu mesaj paketlerinden ilgili olanını seçmelisiniz.

- Ben bununla ilgili bir çalışma yapmadım ama sizin için Google'dan Widnows Hook, Message Hook diye aratınca yüzlerce cevap gördüm. Başına Delphi ibaresini de ekleyip aratın.
Resim
Resim ....Resim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7588
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

Muharrem beyinde dediği gibi Hook kullanman lazım. sitede Dosyalar kısmından dxGridHook'u indirirsen orda hook kullanılıyor. Kodları incele fikir verebilir.

Ayrıca MSDN'den hook'larla ilgili bilgiye ulaşabilirsin. (Linkler kısmında MSDN'in linki var)

Kolay gelsin.
Kullanıcı avatarı
mucon
Üye
Mesajlar: 17
Kayıt: 05 Oca 2004 06:52
Konum: Ankara

Mesaj gönderen mucon »

Merhaba

Sayın Muharrem ve Mustafa Bey cevaplarınız ve bana göstermiş olduğunuz yardımlar için ne kadar teşekkür etsem azdır.
Sağolun yeni bir yol bulmamı sağladınız... :lol: :lol: :lol:
Cevapla