Toon posts:

[VB] staafgrafiek plotten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in VB een grafiek tekenen die er ongeveer zo (voorbeeldje in ASCII) uit komt te zien:
code:
1
[    GROEN    ][  GEEL ][       BLAUW       ][   ROOD   ]


Ik heb het al met MSchart geprobeerd, maar krijg het niet op deze manier voor elkaar. het moet dus allemaal horizontaal naast elkaar staan en 1 balk vormen met daarin verschillende kleuren.

Iemand enig idee hoe ik dit effect kan bereiken? :)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Makkelijke oplossing: wat dacht je van het gebruiken van Shapes?
Maak dynamisch een shape aan voor elk onderdeel dat (elke kleur die) je wil gebruiken en zet die langs elkaar...

My personal website


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Als je het niet voor elkaar krijgt met MSChart oid, dan kun je het ook zelf tekenen.
Bv 4 Shapes in een PictureBox zetten.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Welke vb versie, voor VB.NET zijn er mooie grafiek controls op de markt.
Of zelf even met GDI(+) tekenen, is toch ook niet zo'n probleem.

Verwijderd

Topicstarter
zwippie schreef op 11 oktober 2004 @ 11:04:
Als je het niet voor elkaar krijgt met MSChart oid, dan kun je het ook zelf tekenen.
Bv 4 Shapes in een PictureBox zetten.
Dat had ik ook al bedacht ja. Alleen probleem is dat het AANTAL shapes dynamisch is (soms 3, soms 4, maar soms 5 of meer).

Ik kan wel een nieuwe shape maken aan de hand van Dim bla As Shape, maar hoe krijg ik deze vervolgens IN de picturebox? (Picture1)

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Waarom picturebox'en, waarom niet met GDI. GDI is hier toch voor uitgevonden. Een picturebox heeft anderen doeleinden.

[ Voor 10% gewijzigd door pjvandesande op 11-10-2004 12:06 . Reden: hoofdletter W toegevoegd ]


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

@questa: de PictureBox dient in dit geval als container voor de Shapes.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

zwippie schreef op 11 oktober 2004 @ 13:53:
@questa: de PictureBox dient in dit geval als container voor de Shapes.
Nu ik het zo teruglees, inderdaad, ik heb er overheen gelezen. Sorry O-)

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

Verwijderd schreef op 11 oktober 2004 @ 11:55:
[...]

Dat had ik ook al bedacht ja. Alleen probleem is dat het AANTAL shapes dynamisch is (soms 3, soms 4, maar soms 5 of meer).

Ik kan wel een nieuwe shape maken aan de hand van Dim bla As Shape, maar hoe krijg ik deze vervolgens IN de picturebox? (Picture1)
Door het gebruik van Shapes gok ik VB6. Da's lang geleden (voor mij), maar volgens mij kan je Shapes kopieren om vervolgens de positie en vorm (en kleur) van de Shape te wijzigen.

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
• Start een leeg project in VB
• Plemp een picturebox op je form
• Copy Paste deze code:
code:
1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_Load()
    With Picture1
        .BackColor = vbWhite
        .Cls
        .AutoRedraw = True
    End With
    Picture1.Line (0, 150)-(500, 350), vbGreen, BF
    Picture1.Line (501, 150)-(800, 350), vbYellow, BF
    Picture1.Line (801, 150)-(1400, 350), vbBlue, BF
    Picture1.Line (1401, 150)-(1700, 350), vbRed, BF
End Sub

• Mep F5

:Y)

Werken met shapes kan ook, maar waarom zou je allerlei dynamische objecten gaan aanmaken als je gewoon rechtstreeks kunt tekenen?

Je hoeft overigens nog niet eens een picturebox te gebruiken: Verwijder de picturebox, en copy paste deze code (andere code dus weghalen):
code:
1
2
3
4
5
6
7
8
9
10
11
Private Sub Form_Load()
    With Me
        .BackColor = vbWhite
        .Cls
        .AutoRedraw = True
    End With
    Me.Line (0, 150)-(500, 350), vbGreen, BF
    Me.Line (501, 150)-(800, 350), vbYellow, BF
    Me.Line (801, 150)-(1400, 350), vbBlue, BF
    Me.Line (1401, 150)-(1700, 350), vbRed, BF
End Sub

Daarmee teken je rechtstreeks op het form.

[ Voor 41% gewijzigd door RobIII op 11-10-2004 14:25 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

RobIII schreef op 11 oktober 2004 @ 14:23:
(...)
[/code]
Daarmee teken je rechtstreeks op het form.
Als je de form min- en maximaliseert is de tekening weg. Op deze manier moet de teken-code via de form-refresh aangeroepen worden. Shapes daarentegen reageren automatisch op refresh.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op 11 oktober 2004 @ 14:52:
[...]


Als je de form min- en maximaliseert is de tekening weg. Op deze manier moet de teken-code via de form-refresh aangeroepen worden. Shapes daarentegen reageren automatisch op refresh.
Heb je het al geprobeerd? Werkt prima hoor :?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Verwijderd schreef op 11 oktober 2004 @ 14:52:
[...]


Als je de form min- en maximaliseert is de tekening weg. Op deze manier moet de teken-code via de form-refresh aangeroepen worden. Shapes daarentegen reageren automatisch op refresh.
Dat is geen probleem, het programma is een fixed toolwindow :+

Hartstikke bedankt voor alle replies, ik denk dat ik voor de eenvoudige oplossing van Rob III ga. :)
Pagina: 1