PROGRAMACIÓ D'APLICACIONS EDUCATIVES AMB VISUAL BASICMÒDUL 6

Fitxer: m6p6.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 Form1 
   Appearance      =   0  'Flat
   BackColor       =   &H80000005&
   Caption         =   "Una funció i una pilota"
   ClientHeight    =   3645
   ClientLeft      =   2430
   ClientTop       =   2280
   ClientWidth     =   6450
   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      =   6450
   Begin VB.PictureBox picDibuix 
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      ForeColor       =   &H80000008&
      Height          =   3495
      Left            =   360
      ScaleHeight     =   3465
      ScaleWidth      =   5865
      TabIndex        =   0
      Top             =   0
      Width           =   5895
   End
End


Codi del programa. Programació de respostes a events.

Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Dim VertexAX As Single
Dim VertexAY As Single
Dim VertexBX As Single
Dim VertexBY As Single

Private Sub DibuixaFuncioSinus()
    Dim x As Single, Retar As Double

    picDibuix.AutoRedraw = True
    picDibuix.CurrentX = VertexAX
    picDibuix.CurrentY = Sin(VertexAX)
    For x = VertexAX To VertexBX + 0.1 Step 0.1
        picDibuix.Line -(x, Sin(x))
    Next
End Sub

Private Sub Form_Load()
    PosaEscala
    DibuixaFuncioSinus
End Sub

Private Sub picDibuix_Click()
    Dim Radi  As Single
    Dim x As Single, Retar As Double

    picDibuix.AutoRedraw = False
    Radi = 0.25 'de la pilota
    picDibuix.FillStyle = 0 'color sòlid
    picDibuix.FillColor = RGB(0, 0, 255) 'color pilota
    picDibuix.DrawMode = 10                  'Not Xor
    For x = VertexAX To VertexBX Step 0.5
        picDibuix.Circle (x, Sin(x) + Radi), Radi  'Dibuixar la pilota
        For Retar = 0 To 50000: Next 'El número d'iteracions varia en funció de la velocitat de l'ordinador.
        picDibuix.Circle (x, Sin(x) + Radi), Radi  'Esborra la pilota
    Next x
End Sub

Private Sub PosaEscala()
    Dim MidaX As Single
    Dim MidaY As Single
    Dim ConversióTwipsCentimetres As Single

    ConversióTwipsCentimetres = 1 / 567
    MidaX = picDibuix.Width * ConversióTwipsCentimetres
    MidaY = picDibuix.Height * ConversióTwipsCentimetres
    VertexAX = -MidaX / 2
    VertexAY = MidaY / 2
    VertexBX = MidaX / 2
    VertexBY = -MidaY / 2
    picDibuix.Scale (VertexAX, VertexAY)-(VertexBX, VertexBY)
End Sub