Delphi'de (bu durumda 2010, ancak diğer sürümler için yapabilir) kalıtsal bir TImageList içeren bir form açılırken, IDE değişmez olarak (hiçbir şey veya ritim, görüntü verisini tekrar kalıtsal forma ekler. Bu daha sonra yürütülebilir dosyanın boyutunu artırır. Herhangi biri nedenini biliyor ve bunu nasıl durdurabilirim? Tekrarlıyorum, görüntü değişti değil.Delphi IDE Inherited DFM dosyalarında imagelist değiştirme
cevap
Benim önerim: görüntüleri .dfm dosyalarında saklamayın. Her zaman bunları kaynak dosyalarına koyun ve uygulamanızın kontrolünü yeniden kazanın.
Bu, TImageList ile ilgili bilinen bir sorundur ve çöp verilerinizi tekrar silmeye devam etmemek dışında yapabileceğiniz çok şey yoktur. (Burada özellikle kaynak kontrolü ile bağlantılı olarak BeyondCompare çok yararlı olabilir.) If you want to see it fixed, please vote for the QC report on it.
Bu sorun için bir çözüm değildir, ancak neler olup bittiğine dair bir açıklama. Belirli bir görüntü listesi için görüntü verileri, ikili veri bloğu olarak saklanır. Bu veri bloğu, comctl32.dll dosyasındaki IMAGELIST uygulamasından elde edilir. olasılıkla neler oluyor
nedense comctl32.dll aşağı, Windows uygulaması "atası" Örneğin ve "soyundan" Örneğin arasında farklı görüntü verilerini akışı olmasıdır. Windows'a, bu iki örnek arasında bir ilişki yoktur.
Biçim kalıtım yöntemi, verilen bir özelliğin forma yazılması gerekip gerekmediğini belirlemek için akış sırasında "alt öğe" ile "ata" arasında özellik-özellik karşılaştırması yapmasıdır. Görüntü verisi goo'nun opak bir bloğu olduğundan, tek yapabildiğimiz, atadaki TImageList örneğinin yazdığı ve torundaki TImageList örneğinin ne yazdığı arasındaki bayt-byte karşılaştırmasıdır. Yalnızca bir bayt farklıysa, akışlı sistemin bir değişkenin değişmiş olduğu varsayımına dayanarak alt soydan gelen veriyi yazmaktan başka seçeneği yoktur. Mesela (ve opak olmadığı için detayları bilmiyorum), eğer goo blobunda bir zaman damgası varsa, her yazılan zamanın farklı olacağı düşünülebilir.
Yaptığım şey, bir veri modülüne görüntüleyiciyi koymak ve sonra form kullanım deyimine eklemek. Form tasarımcısı resim listesini görebilecektir
Projelerimin çoğunda, bu tür görüntü listelerini içeren bir veya daha fazla kaynak veri modülüm var. –
- 1. DFM Dosyasını kullanarak Delphi IDE
- 2. Delphi IDE kullanarak kesme noktaları nasıl kaydedilir?
- 3. Delphi: Geçersiz Klasör Adını Değiştirme
- 4. Çalışma zamanındaki bir görüntüleyiciye Delphi XE
- 5. Metin DFM içerik menüsü seçeneği ne anlama geliyor?
- 6. Delphi 7
- 7. Delphi 10'da .stat dosyasının oluşturulmasının durdurulması Seattle IDE
- 8. Bu, bu Q cevabım itibaren takip Delphi IDE
- 9. Delphi benzeri bir şekilde hangi Java IDE en çok RAD'dir?
- 10. delphi ide neden windows platform zamanlayıcı çözünürlüğünü artırıyor?
- 11. Delphi 2010
- 12. Inherited C# Sınıfı "Referans" kaybediliyor
- 13. Delphi 10 Seattle IDE sorunu:. Sonra herhangi bir ipucu (ben 2 makinelerde Delphi 10 Seattle yüklü
- 14. ImageList: 32-bit Görüntüler kalitesini kaybediyor
- 15. IDE
- 16. IDE
- 17. Eclipse IDE'ndeki satır aralığı/çizgi yüksekliğini değiştirme IDE
- 18. ImageList bana Alphablending'i vaat ediyor, ancak nasıl etkinleştiririm?
- 19. Delphi içinde bir bileşen sınıfının değiştirilmesi
- 20. Cascading/Inherited/Shared Rails yapılandırma ortamları
- 21. CRTP ve typedef kullanan "Inherited" tipleri
- 22. Inherited Javascript Object özellik değerlerini kaybeder
- 23. WebStorm IDE ile kinvey web'i kullanma IDE
- 24. Selenium IDE kullanarak tamsayıya metin dönüştürme IDE
- 25. Otomatik IDE
- 26. Eclipse IDE
- 27. selenium ide
- 28. CodeLite IDE
- 29. Delphi
- 30. Delphi
Ne yapıyorum resim modülünü veri modülüne koyup form kullanımlarına eklemelisiniz. Tasarımcı onu görebilmeli – Jamie
@Jamie: Bunu bir cevap ver! –
@jeroen Pluimers - Eklendi – Jamie