bileşenler arasında enter ile dolaşma ve Tpagecontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

bileşenler arasında enter ile dolaşma ve Tpagecontrol

Mesaj gönderen hdayi »

Merhaba,
Tpagecontrol kullandığım bir uygulamam var. Kullanıcının girmesi gereken bilgileri gruplayıp ayrı ayrı sayfalara yerleştrdim.
Kullanıc her bilgiyi girip enter'a basınca bir sonraki componente gidiyor (kullandığım componentler dbedit ve dblookupcombobox).
Sayfanın sonundaki component'tye enter'a basınca ise bir sonraki sayfaya gönderen button'un click olayını çalıştırarak bir sonraki syafaya gönderiyorum ancak sayfalarımın birinin başında iki tane dblookupcombobox var ve sırası ile tab stopları 0 ve 1, bu sayfaya gelince tab stop'ı 0 olan yerine 1 olan seçilmiş oluyor.
bunu engellemke için o sayfanın onshow olayına kod yazmış olmama rağmen bi şey değişmedi.

Kod: Tümünü seç

procedure Tfrmgenel.DBEdit60KeyPress(Sender: TObject; var Key: Char);
begin
  if key=char(vk_return) then
  begin
    key:=#0;
    PostMessage(handle,WM_NEXTDLGCTL,0,0);
    if Sender=DBEdit66 then SpeedButton5.Click;
    if Sender=DBEdit9 then SpeedButton2.Click;
    if Sender=DBEdit2 then SpeedButton6.Click;
    if Sender=DBCheckBox12 then SpeedButton9.Click;
    if Sender=DBEdit51 then SpeedButton7.Click;
    if Sender=DBEdit117 then SpeedButton12.Click;
    if Sender=DBCheckBox7 then btnpost.Click;
  end;
end;

procedure Tfrmgenel.tskadinarkaShow(Sender: TObject);
begin
  dlckmedenihal.Focused;
end;
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Merhaba,

Aynı problem bir projemde benimde başıma gelmişti. yanlış hatırlamıyorsam SetFocus ile Formun OnShow olayında konumlandırabiliyordum.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

hüseyin hocam dediğin gibi sayfanın onshow olayına dlkmedenihal.setfocus; yazdım ancak yine aynı şey oluyor.
Bu satırın başına breakpoint koydum. Satırı çalışitırdıktan sonra mous'u üzerine getirdiğimde dlkmedenihal.setfocus=inaccessible value yazıyor. Bu bir hata mıdır?
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Hocam hallettim,
sayfadaki son componentte postmessage'ın çalışmaması gerekiyormuş. Kodu aşağıdaki gibi değiştirdim oldu.

Kod: Tümünü seç

procedure Tfrmgenel.DBEdit60KeyPress(Sender: TObject; var Key: Char);
begin
  if key=char(vk_return) then
  begin
    key:=#0;
    if not((Sender=DBEdit66) or (Sender=DBEdit9) or (Sender=DBEdit2) or (Sender=DBCheckBox12) or (Sender=DBEdit51) or (Sender=DBEdit117) or (Sender=DBCheckBox7))
    then PostMessage(handle,WM_NEXTDLGCTL,0,0);
    if Sender=DBEdit66 then SpeedButton5.Click;
    if Sender=DBEdit9 then SpeedButton2.Click;
    if Sender=DBEdit2 then SpeedButton6.Click;
    if Sender=DBCheckBox12 then SpeedButton9.Click;
    if Sender=DBEdit51 then SpeedButton7.Click;
    if Sender=DBEdit117 then SpeedButton12.Click;
    if Sender=DBCheckBox7 then btnpost.Click;
  end;
end;
Teşekkürler
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Cevapla