ctrl + q + 1 nasıl yapılabilir

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ibrahimkgul
Üye
Mesajlar: 26
Kayıt: 03 Nis 2007 12:49

ctrl + q + 1 nasıl yapılabilir

Mesaj gönderen ibrahimkgul »

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.
mehmetcan
Üye
Mesajlar: 63
Kayıt: 14 Tem 2008 05:19

Re: ctrl + q + 1 nasıl yapılabilir

Mesaj gönderen mehmetcan »

Ö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.
Kullanıcı avatarı
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

Mesaj gönderen sabanakman »

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. - .
ibrahimkgul
Üye
Mesajlar: 26
Kayıt: 03 Nis 2007 12:49

Re: ctrl + q + 1 nasıl yapılabilir

Mesaj gönderen ibrahimkgul »

arkadaşlar çok teşekkürler en kısa sürede deneyeceğim
Cevapla