Witam szanowne grono użytkowników.
Moim problemem jest zachowanie wszystkiego co rysuję po Canvas formy gdy pod spodem znajduje się komponent Image z załadowanym obrazkiem jpg. Rysowanie wskazań kursora jako niewielkich kropek realizuję w procedurze, która wywoływana jest zdarzeniem OnClick na komponencie Image. Problem pojawia się gdy zawartość okna zostaje przerysowana wskutek (przysłonięcia formy innym oknem, maksymalizowania mojej formy, zmiany obrazka jpg w komponencie Image poprzez Button czy innych działań). Próbowałem w procedurze zdarzenia OnPaint dla Formy dodać wywołanie procedury rysującej oznaczenia co zakończyło się klapą - program uruchomiłem w trybie krokowym i widziałem jak od zdarzenia OnClick Buttona przechodzi przez wczytanie kolejnego obrazka do rysowania oznaczeń i zauważyłem, że choć wczytanie jpg nastąpiło przed rysowaniem to dopiero na samym końcu po opuszczeniu procedury zdarzenia OnPaint obrazek się zmienił wiec całe rysowanie się utraciło.
Proszę o radę jak ten problem przeskoczyć, szukałem czy można zmienić kolejność "odświeżania" komponentów po systemowym komunikacie WM_Paint bo gdyby ten obrazek wyświetlił się momencie tak jak w kodzie myślę nie byłoby problemu, ale chyba nie tędy droga. Próbowałem też dla zdarzenia OnProgress przechwycić kiedy wartość procentowa osiągnie 100 i dopiero wtedy wywołać rysowanie oznaczeń, ale podobnie jak wcześniej wartość 100 jest osiągana już przy odczytaniu obrazka a jego wyświetlenie dopiero na samym końcu.
Czytałem jak można zbudować nowy komponent, który miałby zdarzenie OnChange (którego brakuje w Image) bo liczę, że tutaj jest szansa. Jednak jestem na początkującym etapie i nie programuję obiektowo a jedynie wykorzystuję obiekty i sobie z tym nie radzę (nie rozumie).
Proszę o sugestie i rady.