interfaccia utente Æparte del sistema operativo che consente … laboratorio 8 - windows...dalla...

15
Fondamenti di Informatica II 27. Laboratorio 8 – Windows Forms Corso di Laurea in Ingegneria Informatica A.A. 2008-2009 2° Semestre – Corso (A-M) Prof. Giovanni Pascoschi Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni 2 Interfacce utente Interfaccia utente parte del sistema operativo che consente all’uomo di interagire con il computer interfaccia utente è nata come interfaccia di tipo testuale (DOS e UNIX) Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni 3 Tipi di interfacce utente Due sono i tipi di interfaccia più diffusi per interagire con un computer: Interfacce a caratteri, anche dette a riga di comando (CLI, command line interfaces) Interfacce grafiche (GUI, graphical user interfaces), in particolare di tipo WIMP (Windows, Icons, Menus, Pointing device) Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni 4 L’evoluzione delle interfacce utente (1) Interfaccia a caratteri DOS

Upload: others

Post on 14-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II27. Laboratorio 8 – Windows Forms

Corso di Laurea in Ingegneria InformaticaA.A. 2008-20092° Semestre – Corso (A-M)Prof. Giovanni Pascoschi Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni2

Interfacce utente

Interfaccia utente parte del sistema operativo che consente all’uomo diinteragire con il computer

interfaccia utente è nata come interfaccia di tipo testuale (DOS e UNIX)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni3

Tipi di interfacce utente

Due sono i tipi di interfaccia più diffusi per interagire con un computer:

Interfacce a caratteri, anche dette a riga di comando (CLI, commandline interfaces)

Interfacce grafiche (GUI, graphical user interfaces), in particolare di tipo WIMP (Windows, Icons, Menus, Pointing device)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni4

L’evoluzione delle interfacce utente (1)

Interfaccia a caratteri DOS

Page 2: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni5

Cosa distingue una interfaccia grafica dall’altra?

il tipo di metafora usata;

gli elementi costitutivi che l’utente può manipolare.

Tipi di interfacce grafiche

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni6

La metafora più utilizzata nei personal computer, oggi, è quella della “scrivania” (in inglese, desktop)

Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma nessuna ha avuto sinora successo

Tipi di interfacce grafiche

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni7

Interfaccia grafica Apple

L’evoluzione delle interfacce utente (2)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni8

Interfaccia grafica Windows 1.0

L’evoluzione delle interfacce utente (3)

Page 3: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni9

Interfaccia grafica Windows 3.0

L’evoluzione delle interfacce utente (4)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni10

Interfaccia grafica Windows 95

L’evoluzione delle interfacce utente (5)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni11

Interfaccia grafica SUN tridimensionale

L’evoluzione delle interfacce utente (6)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni12

Interfaccia grafica Windows VISTA

L’evoluzione delle interfacce utente (7)

Page 4: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni13

Interfaccia grafica Windows 7

L’evoluzione delle interfacce utente (8)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni14

Programmazione delle interfacce grafiche

programmare una GUI (Graphical User Interface) è molto complesso

e’ necessaria molta programmazione a livello grafico

sono necessari molti elementi grafici (pulsanti, menu’, icone, ecc)

non è praticabile costruire un’applicazione GUI partendo completamente da zero

e’ necessario usare una libreria GUI pre-esistente

ogni piattaforma ha una propria libreria GUI

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni15

Le interfacce attuali, basate sulla metafora della scrivania, sono di tipo WIMP (Windows, Icons, Menus, Pointing device)

Gli elementi che le compongono vengono detti widget

Una “widget” è un elemento che fornisce informazioni all’utente o gli permette di interagire con il sistema operativo o con un’applicazione.

Programmazione delle interfacce grafiche

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni16

esempi di widget sono le icone, i menu, i pulsanti, le finestre, le barre di scorrimento, le caselle di testo, ecc

di solito è il sistema operativo a mettere a disposizione un insieme di widget.

Programmazione delle interfacce grafiche

Page 5: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni17

Esempio di widgets in Windows

finestra

icona

pulsante

radiobox

barra deglistrumenti

icone diriduzione, ripristino e chiusura

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni18

Com’è fatta un’interfaccia grafica

La finestra è anche un contenitore, ossia un elemento grafico che necontiene degli altri

la barra del menu è un altro esempio di contenitore

la finestra puo’ contenere altri contenitori, come una matrioska o le scatolecinesi

gli elementi grafici piu’ complessi sono costituiti dall’unione di elementigrafici basilari

i vari elementi che sono presenti nel contenitore vengono chiamaticomponenti visuali

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni19

Le interfacce grafiche in C++ (1)

all’epoca di Windows 2.0 era necessario utilizzare una decina di istruzioniper creare una singola finestra grafica (vuota.....)

