Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem vykreslení obrázků v poli-velice velké množství

Podľa zdrojového kódu, prusvitky[i].Picture:=img3.Picture volá metódu TImage.SetPicture, ktorá volá metódu TPicture.Assign, ktorá volá TBitmap.Assign, ktorá kopíruje dáta obrázku (GetMem, Move). Zdrojový kód je síce z LLCL, ale predpokladám, že VCL to bude mať veľmi podobné, ak nie rovnaké.

Aby si to zrýchlil, stačí sa zbaviť tohto zbytočného kopírovania. Najjednoduchšie je spraviť komponent, ktorý bude mať 3 bitmapy a zobrazovať podľa stavu len ten aktuálny. Prípadne môžeš spraviť komponent, ktorý sa bude starať o vykreslenie celého poľa naraz. Komponent bude mať vlastnú OnPaint metódu, kde cez Canvas.Draw vykreslíš, čo potrebuješ.

Ak potrebuješ len farbu a nie obrázok, tak namiesto Canvas.Draw vykreslíš obdĺžnik pomocou Canvas.Rectangle (a predtým nastavíš farbu podľa potreby).

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny