Avatar billede onkel_satan Nybegynder
11. september 2006 - 21:38 Der er 3 kommentarer og
1 løsning

Lille gui opgave

Hejsa,
Har fået en lille gui opgave at lege med, men der er nogle ting som jeg ikke helt forstår så hvis nogen kunne hjaelpe mig med lidt forklaring ville det vaere rart.
I stedet for at copy/past en masse kode smider jeg linket til de filer jeg skal bruge:
https://webapp.isk.kth.se/falk/jsp/courseweb/index.jsp?course=6b2018&page=exercises/ex01/index.jsp
(til at starte med saa bare tag cirkel klassen, de andre skulle jeg selv kunne faerdiggoere så snart jeg fanger ideen med de her klasser)
Har foer lavet ligende opgave, men der lavede vi bare en winform og addede et Grafic objekt til form'en og vupsi saa har vi en fin cirkel på skaermen.
Det jeg ikke helt forstår med den her opgave er at de har lavet en  circle klasse vis Draw metode tager imod et Grafic objekt, men hvordan får jeg så skrevet den ud på skaermen ?
Application.controls acceptere jo ikke vores hjemmelavet circle objekt.
Nogen der kan gennemskue hvordan jeg skal få cirklen grafisk afbilledet i min form ?

På forhånd tak.
Avatar billede spyrodrag Nybegynder
11. september 2006 - 22:18 #1
Hej...

Det lyder som om at du har forstået lidt om hvad de her grafik objekter handler om.
Funktionen 'Draw' tager imod én parameter (g), som er af typen Graphics. Du kan få fat i GDI+ Graphics objektet fra formen, ved at lytte på "Paint" eventet, eller skrive this.CreateGraphics();

Eksempel 1:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PingPong
{
    public partial class GameForm : Form
    {
        public GameForm()
        {
            InitializeComponent();

            c = new Aquarium.Circle(new Point(5, 5), 10);

            this.Paint += new PaintEventHandler(OnGameFormPaint);
        }

        void OnGameFormPaint(object sender, PaintEventArgs e)
        {
            c.Draw(e.Graphics);
        }

        private Aquarium.Circle c;
    }
}

Eksempel 2:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PingPong
{
    public partial class GameForm : Form
    {
        public GameForm()
        {
            InitializeComponent();

            Graphics g = this.CreateGraphics();

            c = new Aquarium.Circle(new Point(5, 5), 10);

            c.Draw(g);
        }

        private Aquarium.Circle c;
    }
}

Har du spørgsmål til specifikke dele af koden, er du velkommen til at spørge... Ved eksempel 2, er du selv nødt til at sørge for at opdatere skærmbilledet... Good luck :-)

Venlig hilsen,
Martin.
Avatar billede onkel_satan Nybegynder
11. september 2006 - 23:53 #2
Super... 1000 tak for dit svar. Det hjalp en del.
Har forstået hvordan de klasser virker, men er stadig ikke 100 pro på hvordan de event/handlers fungere til buns. Så jeg har lige et par ekstra spoergsmål.

1) Hvordan kan man give en metode som argument new PaintEventHandler(OnGameFormPaint) det er sikket noget specielt noget i forbindelse med disse eventhandlers men forstår det ikke helt ?
2)  OnGameFormPaint metoden bliver ikke på noget tidspunkt (well det goer den, men jeg kan ikke se hvad det er som goer det) kaldt med object sender, PaintEventArgs e. Hvor får den objekt og PaintEventArgs fra ?
3) Hvad er det som trigger this.Paint eventen ? og hvornår/hvor ofte bliver den triggert ?
Avatar billede onkel_satan Nybegynder
12. september 2006 - 08:26 #3
never mind.. har fundet ud af hvordan det virker. Smid et svar for point.
Avatar billede spyrodrag Nybegynder
12. september 2006 - 20:06 #4
Hej igen.

Jeg beklager at jeg ikke nåede at svare på dine andre spørgsmål, er først online igen nu. Er glad for at jeg kunne hjælpe.

Venlig hilsen,
Martin.
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