Avatar billede xiol Nybegynder
08. november 2007 - 16:49 Der er 6 kommentarer

Problemer med Graphics

Hej er der nogen der lige kan tage et kig på noget kode skrivet til Pocket PC 2003.

Mit problem er at der ikke bliver tegnet noget. se nedn stående kode

public partial class Form1 : Form
    {
        Graphics onscreen;
        Graphics offscreen;
        Bitmap backbuffer;

        DateTime last;
        int fps = 0;
        Font font;
        SolidBrush fontbrush;
       
        public Form1()
        {
           
            InitializeComponent();
           
            this.Visible = true;
            Application.DoEvents();
            Thread.Sleep(0);
           
            backbuffer = new Bitmap(ClientRectangle.Width, ClientRectangle.Height);
            offscreen = Graphics.FromImage(backbuffer);
           
            font = new Font("Arial", 10, FontStyle.Regular);
            fontbrush = new SolidBrush(Color.Black);

            gameloop();
        }
       
        private void gameloop()
        {
            last = DateTime.Now;
            onscreen = this.CreateGraphics();

            while (true)
            {
                offscreen.Clear(Color.White);
                if (DateTime.Now - last >= new TimeSpan(0, 0, 0, 1))
                {
                    fps = 0;
                    last = DateTime.Now;
                }
                fps++;
                rendergame();
            }
        }
       
        private void rendergame()
        {
            offscreen.DrawString("fps: " + fps.ToString(), font, fontbrush, 10, 10);
            onscreen.DrawImage(backbuffer, 0, 0);
            Thread.Sleep(0);
            Application.DoEvents();
        }

        private void Form1_Resize(object sender, EventArgs e)
        {
            if (backbuffer != null)
                backbuffer.Dispose();
           
            backbuffer = new Bitmap(ClientRectangle.Width, ClientRectangle.Height);
            offscreen = Graphics.FromImage(backbuffer);
        }

        protected override void OnPaintBackground(PaintEventArgs e)
        {
            //Do nothing
        }

        protected override void OnPaint(PaintEventArgs e)
        {
            //Do nothing
        }

        private void Form1_Load(object sender, EventArgs e)
        {
           
        }
    }

Håber at der er nogen som kan hjælpe.

På forhånd tak.

Xiol
Avatar billede nielle Nybegynder
08. november 2007 - 18:23 #1
På min PDA giver ovenstående pænt teksten "fps: " efterfulgt af et tal som hele tiden opdaterers.

Forresten er en Thread.Sleep(0) nok lige hård nok mod PDA'ens cpu.
Avatar billede xiol Nybegynder
08. november 2007 - 18:25 #2
Det er vildt underligt for på min kommer der ikke noget frem.

Grunden til Thread.Sleep var et greb i luften. noget der ikke skulle være med i det her eksempel.
Avatar billede nielle Nybegynder
16. november 2007 - 22:38 #3
Er du kommet vidre med denne her?
Avatar billede xiol Nybegynder
16. november 2007 - 22:49 #4
Ja det er jeg. men det er stadig meget mystisk. koden ovenfor er lavet i et pocket pc 2003 projekt. og den virkede ikke når den bliver kørt hverken i emulator eller på min HP iPAQ hx4700 med pocket pc 2003.

Så tog jeg mit projekt og konvaterede til e Mobile 6 profesionel og så virkede det både på emulator og min hp.

Det virker. Jeg er glad. men en smule undrende.
Avatar billede xiol Nybegynder
16. november 2007 - 22:50 #5
og ja der er installeret .net 2.0 compact edition
Avatar billede nielle Nybegynder
19. november 2007 - 17:31 #6
På min PDA kørte det pænt imod en Windows Mobile 5.0 og CF2. Som sagt helt uden problemer.

Jeg kan nu heller ikke se at der skulle være noget galt med koden ... men måske har jeg bare ikke kigget grundigt nok.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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