Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Delphi 10.4 Frame tab order sorunu
#1
Merhaba
delphi 10.4 ile TFrame lerdeki tab orderleri kullanamıyoruzmu? delphi 10.3
 ile böyle bir sorun yoktu tab ordeler normal çalışıyordu 10.4 yükledim denemek için tab orderler -1 oldu numaralandırıyorum kaydediyorum kapatıp açtığımda yine -1 oluyo, TabStop True bunu Falsede yaptım sonuç değişmedi bu sorunu düzeltmek için başka bir yöntemmi var?
Cevapla
#2
Merhaba,
Yaptığım incelemeye göre, Delphi 10.4'te TabOrder özelliğinde bir değişiklik yok. Diğer Delphi sürümlerinde nasıl ise bu sürümde de yapı aynı şekilde devam ediyor. 
 
   

Object Inspector'dan TabOrder'ı set edip, projeyi açıp kapattığımda (hatta IDE'yi de kapatıp, açtım), TabOrder değerinin set ettiğim son değerde kaldığını gördüm. 
Bir çözüm önerisi; Delphi 10.4 IDE'sini yönetici olarak çalıştırıp, testlerinizi yapın.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
Sorun daha basit bir sorun olabilir.

Windows yetki vb. durumlarındaki farkı anlamak için formun dfm dosyasını açıp elinizle birinin taborder değerini metin olarak değiştirip kaydeder misiniz?

Kaydettiğiniz şekilde kalıyorsa Delphi IDE'yi yönetici olarak çalıştır deyip bir deneyin diyeceğim.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#4
dediklerinizi yaptım ama sonuca ulaşamadım ufak bir örnek ekledim form üzeinde tab order çalışıyor freme de çalışmıyor taborder -1 oluyor kapatıp açınca
Deneme.rar
Cevapla
#5
Sizin gönderdiğiniz uygulamayı Delphi 10.4 ile açıp, frame'in taborder değerini Object Inspector'dan değiştirdim. 
Projeyi kapatıp açtım. 
Son verdiğim taborder değerini gördüm. 
IDE ile ilgili bir sorun olmadığını, yönetimsel bir sorun olduğunu düşünüyorum.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#6
Merakımdan soruyorum, frame'in taborder değerini hangi amaçla kullanıyorsunuz?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#7
(10-06-2020, Saat: 16:29)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merakımdan soruyorum, frame'in taborder değerini hangi amaçla kullanıyorsunuz?

özürdilerim hata bende soruyu yanlış sordum sanırım, TFrame icindeki editlerin tab order lerinde sorun yaşıyorum editler arası geçiş yapamıyorum
Cevapla
#8
(10-06-2020, Saat: 16:44)metinayhan Adlı Kullanıcıdan Alıntı:
(10-06-2020, Saat: 16:29)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merakımdan soruyorum, frame'in taborder değerini hangi amaçla kullanıyorsunuz?

özürdilerim hata bende soruyu yanlış sordum sanırım, TFrame icindeki editlerin tab order lerinde sorun yaşıyorum editler arası geçiş yapamıyorum

Big Grin
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#9
Demek istediğinizi şimdi örneğinizden yola çıkarak anladım.

Şimdi yapılanları adımlayarak yazayım, başlığı okuyanlar doğru anlasınlar, keza sizin örnek OrangeUI bileşenleri barındırıyor, temel paketlerde denemek her zaman en sağlıklısıdır.

Frame için 
* Design Time zamanında Edit'lerin TabOrder değerleri olarak sırasıyla 0,1,2 atamıştım.

Frame'deki bir butona altına 

procedure Tframefrm.Button1Click(Sender: TObject);
begin
  Edit1.Text := IntToStr(Edit1.TabOrder);
  Edit2.Text := IntToStr(Edit2.TabOrder);
  Edit3.Text := IntToStr(Edit3.TabOrder);
end;



RunTime'da ana formdan frame create işlemi şu şekilde.
procedure TForm1.Button1Click(Sender: TObject);
var
   frm : Tframefrm;
begin
   frm := Tframefrm.Create(self);
   frm.Name := 'TEST';
   frm.Parent  := self;
   frm.Position.X := 0;
   frm.Position.Y := 0;
   frm.Align := TAlignLayout.Client;
   frm.Visible := True;
end;


Frame'de daha önceden belirlenen butona basınca  bu değerler -1,-1,-1 olarak göründüler. 

Ancak Edit1.Text içine "TEST" şeklinde bir ifade koymuştum o değişmeden hayatına devam ederek kalmış.  Wink 

Demek ki her şey transfer olmuyormuş bunu ben de öğrenmiş oldum. 10.3'ü de henüz dün kaldırmıştım, deneyemiyorum...  Idea




qwmmggzw7gjvaei6ykca.gif





EKLEME : 

Ekstra hepsine bakayım diyerek Frame üzerindeki button kodunu örnek sınırlarına kadar genişlettim.

procedure TFrame2.Button1Click(Sender: TObject);
begin
 Application.MainForm.Caption := IntToStr(self.TabOrder);
 Button1.Text := IntToStr(Button1.TabOrder);
 Edit1.Text := IntToStr(Edit1.TabOrder);
 Edit2.Text := IntToStr(Edit2.TabOrder);
 Edit3.Text := IntToStr(Edit3.TabOrder);
end;


Burada button dahil  -1 gelirken 4 olarak belirlediğim Frame TabOrder değeri doğru bir şekilde 4 olarak Caption'da göründü...

VCL tarafında her şey normal... Olmasını beklediğimiz gibi gelişti. 

Edit 1, 2, 3 için TabOrder VCL tarafında otomatik sıralı üretildiğinden, farkı anlayayım diye tersten 3,2,1 olarak yeniden girdim. Bu detayı değerlendirerek inceleyebilirsiniz.

Sonuca varıyorum, sorun sadece FMX yakasında  Idea


p1kkctfjosh4rh9xxqhg.gif
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#10
Quality Embarcadero'ya bu BUG ile ilgili başlık açıldı. Validation kısa süre sonra biter, open issue olması saat farkına binaen akşamı bulabilir.
bkz. nysmxlytbl5ev7mfpz4b.png  [RSP-29552]

xfjuzeezplksbpu1rvik.gif
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Uygulama Açılırken Siyah Ekran Sorunu seydigozegir@gmail.com 2 127 06-08-2020, Saat: 12:14
Son Yorum: mrmarman
  Delphi 10.3.3 AppStore Yayınlama narkotik 9 449 05-08-2020, Saat: 20:39
Son Yorum: narkotik
  android sdk sorunu uersoy 5 561 27-07-2020, Saat: 09:05
Son Yorum: Fesih ARSLAN
  Oto login sorunu codder71 13 1.092 12-07-2020, Saat: 14:30
Son Yorum: codder71
  Delphi Firebase Post işlemi yhackup 11 4.417 29-06-2020, Saat: 09:29
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi