Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Masaüstü için sanal klavye yapmak
#1
Merhaba
Masaüstü projemde edit ve memolar gibi text değerli Companentlerde kullanmak için istediğim zaman açacağım bir sanal klavye yazıyorum.
Önce yaptıkları maddeliyim
İstediğim componentin konumuna göre screendeki boş alana göre sağında solunda ortasında en uygun yere klavyeyi oluşturuyorum.
Formun sürüklendiğinde klavyede beraberinde konumlanıyor.
Burada sorun yaşadığım konu nesne ile aynı forma create edersem klavye forma sığmıyor fakat ekrana sığıyor ve parenti form olduğu için formun üzerinde gözükmüyor.
Ayrı bir forma create Edip en üstte gösterirsem ornek olarak edite yazıyor fakat cursor imleci kaybediyorum.
Bir popupmenu olusturur klavyeyi bunun icerisine bir şekilde yerleştirir isem numpad ve harf keyboardi ayrı olduğu icin görsel sorun lar yaşıyor um.
Forumda bu tarz bir klavye çalışması yapmış arkadaş varsa tecrübelerini benimle paylaşırsa çok mutlu olurum.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#2
Örnek resim gönderirsen daha iyi olur gibi.

Veya OSK gibi bir şey düşünür müsün?

(Win+R / "osk")
Cevapla
#3
Şuan Windows klavyesini kullandırttıyorum fakat Windows tan windowsa sıkıntı lar çıkıyor.
Zaten ne zaman regedit,Win API ,PowerShell gibi Windows erişimleri ni kullansam uzun vadede kafam ağrıdan kurtulmuyor.
Yok Win update almamış yok servis pack yüklenmemiş
Mecbur kalmadıkça windowsa bulaşmıyorum.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#4
BEn kendi uygulamam da sadece rakamlarla işlem yapan bir klavye oluşturdum. Fakat sen sahip formun create olayı bitmeden başka formu create etmeye çalışırsan dediğin gibi accessviolation hatasını alırsın. yerinde olsam, klavye formunu bir butona bağlarım. yada create haricinde bir olaya, ondan sonra açtırırım klavyemi.. ben mesela bir editin on enter olayında klavye formunu show ettiririyorum.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#5
Winapi işlevleri ile çözülür sanıyorum. Eskiden biraz uğraşmışlığım vardı.

Focus kaybetmemek için SpeedButton gibi odaksız nesneler kullanabilirsin.
Formun parentini de SetParent yoluyla 0 veya Desktop HWND yapabilirsin.
BringWindowToTop ile de en öne getirmek lazım.

Sık kullanıyorsan sürekli hafızada tutmayı da deneyebilirsin.
Bu yapı ile form değişkenini biraz daha kullanışlı hale getirmiş oluyoruz.
Ben tüm yardımcı form kullanma işlemlerini aşağıdaki taslak şeklinde yaparım.


interface

type
  TKlavyeForm = class(TForm);
  ...


procedure KlavyeFormGoster;
procedure KlavyeFormSil;

var
  KlavyeForm: TKlavyeForm;

implementation

procedure KlavyeFormGoster;
begin
  if KlavyeForm = nil then
     KlavyeForm := TKlavyeForm.Create(...);  //Desktop veya ana form içine.
  KlavyeForm.Show;
end;

procedure KlavyeFormSil;
begin
  if KlavyeForm <> nil then
  begin
     KlavyeForm.Free;
    KlavyeForm:=nil;
  end;

end;
Cevapla
#6
@SimaWB
Hocamın önerisiyle
https://stackoverflow.com/questions/5910...board-form
örneğinden faydalanarak numpad ve windowsun ki gibi tüm tuşları içeren 2 adet virtual keyboard yaptım. Aktif olan nesnenin screendeki konumuna göre boşlukları hesaplayarak altında,üstünde,sağında,solunda oluşturdum.
Yardımcı olan herkese teşekkürler.
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla
#7
Merhaba uygulama içerisinde TTouchKeyboard komponentini denediniz mi?
Cevapla
#8
(13-07-2018, Saat: 21:41)sametkayaoglu Adlı Kullanıcıdan Alıntı: Merhaba uygulama içerisinde TTouchKeyboard komponentini denediniz mi?

Embercaderonun sırf yapmış olmak için yaptigi component herhangi bir özelleştirme yapilamiyor, dinamik kullanimda sorunları var
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi için yapay zeka kod yardımcısı eklentisi csunguray 13 2.504 05-02-2025, Saat: 20:13
Son Yorum: mrmarman
  Masaüstü projesini dağıtıma hazırlamak hakkında mxpain 2 719 29-01-2025, Saat: 13:19
Son Yorum: mrmarman
  7d sinema icin video oynatici yapmak hk. sadikacar60 3 801 19-11-2024, Saat: 21:38
Son Yorum: sadikacar60
  resimlerle ekran koruyucu yapmak sadikacar60 2 706 20-06-2024, Saat: 20:27
Son Yorum: sadikacar60
  çözüldü-screenshot yapmak hk. sadikacar60 16 8.805 19-06-2024, Saat: 16:12
Son Yorum: bydelphi



Konuyu Okuyanlar: 1 Ziyaretçi