esercizi di grafica con turbo pascal 1.1 su mac
Program caratteri; { attivazione FONT...STILI...DIMENSIONE...caratteri in pagina grafica}
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord; vertici:rect;
procedure disegna; begin { assegna stile con TEXTFACE([bold,italic,underline,shadow,outline} { assegna stile normale con TEXTFACE([]) }
{ assegna dimensioni caratteri come da FORMAT } { con TEXTSIZE(9..10..12..14..18..24..point ) }
{ assegna font caratteri come da FONT indicando numero } { 0 chicago...1 courier...2 geneva..3 helvetica..4 monaco } { 5 palatino..6 sonata..7 symbol..8 tymes }
{ posiziona cursore per scrivere con MOVETO(colonna,riga) }
{ stampa testo con DRAWSTRING(' testo ') } { stampa carattere con DRAWCHAR('A') }
{ assegna colore penna con PENPAT(black) } { assegna colore fondo con BACKPAT(white) }
textface([bold]); textsize(12); textfont(0); moveto(20,50); drawstring('bold...12...chicago'); moveto(20,100); drawchar('A'); end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(black); BackPat(white); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } disegna; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.
Program figure1; { attivazione funzioni grafiche per disegnare con quickdraw }
{$U-}
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; sagoma: EventRecord;
procedure disegna; var x1,y1,x2,y2,a:integer; vertici:rect; sfondo:pattern;
begin x1:=20;y1:=20;x2:=100;y2:=100; {--------------------------------------------------------} { assegnare a variabile VERTICI tipo RECT le coordinate } { per delimitare cornice rettangolare assegnando a variabili } { x1,y1,x2,y2 tipo INTEGER le coordinate dell'angolo alto sinistro} { e basso destro } setrect(vertici,x1,y1,x2,y2); {disegnare cornice usando come argomento VERTICI } framerect(vertici); {--------------------------------------------------------} { assegnare dimensione penna con PENSIZE(a,b) } { con a,b interi per dimensione verticale e orizzontale penna } { assegnare colore penna con PENPAT(nome colore) } { nome colore:bkack,white,gray,dkgray }
penpat(dkgray); pensize(20,10); setrect(vertici,180,20,300,100); framerect(vertici); {--------------------------------------------------------} {disegna riquadro pieno con PAINTRECT(vertici) } setrect(vertici,350,20,450,100); penpat(black); paintrect(vertici); {--------------------------------------------------------} {disegna riquadro con tratteggio FILLRECT...e colore} setrect(vertici,20,120,100,200); fillrect(vertici,gray); {--------------------------------------------------------} { assegna tipo tratteggio per riempire con FILLRECT ..sfondo} stuffhex(@sfondo,'123321456654765123'); setrect(vertici,120,120,200,200); fillrect(vertici,sfondo); {-------------------------------------------------------} { pausa e cancellazione disegni } FOR A:=1 TO 10 DO SYSBEEP(1); eraserect(gport.portrect); framerect(gport.portrect); {-------------------------------------------------------} { disegna ovali con SETRECT..FRAMEOVAL...PAINTOVAL..FILLOVAL } x1:=30;y1:=20;x2:=100;y2:=100; {--------------------------------------------------------} { assegnare a variabile VERTICI tipo RECT le coordinate } { per delimitare cornice rettangolare assegnando a variabili } { x1,y1,x2,y2 tipo INTEGER le coordinate dell'angolo alto sinistro} { e basso destro } setrect(vertici,x1,y1,x2,y2); {disegnare cornice usando come argomento VERTICI } framerect(vertici); {--------------------------------------------------------} { assegnare dimensione penna con PENSIZE(a,b) } { con a,b interi per dimensione verticale e orizzontale penna } { assegnare colore penna con PENPAT(nome colore) } { nome colore:bkack,white,gray,dkgray }
penpat(dkgray); pensize(20,10); setrect(vertici,180,20,300,100); frameoval(vertici); {--------------------------------------------------------} {disegna ovale pieno con PAINTOVAL(vertici) } setrect(vertici,350,20,450,100); penpat(black); paintoval(vertici); {--------------------------------------------------------} {disegna OVALE con tratteggio FILLRECT...e colore} setrect(vertici,20,120,100,200); fillOVAL(vertici,gray); {--------------------------------------------------------} { assegna tipo tratteggio per riempire con FILLRECT ..sfondo} stuffhex(@sfondo,'123321456654765123'); setrect(vertici,120,120,200,200); fillOVAL(vertici,sfondo);
end;
BEGIN {inizializzazione sottoprogrammi o routine} InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort);
{inizio programma principale} PenPat(black); BackPat(white); EraseRect(gPort.portRect); FrameRect(gPort.portRect); { procedura operativa modificabile..altre procedure aggiungere } disegna; WHILE NOT OSEventAvail(mDownMask + keyDownMask, sagoma) DO; END.