Тема: Меню...
Показать сообщение отдельно
Старый 11.07.2008, 18:24   #1
KeipL
Нуждающийся
 
Аватар для KeipL
 
Регистрация: 07.07.2008
Адрес: Zp-UA
Сообщений: 58
Написано 4 полезных сообщений
(для 11 пользователей)
Вопрос Меню...

Доброго время суток, друзья.
Я являюсь хорошим кодером паскаля, но в МП новичек.
Я Использовал пример граф меню из исходников выложенных гдето на этом форуме. Естествено изменил(вроде бы улучшил))) ) и начал затачивать под свой проэкт.
НО в результате проверки рабочими оказались только 4 пункта меню !!
Я облазил этот несчасный кусочек кода, но в упор не вижу ограничения...
ткните носом плиз.
код:
Program Menu3;
Var	mc, wi, hh, hi, key, i,azs: integer;
		arrow: image;
		m: array [0..10] of string;
		img: array [0..10] of image;

Procedure MenuColor(n: integer);
begin
	if n=mc 	then begin SetFont(FONT_FACE_SYSTEM, FONT_STYLE_BOLD, FONT_SIZE_MEDIUM); SetColor(255,255,255); end
				else begin SetFont(FONT_FACE_SYSTEM, FONT_STYLE_PLAIN, FONT_SIZE_MEDIUM); SetColor(255,255,255); end;
end;

Procedure ShowMenu;
var	pt: integer;
begin
 azs:=20;
 wi:=GetWidth; hi:=GetHeight;
 m[0]:='Старт'; m[1]:='Поиск'; m[2]:='Помощь'; m[3]:='О программе'; m[4]:='Рекорды';  m[5]:='Выход';
 img[0]:=LoadImage('/search.png'); img[1]:=LoadImage('/search.png'); img[2]:=LoadImage('/help.png'); img[3]:=LoadImage('/about.png'); img[4]:=LoadImage('/search.png');  img[5]:=LoadImage('/quit.png');
 mc:=0;
 arrow:=LoadImage('/arrow.png');
	repeat
		pt:=hi/2-60;
		SetFont(FONT_FACE_SYSTEM, FONT_STYLE_PLAIN, FONT_SIZE_MEDIUM);
		SetColor(50,51,61); FillRect(0,0,wi,hi);
		SetColor(64,64,64); FillRect(0,mc*azs+pt,wi,azs);
		SetColor(30,64,129); hh:=GetStringHeight('W')/2;
		
		for i:=0 to 5 do begin	MenuColor(i); DrawText(m[i],32,15+azs*i-hh+pt); DrawImage(img[i],3,3+azs*i+pt);end;
		DrawImage(arrow, wi-20, mc*azs+pt+15);
		Repaint; Delay(20);
		key:=GetKeyClicked;
		if (key=50) or (key=-59) or (key=-1) then mc:=(mc+3) mod 4;
		if (key=56) or (key=-60) or (key=-2) or (key=-6) then mc:=(mc+1) mod 4;
		if (key=53) or (key=-26) or (key=-5) or (key=20) then
																					begin
																						//if mc=0 then Search;
																						//if mc=1 then Help;
																						//if mc=2 then About;
																						if mc=3 then break;
																					end;
	until false;
end;

Begin
	
	ShowMenu;
End.
(Offline)
 
Ответить с цитированием