occorreva utilizzare un set di funzioni (API – Application ProgrammingInterface) basate sul C

furono poi introdotte le MFC - Microsoft Foundation Class che costituivanouna libreria di 200 classi con un modello ad oggetti stile C++ per le API diWin32 (Windows 95)

l’ambiente .NET (introdotto con Windows Vista) ha creato la WPF - WindowsPresentation Foundation accessibile interamente in .NET (anche WindowsXP SP1 ha nativamente il framework .NET)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni20

Le interfacce grafiche in C++ (2)

Windows Forms è una parte della libreria WPF che si occupa della gestionedelle finestre

Tramite un’estensione del C++ (chiamato CLI/CRL) è possibile utilizzare ilcodice destinato all’ambiente .NET anche con VC++

Page 6: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni21

Le interfacce grafiche in C++ (3)

La differenza principale tra C++ e .NET è la gestione completamenteautomatica dell’allocazione e deallocazione della memoria impiegata percontenere le istanze degli oggetti

Il CLR mantiene un Heap separato da quello tradizionale chiamatoManaged Heap differenza tra variabili managed e unmanaged

Tutti i controlli Windows Forms sono contenuti nel namespaceSystem::Windows::Forms

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni22

Le interfacce grafiche in C++ (4)

Esempio di crezione di una finestra dal titolo “finestra”:

Form^ finestra = gcnew Form();

// gcnew è l’operatore di allocazione .NET// Form^ è il reference (come un puntatore) ad un oggetto di tipo

managed

la finestra cosi’ creata ha una serie di attributi e metodiesempio :finestra->Text = “Prova”;finestra->Width = 300; //larghezza in pixelfinestra->Height = 200; //altezza in pixel

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni23

Le interfacce grafiche in C++ (5)

Per creare una etichetta di testo (label):Label^ etichetta = gcnew Label( ); etichetta->Text=“Testo di prova”;

una volta creato il componente visuale, bisogna inserirlo in un contenitore

finestra->Controls->Add(etichetta);

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni24

Le interfacce grafiche in C++ (6)

Un evento è una qualsiasi interazione dell’utente con l’interfaccia utente

per esempio “premere il pulsante OK” in una finestra, la “selezione di unradiobox”, ecc.

per gestire un qualsiasi evento bisogna utilizzare un “gestore di evento”(blocco di codice) che permette di catturare l’evento eseguendo la relativaazione.

Page 7: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni25

Documentazione MSDN sulle Windows Form

per reperire maggiori informazioni sulle Windows Forms riferirsi alla MSDN Library http://msdn.microsoft.com/en-us/library/dd30h2yb(VS.80).aspx

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni26

Esempi di progetti con Windows Form

1. Programma di somma di due numeri (progetto somma_numeri)

2. Programma di somma di due numeri complessi (progetto primo_CLR)

3. Programma di immissione dati da memorizzare in un file (progetto azienda)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni27

Somma di due numeri con Forms (1° step)

Creazione progetto CLR (Common Resources Language) vuoto con nomesomma_numeri

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni28

Somma di due numeri con Forms (2° step)

Aggiunta elemento UI Windows Form con nome finestra1

Page 8: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni29

Somma di due numeri con Forms (3° step)

Creazione interfaccia grafica (utilizzando Casella degli Strumenti)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni30

Somma di due numeri con Forms

3° step creazione finestra (form) con gli oggetti grafici, utilizzando ilmenu degli strumenti sulla destra creazione di tre TextBox, tre Label e un button di comando

4° step agendo sulle proprietàassociazione dei nomi (Name) alle Textform : PRIMO, SECONDO, SOMMA;associazione alle tre label dei testi (Text) : primo numero, secondonumero, somma;associazione al bottone di comando del testo (Text) : OK

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni31

Somma di due numeri con Forms (3° & 4° step)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni32

Somma di due numeri con Forms (5° step)

5° step doppio click sul bottone di comando inserimento nel corpodel metodo button1_Click delle seguenti istruzioni:

acquisisci_dati( ); // funzione per acquisire i datiPRIMO->Clear( ); // metodo per ripulire la TextformSECONDO->Clear( ); // metodo per ripulire la Textform

e inserimento del prototipo della funzione nella sezione public:void acquisisci_dati( );

Page 9: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni33

Somma di due numeri con Forms (5° step)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni34

Somma di due numeri con Forms (6° step)

6° step selezionare il file finestra1.cpp e aggiungere le seguenti istruzioni

#include “finestra1.h"#include <iostream>using namespace std;using namespace System::Runtime::InteropServices; // per gestire le conversioni di formato

