Kulağa aptalca gelebilir, ancak birkaç özel durumla karşılaştım, uygulamanın ne olduğunu göstermemesi için, başka bir özel eylem gerçekleşene kadar (stringGrids verilerle doldu, UI hazırlandı ...). İletilerin uygulamadan OS'ye gönderilmesini engellemenin bir yolu var mı?Delphi - sistem mesajlarını tutun/UI'yı yeniden çizmeyi engelleyin?
Yani,
application.processmessages
bazı oposit var mı? Şun gibi bir şey:
application.stopProcessingMessages;
fill stringGrids, prepare the UI...
application.processMessagesAgain;
?
Elbette, eylemleri ayrı bir iş parçacığında çalıştırabilirim, ancak istemediğim veya ayrı bir iş parçacığında yapamadığım durumlar var.
* grid * nedir? Hiçbir * Application.StopProcessingMessages * yoktur, ancak özellikle ne yaptığınıza bağlı olarak bazı bileşenleri ekranın güncellenmesini durdurmanın yolları vardır. Ancak, gerçek bir alakalı bilgi yayınlamadığınız için önerilerin sunulması zordur. Kod için yazdığın şey oldukça fazla * Bende blah yapan bir kod var, falan filan. Herhangi bir detay olmadan, bu kodun davranışını nasıl değiştirebilirim? * –
Bunu düzeltmenin birçok farklı yolu. Bir ızgara üzerinde kontrol kullanmaktan başlayarak. Örneğin bir sanal mod listesi görünümü. Tüm verilerinizi bir UI denetiminde tutmak zayıf tasarımdır. Sadece bunun sonuçlarına bakıyorsunuz. Bastırmayı kaldırmak, onu düzeltmenin bir yolu olurdu. Elde etmek zor değil. Hiçbir zaman ProcessMessages'ı çağırmamalısınız. Muhtemelen Windows mesajlarının nasıl çalıştığı hakkında daha iyi bir anlayışa sahip olursunuz. –
Tam olarak ızgara örneğine bağlı kalmak istemiyorum. Ama bu durumda TStringGrid –