arkadaşlar kolay gelsin ben ctrl + q + 1 bu şekilde bir tuş kombinasyonu yapmak istiyorum nasıl yapacağım hakkında yardıma ihtiyacım var
şöyle bir şey denedim ama olmadı
if (shift[ssctrl])and(key=$51)and(key=$31) then
bu şekilde olmuyor.
ctrl + q + 1 nasıl yapılabilir
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: ctrl + q + 1 nasıl yapılabilir
Önce ctrl + q gelecek
sonra ctrl + 1 veya sadece 1
ctrl + q yu okuyunca bir degiskeni düzenleyip artık rakam bekleyeceksin.
Örnegin : ctrltus : global boolean degisken olacak normalde bu degisken hep false
tusalma bölümü şu şekilde olacak;
if ctrltus then
begin
// ctrl sonrasi tuslari kontrol et
case
1 .. 9 arasi ise sunlari yap // onlari yaptiktan sonra ctrltus u false yapmayi unutma
else
ctrltus := false;
// 1-9 disinde bir tusa basildiysa artik ctrltus kapatilmali yoksa sorun cikabilir.
end;
// programin devami
if ctrl - q basildiysa then ctrltus :=true
else ctrltusabasilmamis;
Yaklasik bunun gibi birşey yaparsan çalışır, delphi de daha basit bir yöntem var mi bilmiyorum, ama yukarıda iskeletini verdigim algoritma isini görür.
sonra ctrl + 1 veya sadece 1
ctrl + q yu okuyunca bir degiskeni düzenleyip artık rakam bekleyeceksin.
Örnegin : ctrltus : global boolean degisken olacak normalde bu degisken hep false
tusalma bölümü şu şekilde olacak;
if ctrltus then
begin
// ctrl sonrasi tuslari kontrol et
case
1 .. 9 arasi ise sunlari yap // onlari yaptiktan sonra ctrltus u false yapmayi unutma
else
ctrltus := false;
// 1-9 disinde bir tusa basildiysa artik ctrltus kapatilmali yoksa sorun cikabilir.
end;
// programin devami
if ctrl - q basildiysa then ctrltus :=true
else ctrltusabasilmamis;
Yaklasik bunun gibi birşey yaparsan çalışır, delphi de daha basit bir yöntem var mi bilmiyorum, ama yukarıda iskeletini verdigim algoritma isini görür.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3079
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: ctrl + q + 1 nasıl yapılabilir
Denedim oldu gibi..:
Kod: Tümünü seç
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
Ctrl_Q,Ctrl_1:Boolean;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
const
VK_Q=Ord('Q'); //81
VK_1=Ord('1'); //49
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Caption:='Olmadı';
case Key of
VK_Q:if Ctrl_1 then Caption:='Ahanda oldu'
else if ssCtrl in Shift then Ctrl_Q:=True;
49:if Ctrl_Q then Caption:='Ahanda oldu'
else if ssCtrl in Shift then Ctrl_1:=True;
end;
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_CONTROL:begin Ctrl_1:=False;Ctrl_Q:=False;end;
49:Ctrl_1:=False;
VK_Q:Ctrl_Q:=False;
end;
end;
end.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 26
- Kayıt: 03 Nis 2007 12:49
Re: ctrl + q + 1 nasıl yapılabilir
arkadaşlar çok teşekkürler en kısa sürede deneyeceğim