40 likes | 149 Views
+. APL I CA ŢII EDUCAŢIONALE. V.B.A. PowerPoint. Proiectare cu. ITEMI DE COMPLETARE (coperta). [Utilizare soft]. . EVALUARE. Selecta ţ i un element din listă ş i “trage ţ i” în una dintre casete, ţ inând apăsat butonul stâng al mausului.
E N D
+ APLICAŢIIEDUCAŢIONALE V.B.A. PowerPoint Proiectarecu ITEMI DE COMPLETARE (coperta) [Utilizare soft] EVALUARE Selectaţi un element din listă şi “trageţi” în una dintre casete, ţinând apăsat butonul stâng al mausului. Acţionând butonul Rezultat va fi afişat punctajul obţinut, fiind marcate completările incorecte. Resetarea testului este realizată prin clic pe butonul RESETARE. [Arată] Itemi de completare Itemi de completare
FENOMENE FIZICE Legi fizice Mărimi fiziceUnităţi de măsură TEST Mărimea fizică ce măsoară o interacţiune este Sistemul care are capacitatea de a efectua are energie. Într-o mişcare rectilinie uniformă, este permanent nulă. UM pentru impuls este UM pentru energie este
Proiectul V.B.A. userForm “caseta” Image “Image2” << închide TextBox “mesaj” CommandButton “inchideCaseta” [arată] [arată] Proprietăţile controlului “mesaj” al casetei particularizate arată Controale ale testului controlul “X1” (de tip TextBox) controlul “item1” (de tip TextBox) controale de tip CommandButton PROIECTUL APLICATIEI [Detalii] În fereastra Project Explorer a EditoruluiVisual Basic este prezentată structura proiectului V.B.A. al aplicaţiei. Acesta conţine două secţiuni importante: • folderulMicrosoft PowerPoint Objects(în fereastraobiectului “Slide2”, obiect – container al controalelor utilizate pentru proiectarea testului, sunt prezentate procedurile scrise pentru tratarea unor evenimente); • folderul Forms, alcasetelor de dialog particularizate (folosiţi comenzile View Object şi View code pentru afişarea caseteiîn modul proiectare, respectiv pentru afişarea codului). Controale ActiveX Structura proiectului (afişaţi fereastra Visual Basic Editor: Instrumente >> Macrocomandă >> Editor Visual Basic)
COD V.B.A. COD V.B.A. 'OPERATIA DRAG-AND-DROP (textul din caseta “item1” este tras în caseta “X1”) '1. SELECTAREA TEXTULUI casetei “item1” 'este tratat evenimentul MouseDown, declanşat la apăsarea unui buton _ al mausului (pointerul acestuia fiind plasat pe caseta “item1”) Private Sub item1_MouseDown(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) Dim lungime As Integer lungime = Len(item1.Text) 'lungimea textului din caseta“item1” item1.SelStart = 0 'selecţia începe de la primul caracter item1.SelLength = lungime 'selecţia cuprinde tot textul End Sub '2. INŢIALIZAREA TRAGERII ‘este tratat evenimentul MouseMove pentru controlul “item1”, declanşat _ la deplasarea mausului (cu pointerul mausului în caseta “item1”) Private Sub item1_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, ByVal Y As Single) 'argumentul Button primeşte o valoare întreagă ce identifică_ starea butoanelor mausului 'dacă este apăsat butonul stâng al mausului (Button =1), atunci ... If Button = 1 Then Dim stocheazaText As DataObject Dim StartTragere As Integer Set stocheazaText = New DataObject stocheazaText.SetText item1.Value 'prin metoda SetText( StoreData [, format]) textul este _ copiat intr-un obiect DataObject, (formatul implicit este _ cel aplicat casetei ţintă) StartTragere = stocheazaText.StartDrag(Effect:=1) '(prin metoda StartDrag([Effect as fmDropEffect]) este _ iniţializată acţiunea drag-and-drop pentru textul memorat 'valori ale arg Effect: 0 (nu este copiat şi nici _ mutat textul stocat), 1 (textul este copiat), 2(textul_ este mutat), 3 (textul este copiat sau mutat) End If End Sub '3. EVIDENŢIEREA UNEI ŢINTE VALIDE (în timpul tragerii) prin _ forma pointer-ului mausului ‘(este tratat evenimentul BeforeDragOver pentru controlul “X1”) Private Sub X1_BeforeDragOver(ByVal Cancel As MSForms.ReturnBoolean, _ ByVal Data As MSForms.DataObject, _ ByVal X As Single, ByVal Y As Single, _ ByVal DragState As MSForms.fmDragState, _ ByVal Effect As MSForms.ReturnEffect, _ ByVal Shift As Integer) ‘Evenimentul se produce în timp ce tragerea textului este în progres Cancel = True ‘Dacă nu este atribuita valoarea True, nu apare _ semnul de încarcare în timpul tragerii (+) ‘Pentru a stabili tipul acţiunii executate (copiere, mutare _ sau nici o acţiune), se atribuie o anumită valoareargumentului Effect. ‘Dacă acesta primeşte valoarea 1, textul tras este copiat în câmpul ţintă Effect = 1 ‘Datele supuse acţiunii drag-and-drop sunt stocate într-un obiect_ de tip DataObject End Sub '4. INTRODUCEREA TEXTULUI COPIAT (în caseta “X1”) ‘(este tratat evenimentul BeforeDropOrPaste pentru controlul “X1”) Private Sub X1_BeforeDropOrPaste(ByVal Cancel As MSForms.ReturnBoolean, _ ByVal Action As MSForms.fmAction, _ ByVal Data As MSForms.DataObject, _ ByVal X As Single, ByVal Y As Single, _ ByVal Effect As MSForms.ReturnEffect, _ ByVal Shift As Integer) ‘Evenimentul se produce atunci când utilizatorul este pe punctul _ de a lipi datele în caseta ţintă Cancel = True 'aplicaţia tratează evenimentul Effect = 1 X1.Text = Data.GetText 'sunt primite datele în caseta “X1” 'Data este argument al procedurii (obiect de tip DataObject) _ şi stochează textul copiat prin tragere X1.ForeColor = 0 ‘Deoarece, după prezentarea punctajului este marcată prin culoare _ o completare incorectă, este optimă revenirea la culoarea _ negru a textului atunci când se reia testul (o nouă completare) End Sub ‘EVALUAREA TESTULUI Private Sub rezultat_Click() ‘tratarea evenimentului Click _ al controlului “rezultat” Dim punctaj, R(5) As Integer '1. DETERMINAREA PUNCTAJUL/ITEM ŞI MARCAREA GREŞELILOR If X1.Value = item2.Value Then R(1) = 1 X1.ForeColor = 0 'culoarea textului este negru (dacă a fost completată CORECT definiţia) Else R(1) = 0 X1.ForeColor = 800400 'culoarea textului este roşu închis (pentru completata INCORECTĂ) End If ‘……………………………………. evaluarea tuturor itemilor testului ……………………………………. If X5.Value = item3.Value Then R(5) = 1 X5.ForeColor = 0 Else R(5) = 0 X5.ForeColor = 800400 End If '***CALCULAREA PUNCTAJULUI TOTAL punctaj = R(1) + R(2) + R(3) + R(4) + R(5) '2. AFIŞAREA REZULTATULUI '*** CONSTRUIREA MESAJULUI FINAL ÎN CASETA DE DIALOG (numita “caseta”) If ((X1.Value = "") Or (X2.Value = "") Or (X3.Value = "") Or _ (X4.Value = "") Or (X5.Value = "")) Then caseta.mesaj.Value = "Completati toti itemii testului.“ ‘(…..) caseta.Image1.Visible = False‘ascunderea iconului 1 caseta.Image2.Visible = False ‘ascunderea iconului 2 Else If (punctaj < 5) Then caseta.Image1.Visible = False 'sunt afisate iconuri diferite (img) pentru punctaje diferite caseta.Image2.Visible = True caseta.mesaj.Value = "Ati obtinut " & punctaj & " p." ‘(…) Else caseta.Image1.Visible = True ‘afişarea iconului 1 caseta.Image2.Visible = False‘ascunderea iconului 2 caseta.mesaj.Value = "Felicitari!" "Ati obtinut ” ‘(…) End If End If '*** AFISAREA/ÎNCHIDEREACASETEI DE DIALOG PERSONALIZATE caseta.Show ‘Caseta de dialog este o forma de tip de tip modal(nu pierde_ focalizarea decât prin ascunderesau eliberarea din memorie, _ stări obţinute prin metoda Hide, respectiv Unload). 'Stabilirea tipului modal se realizeaza atribuind valoarea TRUE _ proprietăţii ShowModal a casetei particularizate. End Sub '*** ÎNCHIDEREA CASETEI DE DIALOG (execuţie la clic pe butonul etichetat “inchide”,al casetei de dialog) Private Sub inchideCaseta_Click() ‘tratarea evenimentului Click _ al controlului “inchideCaseta”, al casetei particularizate Unload caseta Set caseta = Nothing ‘eliberarea completă din memorie End Sub caseta “X1” caseta “item1” Evaluarea testului Completareatestului Selectare text Punctaj şi marcare greşeli Iniţializare tragere Afişarea rezultatului Ţintă validă • Pentru tragerea unui text (dintr-un control de tip TextBox într-un alt control TextBox) sunt parcurse etapele: • selectarea textul (din una dintre casetele “item1”, …, “item7”) ce va fi “tras” în una dintre casetele libere ale testului; • iniţializarea tragerii; • semnalarea ţintelor valide pentru introducerea textului memorat; • introducerea textului memorat în caseta ţintă (“X1”, “X2”, …,sau “X5”). Finalul tragerii (Principalele secvenţe din codul procedurilor aplicaţiei) Cod V.B.A. Pagina de start Test (DEMO) Proiect V.B.A.