[ FranjoZG @ 25.04.2019. 22:25 ] @
Delphi XE 10.1
Radim svoju kontrolu koja na sebi ima TImage (16 x 16) u koji se učitava bitmap iz resource-a.
Može biti jedan od 3 bitmap-a, svi su 16 x 16.
U konstruktoru klase učitam 3 tBitmap-a iz resource-a koje kasnije treba prikazivati u TImage kontroli.

Napravim zamjenu slike

Code:

Slika.Picture.Bitmap := nil;
Slika.Picture.Bitmap := Slika2;


Nakon toga se vidi lijebi rub prethodne slike, 1-2 pixela. Ako prežem mišem preko slike, rub nestaje bez bilo kakove intervencije.
Prva verzija je umjesto TImage imala tBitBtn gdje sam koristiio Glyph. Tada nisam imao tih problema.

Pokušao sam svašta, nema uspjeha. Pokušao sam napraviti i Slika.free, pa kreirati novu.

Zaboravite pitanje...
s lijeve strane TImage-a je CheckBox bez teksta... malo predugačak pa je prekrio dio slike. Kad sam ga skratio - sve OK. Riješio sam problem, ali mi nije jasno ponašanje programa.
[ savkic @ 26.04.2019. 06:15 ] @
> s lijeve strane TImage-a je CheckBox bez teksta... malo predugačak pa je prekrio dio slike. Kad sam ga skratio - sve OK. Riješio sam problem, ali
> mi nije jasno ponašanje programa.

Windows samo updejtuje deo ekrana koji je promenjen, na primer dok ovo kucam samo deo oko kursora se osvezava.
Tako je i kod te kontrole, Delphi posalje notifikaciju windowsu da je ta kontrola promenja i onda on generise WM_PAINT poruku za taj region. E sad kako je deo kontrole bio prekriven drugom, Delphi je verovatno samo poslao notifikaciju za razliku ta dva regiona.