edit.text arası dolaşma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Misafir

edit.text arası dolaşma

Mesaj gönderen Misafir »

Selam arkadaşlar, edit.text ler arasında dolaşırken tab tuşuyla geçiş yapabiliyorum ama ben enter tuşunu kullanarak geçmek istiyorum. Gerekli kodu yazabilirseniz sevinirim, kolay gelsin arkadaşlar
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

Kod: Tümünü seç

Procedure TForm1.FormCreate(Sender:TObject);
Begin
Keypreview:=True;
end;

Procedure TForm1.FormKeypress(Sender:TObject;Var key:Char);

Begin
if key=#13 then begin // ENTER
key:=#0;
PostMessage(Handle,WM_NEXTDLGCTL,0,0);
end;
end;

Procedure TForm1.FormKeypress(Sender:TObject;Var key:Word);

Begin
if key=vk_up then PostMessage(Handle,WM_NEXTDLGCTL,1,0);  // Yön tuşları
if key=vk_down then PostMessage(Handle,WM_NEXTDLGCTL,0,0);
end;
end; 


kolay gelsin.
Misafir

yön tuşları

Mesaj gönderen Misafir »

teşekkür ederim arkadaşım, enter tuşuyla geçiş yapabiliyorum fakat
yön tuşlarına ait kod hata veriyor. :)
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

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('Erkan', [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.

bu kodu notdefterine at ordanda faklı kaydet yoluyla OkToTab.pas şeklinde kaydet
bu bir componenet Erkan Adıyla bir tab acılacak
ordaki nesney forma koy

Kod: Tümünü seç

active:=true
yap
tamam
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Formun on keydown olayına

Kod: Tümünü seç

case key of
vk_return,vk_down:begin selectnext(activecontrol,true,true); key:=0; end;
ck_up:begin selectnext(activecontrol,false,true); key:=0; end;
end;//case

hem yön tuşları hemde enter tuşu çalışır. key:=0 comboboxlarda itemindexin değişmemesi için. yalnız enter tuşuna basıldığı zaman dın diye ses çıkartıyor onun için formun onkeypres olayına

Kod: Tümünü seç

if key=#13 then key:=#0;
yazarsan işlem tamam olur.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Misafir

teşekkür ederim

Mesaj gönderen Misafir »

ilginize teşekkür ederim


iyi olmak kolaydır ama adil olmak zordur
Cevapla