Avatar billede tjacob Juniormester
14. august 2007 - 18:46 Der er 2 kommentarer og
1 løsning

Tegne i flere lag på en form

Her er et par spørgsmål omkring Paint events:

Jeg har problemer med opdatering af formen i små områder. Mit problem kan illustreres således:
Først tegner jeg et spillebræt (f.eks. et skakbræt) direkte på formen. For at gøre denne grafik persistent, er man nødt til at lægge et kald til koden direkte i formens Paint event.

Når jeg så vil 'flytte en brik', så vil jeg kun gentegne et lille område af spillebrættet (to felter). hvordan opdaterer jeg nu skærmen, uden at skulle lægge flyttekoden i Paint eventet?
Hvis jeg kalder koden 'udefra' vil Paint eventet øjeblikkelig overskrive den.

Koden skal være input-afhængig, og kunne kaldes fra hvor som helst.

Paint eventet opdaterer skærmen hele tiden, og grafikken flimrer hver gang man rører ved en kontrol på formen.

Mit projekt indeholder store tal arrays, der skal beregnes (eller i alle tilfælde loopes) hver gang, hvis hele skærmen skal opdateres hele tiden. Dette ville jeg gerne undgå, ved kun at opdatere et lille område på formen ad gangen (og samtidig holde resten persistent). Hvordan gør jeg det?
Jeg savner AutoReDraw fra VB6 noget så grusomt.............
Avatar billede kristofferf Nybegynder
15. august 2007 - 14:23 #1
Prøv at forske lidt i den funktion som hedder Invalidate(). Den kan kaldes med forskellige parametre (f.eks. et Region objekt) hvorved det kun er de områder som gentegnes.
Mvh Kristoffer
Avatar billede tjacob Juniormester
16. august 2007 - 08:30 #2
Det ser ud til at Invalidate og Update metoderne netop er hvad jeg skal bruge.

Vil du lægge et svar, Kristoffer.
Avatar billede kristofferf Nybegynder
16. august 2007 - 08:32 #3
Det var godt... håber du får hul på det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester