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.