enter tuş kullanımı(çözüldü teşekkürler)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
enter tuş kullanımı(çözüldü teşekkürler)
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.
Aşağıdaki kod işini görür sanırım.
Kolay gelsin...
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;
"Bilginin Doruğuna Hep Birlikte..."
bu uniti derle component olarak yükle. böylece formlarında otomotik olarak enter ve ok tuşları ile dolaşım yapabilirsin.
kolay gelsin.
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.
edit in keypress olayına
yazarak da istediğin bileşene konumlanabilirsin.
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;