Yksinkertainen tekstimenu. Menussa liikutaan nuolinäppäimillä ja valinnat tehdään enterillä. Valikosta pääsee pois painamalla esciä tai valitsemalla viimeisen valinnan. Vakioita muokkaamalla voit muokata menun väriä sekä sijaintia. Tarvitsee crt kirjaston. Toimii ainakin Turbo Pascal 6.0 ja 7.0:ssa.
uses crt; var yPos : byte; sel : array[1..5] of string; c : char; const { Näillä voit muokata värejä sekä sijaintia } minY = 1; maxY = 5; bg = 0; bg_select = 1; text = 7; procedure writeMenu; { Menun kirjoitus } var i:byte; begin for i:=minY to maxY do begin if i=yPos then textbackground(bg_select) else textbackground(bg); writeln(sel[i]); end; end; procedure arrowMove; { Nuolien liikkuminen, ei tarvitse muuttaa } begin c:=readkey; if c=#72 then begin if yPos<>minY then begin yPos:=yPos-1; textbackground(bg); clrscr; writeMenu; gotoXY(1,yPos); end; end; if c=#80 then begin if yPos<>maxY then begin yPos:=yPos+1; textbackground(bg); clrscr; writeMenu; gotoXY(1,yPos); end; end; end; procedure menuText(c : byte); { Ei olennaista toiminnan kannalta, tämä on vain esimerkkinä } begin clrscr; textColor(c); writeMenu; gotoXY(1,yPos); end; procedure enterPress; begin if yPos=1 then menuText(3); { Tänne sitten se mitä tapahtuu } if yPos=2 then menuText(4); { kun enteriä painaa. } if yPos=3 then menuText(5); if yPos=4 then menuText(6); if yPos=5 then halt; end; begin textBackground(bg); textColor(text); clrscr; sel[1] :='1) Valinta 1'; sel[2] :='2) Valinta 2'; sel[3] :='3) Valinta 3'; sel[4] :='4) Valinta 4'; sel[5] :='5) Poistu'; yPos :=minY; c:='E'; writeMenu; gotoXY(1,yPos); while c<>#27 do begin c:=readkey; if c=#0 then arrowMove; if c=#13 then enterPress; end; end.
Ihan kivasti saa ton näppäimen lukemisen tästä, itse kun sitä etsiskelin jouduin pyörimään ympäri pascalin esimerkkiohjelmia.
Aihe on jo aika vanha, joten et voi enää vastata siihen.