Pascal - menu v programu

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
domkol
Level 1.5
Level 1.5
Příspěvky: 114
Registrován: září 13
Bydliště: Český Krumlov
Pohlaví: Muž
Stav:
Offline

Pascal - menu v programu

Příspěvekod domkol » 10 zář 2014 19:42

Zdravím,
potřeboval bych najít chybu ve zdrojáku. V programu jsem zatím vytvořil jen menu, kde si uživatel vybere nějakou položku. Když najede ukazatelem na určitou položku a stiskne enter, bude následovat určitá akce, ale to si dodělám později. Problém je v tom, že když už ten enter stiskne, nic se neděje. Už jsem to zkoumal celkem dlouho a opravdu si nevím rady.

Kód: Vybrat vše

program pujcovna;

uses crt;

var
  key : char;
  x, y : integer;

procedure nahoru;                                     (*pohyb šipek v menu*)
begin
y:=y-1;
if y<1 then y:=1;
gotoxy(x,y);
end;

procedure dolu;                                       (*pohyb šipek v menu*)
begin
y:=y+1;
if y<1 then y:=1;
gotoxy(x,y);
end;

begin
cursoroff;
key:=#1;
window(4,3,50,50);
x:=1;
y:=3;

repeat
gotoxy(1,1);
writeln('PROGRAM PUJCOVNA');
writeln;
writeln('   KONTAKTY');
writeln('   PUJCENI');
writeln('   PREVZETI');
writeln('   SKLADOVA EVIDENCE');
writeln('   KONEC PROGRAMU');
gotoxy(x,y);
write(#26);
gotoxy(x,y);     (*tady je něco v píči, fakt nevim co :@ *)
readkey;
if keypressed then key := readkey;
case key of
   #72: begin                                     (*pohyb šipek v menu*)
         x:=wherex;
         y:=wherey;
         write('   ');
         gotoxy(x,y);
         if y=3 then y:=8;
         nahoru;
         write(#26);                                   (*pohyb šipek v menu*)
         gotoxy(x,y);
         key:=#0;
         x:=wherex;
         y:=wherey;                                                      (*pohyb šipek v menu*)
        end;
   #80: begin
         x:=wherex;                                     (*pohyb šipek v menu*)
         y:=wherey;
         write('   ');
         gotoxy(x,y);
         if y=7 then y:=2;
         dolu;
         write(#26);                                (*pohyb šipek v menu*)
         gotoxy(x,y);
         key:=#0;
         x:=wherex;
         y:=wherey;                                      (*pohyb šipek v menu*)
        end;
     #27: key:=#1;
     #13: begin
           y:=wherey;
           case y of
            7: key:=#27;
            6: begin                    (*sklady*)
                clrscr;
                write('sklady!');
               end;
            5: begin                     (*převzetí*)
                clrscr;
                write('prevzeti');
               end;
            4: begin                      (*půjčení*)
                clrscr;
                write('pujceni');
               end;
            3: begin                    (*kontakty*)
                clrscr;
                writeln('KONTAKTY - PROHLIZENI');
                writeln('Pro vytvoreni noveho kontaktu stisknete N');
                writeln;
               end;
           end; (*end od case*)
           read;
        end;
   end; (*end od case pro pohyb šipek v menu*)





until key=#27;
end.

Reklama
Uživatelský avatar
domkol
Level 1.5
Level 1.5
Příspěvky: 114
Registrován: září 13
Bydliště: Český Krumlov
Pohlaví: Muž
Stav:
Offline

Re: Pascal - menu v programu

Příspěvekod domkol » 14 zář 2014 20:27

opravdu nikdo neví?

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal - menu v programu

Příspěvekod faraon » 14 zář 2014 23:29

Ostatní položky fungují jak mají?

Co se děje po stisknutí Enteru? Dostaneš se do té větve?

A pokud ano, co je první znak který potom načteš?

Musíš zjistit ve kterém místě ten problém je, jak hluboko do té struktury se dostaneš, a jestli třeba někde nenačítáš o znak více nebo méně.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
domkol
Level 1.5
Level 1.5
Příspěvky: 114
Registrován: září 13
Bydliště: Český Krumlov
Pohlaví: Muž
Stav:
Offline

Re: Pascal - menu v programu

Příspěvekod domkol » 15 zář 2014 21:14

tak jsem přišel na to, že špatně bylo asi označení pro enter (#13) když to nahradím #77 nebo-li šipkou doprava tak to funguje. nicméně rád bych onu možnost vybíral entrem. nevíš jaké značení je pro enter?

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Pascal - menu v programu

Příspěvekod faraon » 16 zář 2014 05:46

Já bych také řekl #13, co kdyby sis zkusil napsat prográmek, který ti zobrazí kód stisknuté klávesy? ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
domkol
Level 1.5
Level 1.5
Příspěvky: 114
Registrován: září 13
Bydliště: Český Krumlov
Pohlaví: Muž
Stav:
Offline

Re: Pascal - menu v programu

Příspěvekod domkol » 17 zář 2014 21:20

takže, program na zobrazení stisknuté klávesy mi jaksi nefunguje, nicméně zkusil jsem to jiným způsobem. Napsal jsem program, který vypisuje text, dokud uživatel nazmáčkne #13. Reagoval pouze na enter, z čehož vyvozuji, že #13 = enter. Nechápu tedy proč mi to nejde v tom hlavním programu.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Panely otevřených programů na hlavním panelu Příloha(y)
    od Prorock » 20 říj 2024 15:00 » v Windows 11, 10, 8...
    28
    7894
    od Prorock Zobrazit poslední příspěvek
    02 lis 2024 13:41

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti