Mam problem, a rozwiązania nie mogę znalezc w zadnej ksiazce, a mianowicie:
ja w Turbo Pascal-u 7.0 zrobic tak aby opcje z menu byly wybierane za pomoce klawiszy strzalek czyli:
tak jest:
1.nowy wpis
2.edytuj
3.pomoc
4.wyjscie
a ma byc tak
Nowy wpis
edytuj
pomoc
wyjscie
jak napisac w TP 7.0 tak aby to bylo prawdziwe menu wybierane za pomoca strzalek a nie numerkow? prosze takze o kontakt na [email protected]
po pierwsze to jak pytasz na forum to niedopuszczalne jest
prosze takze o kontakt na [email protected]
!!
do do problemu to robisz jakąś zmienną typu byte i jeżeli naciśnięto strzałke w dół to inkrementujesz, jak strzałke w góre to dekrementujesz, jak naciśnięto enter to robisz case'a
case pozycje_menu[numer_pozycji] of
'start': writeln('naciśnięto start');
'edycja': writeln('włączam edytor');
'koniec': writeln('chcesz zakończyć?');
end;
kolorowanie opcji w menu:
for i:=0 to ile_pozycji-1 do
begin
settextcolor(green);
if i = numer_pozycji then settextcolor(yellow);
writeln(pozycje_menu[i]);
end;
PS. nie jestem pewien co do skłądni case'a, bo dawno nie pisłaem w TP ;)
sorx [email protected]
a mógł byś podac przyklad tekiego programu? bym był bardzo wdzięczny!
nic nadzwyczajnego - nie dodawałem ort! ramek, licze na Twoją wyobraźnie ;-)
nie ma w kodzie zbyt wielu komentarzy, bo nie wiedziałem co komentować :-P
program menu;
uses crt;
const tablica : array[0..3] of string=('Start','Edytuj','O autorze','Koniec');
var pozycja : integer;
i : byte;
znak : char;
begin
pozycja:= 0;
repeat
clrscr;
writeln; writeln; writeln; writeln;
textcolor(11);
writeln('.:: MAIN MENU ::.');
writeln('-=-=-=-=-=-=-=-=-');
writeln;
for i:=0 to 3 do
begin
textcolor(2);
if pozycja = i then begin textcolor(14); writeln(' >> ', tablica[i],' << '); end else writeln(' ',tablica[i]);
writeln;
end;
textcolor(15);
writeln; writeln; writeln;writeln; writeln; writeln;
write('nacisnij q aby zakonczyc...');
znak:=readkey;
if znak = chr(72) then pozycja:=pozycja-1;
if znak = chr(80) then pozycja:=pozycja+1;
if pozycja < 0 then pozycja:= 3; {trojka oznacza ostatni element tablicy}
if pozycja > 3 then pozycja:= 0; {j/w}
if znak = char(13) then
begin
textcolor(3);
writeln; writeln;
if pozycja = 0 then writeln('ok. zaczynamy');
if pozycja = 1 then writeln('ok. czas na zmiany');
if pozycja = 2 then writeln('ok. narcyz sie nazywam...');
if pozycja = 3 then writeln('ok. jeszcze sie spotkamy...');
{... inne pozycje ...}
readkey;
end;
until znak = chr(113);
end.
PS. zrzekam się praw autorskich do tego kodu -- rób z nim co chcesz, będzie miło jak pokażesz ;-) mi potem co z tego wymodziłeś
to i ja doloze swoje 3 grosze :)
http://www.members.lycos.co.uk/wesoledi/MENU.PAS
najpierw inicjujesz okno
potem dodajesz pozycje
a na koncu dzialasz.
jakbys mial problemu z wykorzystaniem tego to daj znac
(najlepiej jakby max elementow nie przekraszal wysokosci okna w znakach -2)