2011-03-15 15 views
6

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

+2

Ne yapıyorum resim modülünü veri modülüne koyup form kullanımlarına eklemelisiniz. Tasarımcı onu görebilmeli – Jamie

+1

@Jamie: Bunu bir cevap ver! –

+0

@jeroen Pluimers - Eklendi – Jamie

cevap

2

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.

4

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.

5

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

+0

Projelerimin çoğunda, bu tür görüntü listelerini içeren bir veya daha fazla kaynak veri modülüm var. –