Warning Nu esti autentificat. Te rog autentifica-te sau inregistreaza-te pentru a avea acces la toate facilitatile forumului.
SkullBox  
Noiembrie 22, 2008, 02:43:28 pm
Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
Noutăţi: S-a lansat platforma noua
 
 SkullBoxDirector webTutoriale  Pagina principală   Ajutor Caută Autentificare Creează un cont  
Pagini: [1]
  Imprimă  
Subiect: O problema cu un meniu in pascal....  (Citit de 626 ori)
0Utilizatori şi 1 Vizitatori
dT
Newbie
*
Deconectat Deconectat

Mesaje: 29


O problema cu un meniu in pascal...., Aprile 19, 2007, 02:38:07 pm

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 :

Cod:
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  Smile
Memorat
DarkByte
Administrator
Hero Member
*****
Deconectat Deconectat

Mesaje: 2224



WWW
O problema cu un meniu in pascal...., Aprile 19, 2007, 07:24:18 pm

La cum ai postat tu ... doar la Exit face ceva ... iese din bucla si apoi din program :rolleyes: E normal.

Pune si tu un
Cod:
repeat
  bla bla
until False;

pentru a nu iesi din bucla. Enter-urile si sagetile le citesti in interiorul buclei ... dar numai daca KeyPressed e True ...

Uite un exemplu:
Cod:
If KeyPressed Then Begin
  C := ReadKey;
  Case C Of
    0 : Begin    {tasta speciala}
          C := ReadKey;
          Case C Of
            72 : bla bla;
            80 : bla bla;
        End;
    13: Begin
          Case K Of
            1: bla {procedura care face ce trebuie pentru prima optiune}
            2: bla 2
            3: bla 3
            4: bla 4
            5:Break; {iese din Repeat si apoi din prog}
          End;  
        End;  
     27:Break;
  End;
                   End;


Bafta Winking

P.S. posibil sa fie greseli, nu e testat ... still, it should work Winking
Memorat

cthackers
Newbie
*
Deconectat Deconectat

Mesaje: 13


O problema cu un meniu in pascal...., August 18, 2007, 02:35:30 pm

in modul grafic nu afiseaza cu write(ln), doar cu outtext(xy)
Memorat

Opriti pamantul vreau sa cobor!
HostGator
Newbie
*
Mesaje: Multe

Reclamă cu aligatori
 

Ai auzit de aligatorul care ofera hosting?
 
   
Pagini: [1]
  Imprimă  
 
Schimbă forumul:  

Creat cu MySQL Creat cu PHP Ethical hacking and programming community Director web romanesc cu inscriere gratuita Validat cu XHTML 1.0! Validat cu CSS!
IPFind, FAQDB, LAMP.ro, Good Proxy, Aberez.EU, RoFreeSBIE, ShockingSoft.com, HostVision, Invatam.net, PC Troubleshooting, Curs valutar online
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro