CM_EXIT iletisi aldığında DataLink.UpdateRecord çağrılan bir DB bileşenim var. Bu mesaj odağı kaybettiğinde gönderilir. İleti düğmesini tıkladığımda, odağı kaybetmez ve veri kaynağı için değer yazılmaz. Bir diğerine geçmeden odak kaybetme bileşeninin etkisine nasıl ulaşabilirim?Odaklanmış bileşenlerden odaklanma nasıl kaldırılır?
cevap
Sen kullanabilirsiniz:
procedure TCustomForm.DefocusControl(Control: TWinControl; Removing: Boolean);
TCustomForm.FocusControl
'a bakın. Odağı başka bir şeye dönüştürmeden odağı kaybettiremezsiniz, ancak geçiş yapabilir ve hemen sonra tekrar çalışmaya başlayabilirsiniz.
Ve bunun FocusControl ile nasıl yapabilirim: Bu deneyin? Aktif kontrolde çağırmak olayları tetiklemez. – LukLed
Biz bunu gerçekleştirmek Self.ActiveControl ayarlayarak: = nil. Bu, tüm çıkış olaylarının ateşlenmesine neden olur. Bizim durumumuzda, kaydettikten sonra tekrar kontrol odağına tekrar odaklanmak istedik. Bu, odağı kabul edebilecek iyi bir kontrole sahip olduğumuzdan emin olmak için birkaç ekstra kontrol gerektirdi.
procedure TSaleEditor.SaveCurrentState();
var
SavedActiveControl: TWinControl;
AlternateSavedControl: TWinControl;
begin
// Force the current control to exit and save any state.
if Self.ActiveControl <> nil then
begin
SavedActiveControl := Self.ActiveControl;
// We may have an inplace grid editor as the current control. In that case we
// will not be able to reset it as the active control. This will cause the
// Scroll box to scroll to the active control, which will be the lowest tab order
// control. Our "real" controls have names, where the dynamic inplace editor do not
// find an Alternate control to set the focus by walking up the parent list until we
// find a named control.
AlternateSavedControl := SavedActiveControl;
while (AlternateSavedControl.Name = '') and (AlternateSavedControl.Parent <> nil) do
begin
AlternateSavedControl := AlternateSavedControl.Parent;
end;
Self.ActiveControl := nil;
// If the control is a radio button then do not re-set focus
// because if you are un-selecting the radio button this will automatically
// re-select it again
if (SavedActiveControl.CanFocus = true) and
((SavedActiveControl is TcxRadioButton) = false) then
begin
Self.ActiveControl := SavedActiveControl;
end
else if (AlternateSavedControl.CanFocus = true) and
((AlternateSavedControl is TcxRadioButton) = false) then
begin
Self.ActiveControl := AlternateSavedControl;
end;
end;
end;
Windows biriminde bir SetFocus işlevi var.
Windows.SetFocus(0);
- 1. NSTextView'a odaklanma
- 2. JPopupMenu'da odaklanma nasıl elde edilir
- 3. jquery son odaklanmış öğe
- 4. Android: TimePicker öğelerine odaklanma
- 5. metin kutusuna odaklanma
- 6. php'de oturum değişkenine odaklanma
- 7. Geçerli olarak odaklanmış uygulamayı nasıl algılayabilirim?
- 8. Odaklanmış görünümün arka plan rengini nasıl değiştirirsiniz?
- 9. Çevik geliştirmede Sprint-odaklanmış zihniyet
- 10. JpaRepository, bileşenlerden ayrı pakette uygulanmadığında/enjekte edilmiyor
- 11. girişe odaklanma Google arama
- 12. iPhone'da sonraki uitextfield'e odaklanma nasıl ayarlanır?
- 13. Android'de RecycleView'den odaklanma göstergesini kaldırma
- 14. Linear Layout'ta ebeveynten odaklanmaya odaklanma
- 15. OSX Terminali - Uygulamayı Değiştir Odaklanma
- 16. Yeni odaklanmış öğeyi (varsa) onBlur olayından alın.
- 17. Fluent Nhibernate - bileşenlerden oluşan bir koleksiyonun eşlenmesi (değer nesneleri)?
- 18. Odaklanma, ancak etkileşime izin vermiyor musunuz?
- 19. Odaklanma olmadan C# biçiminde bir form açma
- 20. Açısal 2/4 ayarlı giriş elemanına odaklanma
- 21. Tarayıcı eklenmiş bulanık kenarlığı, odaklanmış form öğelerinde nasıl kaldırabilirim?
- 22. "android: Theme.Holo.Light" kullanırken odaklanmış bir EditText'in rengi nasıl değiştirilir?
- 23. Android, Basılı veya odaklanmış olduğunda TextView metni nasıl kalınlaştırılır
- 24. C# liste görünümünde odaklanmış bir öğe nasıl tutulur?
- 25. Android - Çevirme cihazına alt (odaklanmış) bir sınır nasıl eklenir?
- 26. Vis.js Geçerli Zamana Odaklanma (Kırmızı Çizgi)
- 27. Çevreleyenler nasıl kaldırılır ??? ileti
- 28. İletişim marjları nasıl kaldırılır?
- 29. TabHost'dan nasıl kaldırılır
- 30. elasticsearch nasıl kaldırılır?
Bu işleme baktım, kullanmayı denedim ve işe yaramadı. Şimdi tekrar yaptım ve işe yarıyor. Uykuya gitme zamanı :) – LukLed
Oluştukça, Self.ActiveControl: = nil işini yapar ve daha sezgiseldir. Açıkçası benim için değil .... – LukLed
@LukLed: Harika bahşiş, teşekkürler! – Sharken