Jak zrobić proste menu? Bede wdzieczny za odpowiedz!
Połóż TMainMenu na forme.
Ale ja programuje w TURBO Pascalu, a nie w Object (delphi)
Bede dzwieczny za jakis kodzik-schemacik :)
uu, menu rozwijane a'la Norton Commander? no cóż jeżeli textowo to robisz to musiałbyć wszystko pisać (jest w helpie TP)+reagować na klawisze (też w helphie) a jak extrawagancja na całość to jeszcze rakcja na myszkę (tego w helpie nie ma)
Polecam GSVGA - chyba najlepsza biblioteka graficzna dla pascala, możliwości porównywalne do DirectX w 2D. http://www.gr0g.prv.pl (ogólnie ciekawa strona - wiele niestandardowych tematów typu "zrób to sam")
No wlasnie, ale ja tak za bardzo tego helpa nie mam...napisalem ze progrmauje w Turbo Pascalu, zeby kolega zrozumial w czym pisze :) A tak na serio to pisze Notatnik - kompiluje TMT Pascal Compiler...no chyba, ze jest gdzies w necie jakis Turbo Pascalik 7 free, ale watpie ;) Cze nie ma ktos moze takiego prstego kodu ze zmiennymi (albo raczej zmienna?) Dokladnie nie chodzi mi o to a'la NC, tylko taki bajer:
Menu:
1- Cos
2- Nic
3- HAHA
Wybierz: [i tu sie wpisuje cyferke]
cos w tym stylu, napisalem taki kodzik ze zmienna ale klapa, nie kompiluje :(
Prosze pomozcie!
Turbo Vision
Spoko dzieki za TV, ale wracam do tego menu, ma ktos kodzik? Bede bardzo bardzo wdzieczny, bo wiecie ,ucze sie dopiero a sam napisalem zle:( Prosze bardzo jeszcze jeden raz!
Spoko dzieki za TV, ale wracam do tego menu, ma ktos kodzik? Bede bardzo bardzo wdzieczny, bo wiecie ,ucze sie dopiero a sam napisalem zle:( Prosze bardzo jeszcze jeden raz!
z tego co pamiętam to w demosach Pascala jest taki programik z menu
No dobra mam cos takiego:
[code]uses CRT;
var
wybor:longint;
procedure nic;
begin
write('AAA');
readln;
end;
procedure cos;
begin;
write('BBB');
readln;
end;
begin
textcolor(black);
textbackground(yellow);
writeln('000');
writeln;
writeln;
textcolor(white);
textbackground(red);
writeln('Menu:');
writeln;
writeln('1 - Nic');
writeln('2 - Cos');
read(wybor);
if wybor=1 then nic;
if wybor=2 then cos;
end.
[/code]
I skompilowal sie nawet, ale jak wlacze to od razu THE END kaput :(
Co mam zle? Prosze specjalistuff o pomoc!
Dzieki Z gory!
Ehehe, sory wszystkim za sprawiony klopot !
Poradzilem sobie!
Wystarczy przed END. dac readln; i szafa gra
Dzieki wszystkim za fatyge i w ogóle chec pomocy mi !
Dzieki wam!
[code]
uses crt;
{...}
type string23=string[23];
type menudat=array[1..10] of string23;
{...}
function Menu(str : menudat;liczba : integer) : integer;
{ Wybiera jeden z liczba mozliwosci (max 10, 23 znaki) }
var x : integer;
px, py : integer;
ch : char;
begin
TextColor(LightGray);
TextBackground(Blue);
x:=1;
px:=WhereX;
py:=WhereY;
gotoXY(1,py);
if liczba>0 then writeln(' '+ste(str[1],23)+' ');
TextBackground(Black);
if liczba>1 then writeln(' '+ste(str[2],23)+' ');
if liczba>2 then writeln(' '+ste(str[3],23)+' ');
if liczba>3 then writeln(' '+ste(str[4],23)+' ');
if liczba>4 then writeln(' '+ste(str[5],23)+' ');
if liczba>5 then writeln(' '+ste(str[6],23)+' ');
if liczba>6 then writeln(' '+ste(str[7],23)+' ');
if liczba>7 then writeln(' '+ste(str[8],23)+' ');
if liczba>8 then writeln(' '+ste(str[9],23)+' ');
if liczba>9 then writeln(' '+ste(str[10],23)+' ');
repeat
repeat until KeyPressed;
ch:=ReadKey;
if ch=#0 then ch:=ReadKey;
if (x 1) and (ch=#72) { up } then begin
gotoXY(1,py+x-1);
writeln(' '+ste(str[x],23)+' ');
x:=x-1;
TextBackground(Blue);
gotoXY(1,py+x-1);
writeln(' '+ste(str[x],23)+' ');
TextBackground(Black);
end;
until ch=#13;
GotoXY(1,py+liczba);
czysc_bufor;
Menu:=x;
end;
{a potem gdzieś w programie dajesz:}
var menudat1: menudat;
wybor: integer;
{...}
menudat1[1]:='opcja1';
menudat1[2]:='opcja2';
menudat1[3]:='opcja3';
wybor:=Menu(menudat1, 3);
case wybor of
1: co zrobić, jeżeli wybierzesz 1;
2: co zrobić, jeżeli wybierzesz 2;
3: co zrobić, jeżeli wybierzesz 3;
end;
{...}
[/code]
Dużo lepszy efekt (masz menu i "jeździsz" sobie po nim niebieską linią)
Wiem, że sobie poradziłeś, ale tak masz fajniej ;)
sam dodałem tę funkcję do swojej biblioteki z użytecznymi narzędziami, kiedy programowałem w TP.
P.S. Ktoś gdzieś mówił, że jest darmowy TP 7... ale nie pamiętam gdzie...
P.S. Ktoś gdzieś mówił, że jest darmowy TP 7... ale nie pamiętam gdzie...
Nic nie mówiłem. To nie ja :) I tak FreePascal Rulez :)
P.S. Ktoś gdzieś mówił, że jest darmowy TP 7... ale nie pamiętam gdzie...
Nic nie mówiłem. To nie ja :) I tak FreePascal Rulez :)
Ktoś nie znaczyło Ktoś tylko ktoś... nie wiem kto, ale jakiś człowiek.... (Chyba :-) ). P.S. Nie byłoby problemu, gdybyś miał jakąś normalniejszą ksywkę :) . Bo się zaczyna tak jak z Niktem w Odysei :)