Odświeżanie formy z TImage

0

witam

robie aplikacje z własnym designem formy, forma jest ustawiona BorderStyle:=bsNone;
na formie kilka TImage z odpowiednimi Align i z moziliwościa resize formy,

podczas resize`u formy obrazki w TImage brzydko mrugają, dodanie Repaint do zdarzenia OnResize niewiele pomaga jest tylko troszke lepiej,

co moglbym zrobić zeby sie pozbyć tego stroboskopowego efektu?

0

Sprawdź dla

Form.DoubleBuffered:=true;
0

jeśli robisz własny design formy to nie rób go na TImage
wszystko rysuj na canvasie formy bedzie o wiele szybciej i oszczedniej na pamięci
i mrygać też nie będzie
(i lepiej sie pisze program bo Image nie wala się po formie w zdarzeniu OnPaint formularza)
Przykładowy prog zkodem masz tu
www.piotrekdp.cba.pl/pokaztlo.rar
Rysunek zawsze można albo wrzucić do zasobów
a design taki (na szbko)
user image

0

tylko tutaj chyba musi być ten plik z tłem w *.bmp bo inaczej nie wczyta. ....

0

DoubleBuffered tez nie rozwiazuje mojego problemu, bede probowal z tym canvasem

dzieki za pomoc

0

też wczyta jpg
tylko potem konwersja do bmp

tlo:TJpegImage;
bitmapa :TBitmap;
tlo:=TJpegImage.create
tlo.LoadFromFile('tlo.jpg');
Bitmapa:=TBitmap.Create;
Bitmapa.Assign(Tlo);
Tlo.free;

i już mamy bmp zamiast jpg :)
tylko nie jestem pewien czy w przykładzie dałem zwalnianie tła w OnClose;
bo w OnCloseFormy należy zwolnć bitmape;

jeśli chcesz zapisać jpg do zasobów programu to Musito być jako RT_RCDATA

   Procedure LoadJpgRes(ResName:Pchar;var Jpg:TjpegImage);
   begin
   Res := TResourceStream.Create(hInstance, ResName, RT_RCDATA);
   Jpg.LoadFromStream(Res);
   Res.free;
   end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1