

Fitxer: m6p8.frm
Definició dels objectes. Interfície d'usuari.
Recordeu que això no ho podeu editar directament. Per editar-ho es fa incorporant nous objectes
de la paleta en el vostre formulari. I per canviar els valors ho feu sel.leccionant l'objecte i
escolliu la propietat a canviar en la finestra Properties.
VERSION 5.00
Begin VB.Form frmGràfic
Appearance = 0 'Flat
BackColor = &H80000005&
Caption = "Dibuix d'un gràfic de barres a la impressora"
ClientHeight = 3645
ClientLeft = 2430
ClientTop = 2565
ClientWidth = 3780
BeginProperty Font
Name = "MS Sans Serif"
Size = 8.25
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H80000008&
LinkTopic = "Form1"
PaletteMode = 1 'UseZOrder
ScaleHeight = 3645
ScaleWidth = 3780
Begin VB.Menu mnuDibuix
Caption = "Dibuix"
Begin VB.Menu mnuPantalla
Caption = "Per pantalla"
End
Begin VB.Menu mnuImpressora
Caption = "Per impressora"
End
End
End
Codi del programa. Programació de respostes a events.
Attribute VB_Name = "frmGràfic"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub mnuImpressora_Click()
Static FrecuenciaAbsoluta(1 To 10)
Dim LLargPaper As Single, AltPaper
Dim MidaDibuixX As Integer
Dim MidaDibuixY As Integer
Dim x1 As Integer, y1 As Integer
Dim x2 As Integer, y2 As Integer
Dim i As Integer
Dim TotalAmpleBarra As Integer
'Mida del paper Din A4 menys els marges
LLargPaper = 210
AltPaper = 297
'Freqüències absolutes de les notes d'un nivell
FrecuenciaAbsoluta(1) = 2
FrecuenciaAbsoluta(2) = 5
FrecuenciaAbsoluta(3) = 10
FrecuenciaAbsoluta(4) = 15
FrecuenciaAbsoluta(5) = 45
FrecuenciaAbsoluta(6) = 48
FrecuenciaAbsoluta(7) = 23
FrecuenciaAbsoluta(8) = 15
FrecuenciaAbsoluta(9) = 12
FrecuenciaAbsoluta(10) = 4
'Mides del dibuix que voleu fer
MidaDibuixX = 150
MidaDibuixY = 90
'Establiu el sistema de coordenades i l'escala adient
Printer.ScaleMode = 6
x1 = -(LLargPaper / 2) + (MidaDibuixX / 2)
y1 = (AltPaper / 2) + (MidaDibuixY / 2)
x2 = (LLargPaper / 2) + (MidaDibuixX / 2)
y2 = -(AltPaper / 2) + (MidaDibuixY / 2)
Printer.Scale (x1, y1)-(x2, y2)
'Dibuixa el quadre exterior
Printer.FillStyle = 1 'Transparent
Printer.Line (0, 0)-(MidaDibuixX, MidaDibuixY), , B
'Dibuix de les barres i els números de l'eix x
TotalAmpleBarra = MidaDibuixX / 10
Printer.FillStyle = 7
For i = 1 To 10
x1 = 2 + (i - 1) * TotalAmpleBarra
y1 = 0
x2 = 12 + (i - 1) * TotalAmpleBarra
y2 = FrecuenciaAbsoluta(i) * MidaDibuixY / 50
Printer.Line (x1, y1)-(x2, y2), , B
Printer.CurrentX = 2 + (i - 1) * 15
Printer.CurrentY = -5
Printer.Print i
Next i
'Dibuix de les línies de separació de l'eix Y
For y1 = 10 To 40 Step 10
Printer.Line (-2, y1 * MidaDibuixY / 50)-(2, y1 * MidaDibuixY / 50)
Printer.CurrentX = -20
Printer.CurrentY = y1 * MidaDibuixY / 50
Printer.Print y1
Next y1
Printer.EndDoc
End Sub
Private Sub mnuPantalla_Click()
Static FrecuenciaAbsoluta(1 To 10)
Dim LLargPaper As Single, AltPaper
Dim MidaDibuixX As Integer
Dim MidaDibuixY As Integer
Dim x1 As Integer, y1 As Integer
Dim x2 As Integer, y2 As Integer
Dim i As Integer
Dim TotalAmpleBarra As Integer
'Mida del paper Din A4 menys els marges
LLargPaper = 210
AltPaper = 297
'Freqüències absolutes de les notes d'un nivell
FrecuenciaAbsoluta(1) = 2
FrecuenciaAbsoluta(2) = 5
FrecuenciaAbsoluta(3) = 10
FrecuenciaAbsoluta(4) = 15
FrecuenciaAbsoluta(5) = 45
FrecuenciaAbsoluta(6) = 48
FrecuenciaAbsoluta(7) = 23
FrecuenciaAbsoluta(8) = 15
FrecuenciaAbsoluta(9) = 12
FrecuenciaAbsoluta(10) = 4
'Mides del dibuix que voleu fer
MidaDibuixX = 150
MidaDibuixY = 90
'Establiu el sistema de coordenades i l'escala adient
ScaleMode = 6
x1 = -(LLargPaper / 2) + (MidaDibuixX / 2)
y1 = (AltPaper / 2) + (MidaDibuixY / 2)
x2 = (LLargPaper / 2) + (MidaDibuixX / 2)
y2 = -(AltPaper / 2) + (MidaDibuixY / 2)
Scale (x1, y1)-(x2, y2)
'Dibuixa el quadre exterior
FillStyle = 1 'Transparent
Line (0, 0)-(MidaDibuixX, MidaDibuixY), , B
'Dibuix de les barres i els números de l'eix x
TotalAmpleBarra = MidaDibuixX / 10
FillStyle = 7
For i = 1 To 10
x1 = 2 + (i - 1) * TotalAmpleBarra
y1 = 0
x2 = 12 + (i - 1) * TotalAmpleBarra
y2 = FrecuenciaAbsoluta(i) * MidaDibuixY / 50
Line (x1, y1)-(x2, y2), , B
CurrentX = 2 + (i - 1) * 15
CurrentY = -5
Print i
Next i
'Dibuix de les línies de separació de l'eix Y
For y1 = 10 To 40 Step 10
Line (-2, y1 * MidaDibuixY / 50)-(2, y1 * MidaDibuixY / 50)
CurrentX = -20
CurrentY = y1 * MidaDibuixY / 50
Print y1
Next y1
End Sub