Am si eu o problema care tot nu am putut sa o rezolv. Deci vreau sa fac pt un proiect la scoala un prg mai complex (din punct de vedere al interfetei grafice). Asa ca am facut un mini meniu :
uses Graph,crt;
const optiuni:array [1..5] of string=('File','Open','Save','Save as','Exit');
var
grDriver: Integer;
grMode: Integer;
ErrCode,i,k: Integer;
c:char;
begin
grDriver := Detect;
InitGraph(grDriver, grMode,'D:BPUNITS');
ErrCode := GraphResult;
if ErrCode = grOk then
begin
setbkcolor(blue);
k:=1;
repeat
for i:=1 to 5 do
begin
setfillstyle(1,magenta);
setcolor(magenta);
bar3d(300,150+i*30,380,165+i*30,10,true);
setcolor(green);
outtextxy(315,155+i*30,optiuni[i]);
end;
setfillstyle(1,blue);
bar(290,140+k*30,390,170+k*30);
setfillstyle(1,yellow);
setcolor(yellow);
bar3d(305,150+k*30,385,165+k*30,5,true);
setcolor(green);
outtextxy(315,155+k*30,optiuni[k]);
c:=readkey;
if ord(c)=72 then if k=1 then k:=5
else k:=k-1;
if ord(c)=80 then if k=5 then k:=1
else k:=k+1;
setfillstyle(1,blue);
setcolor(blue);
bar(290,140+1*30,390,170+5*30);
until (ord(c)=13) and (k=5);
Readln;
CloseGraph;
end
else
Writeln('Graphics error:', GraphErrorMsg(ErrCode));
end.
Toate bune si frumoase pana acuma insa nu reusesc urm. lucrui:
1. Atunci cand dau enter pe un buton sa execute o actiune (doar butonul exit merge in acest sens pt ca ii sf de repeat)
Am pus eu ceva if-uri in care c (adica readkey sa fie 13=enter) si k (optiunea) 1,2,3... insa cand dau enter se blocheaza
2. Am obs ca nu pot sa scriu nimic obisnuit (daca dau writeln('xxxx'); nu afiseaza nimica...numa daca pun in butoane).
Daca aveti nelamuriri legate de prb sau nu va merge meniul va rog sa postati.
Ms