void somma_numeri::finestra1::acquisisci_dati( ){

double num1, num2, tot;num1 = Convert::ToDouble(PRIMO->Text); // convertire da stringa “managed” a doublenum2 = Convert::ToDouble(SECONDO->Text); // convertire da stringa “managed” a doubletot=num1+num2;SOMMA->Text=Convert::ToString(tot); // convertire da double a stringa “managed”

}

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni35

Somma di due numeri con Forms (6° step)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni36

Somma di due numeri con Forms (7° step)

7° step creare il file main.cpp e aggiungere le seguenti istruzioni

#include <iostream>#include <string>#include “finestra1.h"using namespace std;

int main( ){somma_numeri::finestra1 Inizia; /*crea istanza Inizia della classe

finestra1 del namespace somma_numeri*/Inizia.ShowDialog(); // richiama il metodo ShowDialog

}

Page 10: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni37

Somma di due numeri con Forms (7° step)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni38

Somma di due numeri con Forms (output)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni39

Prodotto di due numeri complessi con Forms (step 1)

nome progetto primo_CLRCreazione della finestra display cosi’ come qui evidenziato (reale1,

immaginario1, reale2, immaginario2, reale3, immaginario3)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni40

Prodotto di due numeri complessi con Forms (step 2)

gestione dell’evento click sul bottone OK

Page 11: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni41

Prodotto di due numeri complessi con Forms (step 3)

file display.cpp

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni42

Prodotto di due numeri complessi con Forms

inclusione della dichiarazione della classe complesso : complessi1.h

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni43

Prodotto di due numeri complessi con Forms

alcuni metodi della classe complesso : complessi1.cpp

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni44

Prodotto di due numeri complessi con Forms (step 4)

creazione main per partenza Form

Page 12: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni45

Prodotto di due numeri complessi con Forms (output)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni46

Inserimento di dati da memorizzare in un file con Forms

inserimento dipendenti in un archivio aziendale1 Label, 4 Textbox + 1 radiobutton + 3 buttons (inserimento altro dipendente,annulla dati, fine programma) + Menu File con exit

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni47

Inserimento di dati da memorizzare in un file con Forms (1° step)

creazione Form di nome finestra1 (con textform, label e button)nomi textbox IDC_matricola, IDC_cognome, IDC_nome, IDC-stipendio

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni48

Inserimento di dati da memorizzare in un file con Forms (2° step)

creazione GroupBox drag nella Form tasto destro mouse “Porta in secondo piano”selezione radiobutton click nell’area del GroupBoxproprietà radiobutton “impiegato” checked = trueproprietà radiobutton “dirigente”

Page 13: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni49

Inserimento di dati da memorizzare in un file con Forms (3° step)

selezione Menustripclick nella finestra1 digitare File digitare nel submenu Esci

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni50

Inserimento di dati da memorizzare in un file con Forms (4° step)

aggiungere un’altra Form di nome finestra2inserire la label “Dati salvati correttamente”

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni51

Inserimento di dati da memorizzare in un file con Forms (5° step)

facendo doppio click su Altro dip. e Annulla aggiungere le seguenti istruzioni

OK

Annulla

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni52

Inserimento di dati da memorizzare in un file con Forms (6° step)

Nel file finestra1.cpp inserire le istruzioni riportate nell’immagineoccorre convertire le stringhe “managed” in stringhe “unmanaged” tramite il

casting con la funzione di conversione StringToHGlobalAnsiIDC_impiegato->Checked controlla se è stato selezionato il radiobuttonal termine viene richiamata l’istanza della Form finestra2 e viene eseguito il metodo

ShowDialog

Page 14: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni53

Inserimento di dati da memorizzare in un file con Forms (7° step)

creazione main per partenza Form

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni54

Inserimento di dati da memorizzare in un file con Forms (8° step)

facendo doppio click su Fine e Esci aggiungere le seguenti istruzioni Fine

Esci

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni55

Inserimento di dati da memorizzare in un file con Forms (output)

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni56

Inserimento di dati da memorizzare in un file con Forms (output)

Page 15: Interfaccia utente Æparte del sistema operativo che consente … Laboratorio 8 - Windows...Dalla sua introduzione ad oggi sono state introdotte diverse interfacce alternative, ma

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni57

Esercizio n.1

Implementare tramite Windows Forms la seguente applicazione chepermette di usare una calcolatrice tascabile

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni58

Esercizio n.2

Implementare l’esercizio sui file C++ relativo alla segreteria di una scuola(accesso diretto) inserendo i dati nel file tramite una Windows Form, lasciando inalterate le altre funzionalità richieste

Fondamenti di Informatica II – A.A. 2008-2009 a cura di Pascoschi Giovanni59

Analisi degli esercizi risolti dagli studenti

Analisi degli esercizi risolti dagli studentipila con vectorpila con list