enter tuş kullanımı(çözüldü teşekkürler)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
otorun
Üye
Mesajlar: 59
Kayıt: 31 Eki 2005 05:04
Konum: izmir

enter tuş kullanımı(çözüldü teşekkürler)

Mesaj gönderen otorun »

merhaba arkadaşlar ben enter tuşuna bastığım zaman bir alttaki edit kutusuna inmek istiyorum (yani tab yaparak inebiliyoruz ya onu enter tuşu ile yapmak istiyorum)bunu nasıl yapabilirim.bilen varsa yardım edebilir mi acill olarak lazım
En son otorun tarafından 26 Nis 2006 12:50 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
ertline
Üye
Mesajlar: 137
Kayıt: 23 Nis 2005 09:15
Konum: Bartın
İletişim:

Mesaj gönderen ertline »

Aşağıdaki kod işini görür sanırım.

Kod: Tümünü seç

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
  begin
     if (Key = #13) then
     begin
        Key := #0;
        Perform(WM_NEXTDLGCTL, 0, 0);
     end;
  end; 
Kolay gelsin...
"Bilginin Doruğuna Hep Birlikte..."
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

bu uniti derle component olarak yükle. böylece formlarında otomotik olarak enter ve ok tuşları ile dolaşım yapabilirsin.
kolay gelsin.

Kod: Tümünü seç

unit OkToTab; 

interface 

uses    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; 

type 
  TMoveOptions = set of (moEnter,moUpDn); 

  TDosMove = class(TComponent) 
  private 
    FActive       : boolean; 
    FOptions      : TMoveOptions; 
    FOwnerKeyDown : TKeyEvent; 
  protected 
    procedure NewKeyDown(Sender : TObject;var Key : word;Shift : TShiftState); 
  public 
    constructor Create(AOwner : TComponent); override; 
  published 
    property Active : boolean read FActive write FActive; 
    property Options : TMoveOptions read FOptions write FOptions; 
  end; 

procedure Register; 

implementation 

procedure Register; 
begin 
  RegisterComponents('dosmove', [TDosMove]); 
end; 

constructor TDosMove.Create(AOwner : TComponent); 
var 
  Loop : integer; 
begin 
  // ilk önce başka bir DosMove bileşeni var mı diye kontrol ediliyor 
  for Loop:=0 to AOwner.ComponentCount-1 do 
    if AOwner.Components[Loop] is TDosMove then raise 
      EInvalidOperation.Create('TDosMove can have only one instance per form'); 
  inherited Create(AOwner);                 // Bileşen oluşturma ve default özelliklerinin belirlenmesi. 
  FActive:=false; 
  FOptions:=[]; 
  // Formun OnKeyDown olayı ile bütünlük sağlanıyor. 
  FOwnerKeyDown:=(AOwner as TForm).OnKeyDown; 
  (AOwner as TForm).OnKeyDown:=NewKeyDown; 
  (AOwner as TForm).KeyPreview:=true; 
end;               // Create 

procedure TDosMove.NewKeyDown(Sender : TObject;var Key : word; Shift : TShiftState); 
begin 
  if FActive and (FOptions<>[]) then begin 
    // istenilen tuşlar ele alınıyor. 
    if ((Key=VK_DOWN) and (moUpDn in FOptions)) or 
       ((Key=VK_RETURN) and (moEnter in FOptions)) then 
      (Owner as TForm).Perform(WM_NEXTDLGCTL,0,0) 
    else if (Key=VK_UP) and (moUpDn in FOptions) then 
      (Owner as TForm).Perform(WM_NEXTDLGCTL,1,0); 
  end;               // if FActive ... 
  // Daha önceden atanmış OnKeyDown olayı çağrılıyor 
  if assigned(FOwnerKeyDown) then FOwnerKeyDown(Sender,Key,Shift); 
end;                     // NewKeyDown 

end.
Kullanıcı avatarı
SeRoKi
Üye
Mesajlar: 72
Kayıt: 09 Kas 2005 02:59
Konum: İstanbul

Mesaj gönderen SeRoKi »

edit in keypress olayına

Kod: Tümünü seç

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); 
  begin 
     if (Key = #13) then 
     begin 
        Edit2.SetFocus; // Başka bir bileşen de olabilir.
     end; 
  end;
yazarak da istediğin bileşene konumlanabilirsin.
otorun
Üye
Mesajlar: 59
Kayıt: 31 Eki 2005 05:04
Konum: izmir

Mesaj gönderen otorun »

teşekkürler arkadaşlar yardımlarınız için gerçekten çok işime yaradı
Cevapla