IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> меню во фрейме, как єто сделать?
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


здавствуйте, если можете, помогите, пожалуйста..
мне нужно меню во фрейме для игры... Где-то слышал, что такое возможно... Напишите, пожалуйста модуль для этого.
Заранее благодарен
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


В каком еще фрейме ? вы о чем?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

Репутация: -  0  +


Мне кажется можно только нарисовать параллелепипед bar3D(x1,y1,x2,y2, глубина). Использую предварительно SetFillStyle(образец_заливки, цвет) и SetLineStyle(стиль_линий, 0, толщина).
Я правильно понял фрейм - это рамка? Тогда так можно. ЕСли надо могу выложить полный внешний вид и исходник


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Если это "меню в рамке", то можно и поискать по форуму - уже выкладывалось несколько реализаций графического меню...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Цитата(NightPaladin @ 14.05.05 18:25)
Мне кажется можно только нарисовать параллелепипед bar3D(x1,y1,x2,y2, глубина). Использую предварительно SetFillStyle(образец_заливки, цвет) и SetLineStyle(стиль_линий, 0, толщина).
Я правильно понял фрейм - это рамка? Тогда так можно. ЕСли надо могу выложить полный внешний вид и исходник

Выложите, пожалуйста... :molitva:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

Репутация: -  0  +


Лично у меня получилось вот так:
Код
program asd;
Uses
   crt,graph;
var
   a,i : Integer;
begin
    a:= detect;
    i:=0;
    InitGraph(a, i, 'C:\BP\BGI');
             ClearDevice;
             SetFillStyle(5, 9);
             bar(0,0,640,480);
             SetLineStyle(4,255,red);
             rectangle(10,10,630,470);
             SetFillStyle(4, 10);
             bar(10,10,630,470);
             SetFillStyle(SolidFill,black);
             bar(220,170,450,320);
             SetFillStyle(7, 3);
             bar3D(200,150,430,300, 0, TopOn);
             OutTextXY(285,180,'Options');
             OutTextXY(282,200,'New Game');
             OutTextXY(297,220,'Exit');
             Readkey;
     CloseGraph;
end.


Внешний вид огрничен только фантазией и занием графики в TP. Я конечно сделал очень просто, но ИМХО похоже на рамку...


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Вот, что я написал в прошлом году по этому поводу:

Unit FMenu;
Interface


Type menu=record
But:byte;
button:array[1..8] of string[22];
Cin,Cout:integer;
Fon:array[1..2]of integer;
Zag : string[10];
end;

Var N : menu;


Function SimpleMenu : byte;

IMPLEMENTATION
Uses Graph,crt;

Function SimpleMenг : byte;
Var i,j:integer;;
C:char;
Y:1..8;
BEGIN
SetFillStyle(N.Fon[1],N.Fon[2]);
Y:=1; C:=' ';
While ord©<>13 do begin
i:=0;
With N do begin
settextstyle(4,0,8);{перенисите нужный BGI шрифт!}
setcolor(Cout);
Bar(0,0,640,480);
OutTextXY(20,5,Zag);
settextstyle(4,0,5);
While i<>But do begin
i:=i+1;
If i=Y then setcolor(Cin) else setcolor(Cout);
OutTextXY(20,i*TextHeight(N.Button[i])+60,N.Button[i]);
end;
end;
C:=Readkey;
Case ord( c ) of
72:If Y<>1 then Y:=Y-1 else Y:=N.But;
80:If Y<>N.But then Y:=y+1 else Y:=1;
end;
end;
simpleMenu:=Y;
end;

BEGIN

End.


Модуль состоит из одной функции SimpleMenu, типа Menu и глобальной переменной N. Переменная N отвечает за внешний вид и содержимое меню, а точнее за:
1) кол-во кнопок в меню (переменная Menu.but)
2) надписи в кнопках(переменная Menu.Button)
3) названия меню(переменная Menu.Zag)
4) цвет фона в стиле Bar. В переменной Menu.Fon[1] задан тип фона(см. setfillstyle), а в Menu.Fon[2] цвет фон.
5) Цвет пассивных и активных кнопок. Menu.Cin - cursor in(курсор внутри)
Menu.Cout - cursor out(курсор вне)

Функция SimpleMenu: создает меню и обробатывает сигналы пользователя:
стрелка вверх: сдвинуть указатель вверх
стрелка вниз: сдвинуть указатель вниз
Enter : выбрать выделенную кнопку.
Функция возвращает номер выбранной пользователем кнопки.
Примечание : модуль использует какой-то BGI шрифт, не помню какой точно.

Прошу не судить строго, я тогда не знал ни о каком ООП, мышь на паскале казалась нереальностью... :p2:

Сообщение отредактировано: volvo -


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

Репутация: -  0  +


Красиво - мой респект Дож.
Если Wait надо шоб полная симуляция менюшки - ну с управлением и т.д.
то щас пойду усовершенствую...

2Дож

А почему ООП, мышь можно и встроенным ассемблером делать к сожалению на память не воспроизведу, но можно и найти - тя интересует?


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Цитата
А почему ООП, мышь можно и встроенным ассемблером делать к сожалению на память не воспроизведу, но можно и найти - тя интересует?

Я тебя недопонял.


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

Группа: Пользователи
Сообщений: 67
Пол: Мужской

Репутация: -  0  +


Цитата
ни о каком ООП, мышь на паскале казалась нереальностью


Я эб этом, что мышь к паскалю можно приспособить с помощью встроенного ассемблера, и ооп здесь ни причём


--------------------
На горе лежит дискета
У неё испорчен boot
Через дырочку в конверте
Её вирусы грызут
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


ААА! Да, насчет мыши я все уже хорошо знаю, но год назад не знал. А насчет ООП, если бы я об нем знал, то создал бы объект, например, TMenu, в который бы входили все эти поля и функция SimpleMenu. И была бы возможность создавать не одно меню, а много! Хотя, здесь не много исправлять нужно.
Цитата
А почему ООП, мышь можно и встроенным ассемблером делать к сожалению на память не воспроизведу, но можно и найти - тя интересует?

Да, нет наверно, у меня рядом книжка по паскалю лежит и в FAQ про это говорится(FAQ).

Сообщение отредактировано: Дож -


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Кого интересует меню с ООП - смотрите здесь: Меню - ООП
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Цитата(NightPaladin @ 15.05.05 16:50)
Если Wait надо шоб полная симуляция менюшки - ну с управлением и т.д.
то щас пойду усовершенствую...

Усовершенствуйте, плиз, если Вам не трудно, буду очень благодарен.
Мне это меню нужно для первой страницы игры
В тексовом режиме я его умею делать, но это не то - для первой страницы нужна графика...
Мне надо, чтобы управление было попроще без всяких там мышей, ассемблеров... чтобы был переход на метки Новая игра, Справка, Выход...
Очень хотелось бы...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской

Репутация: -  0  +


Или кто-нибудь... напишите это мне, пожалуйста. Очень прошу. Надо побыстрее :molitva: :molitva: :molitva: :molitva: :molitva: :molitva:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Ну, что тебя не устраивает здесь:
Код

Unit FMenu;

Interface



Type menu=record

    But:byte;

    button:array[1..8] of string[22];

    Cin,Cout:integer;

    Fon:array[1..2]of integer;

    Zag : string[10];

    end;


Var N : menu;

   


Function  SimpleMenu : byte;


IMPLEMENTATION

Uses Graph,crt;


Function SimpleMenг : byte;

Var i,j:integer;;

     C:char;

      Y:1..8;

BEGIN

SetFillStyle(N.Fon[1],N.Fon[2]);

Y:=1; C:=' ';

While ord( C )<>13 do begin

i:=0;

With N do begin

settextstyle(4,0,8);{перенисите нужный BGI шрифт!}

setcolor(Cout);

Bar(0,0,640,480);

OutTextXY(20,5,Zag);

settextstyle(4,0,5);

While i<>But do begin

i:=i+1;

If i=Y then setcolor(Cin) else setcolor(Cout);

OutTextXY(20,i*TextHeight(N.Button[i])+60,N.Button[i]);

end;

end;

C:=Readkey;

Case ord( C ) of

72:If Y<>1 then Y:=Y-1 else Y:=N.But;

80:If Y<>N.But then Y:=y+1 else Y:=1;

end;

end;

simpleMenu:=Y;

end;


BEGIN


End.


А? Назови конкретно, что нужно исправить...


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Цитата
Кого интересует меню с ООП - смотрите здесь: Меню - ООП


Не компилируется Graph...
Цитата(console)
graphix.pas(9,11) Fatal: Can't compile unit GRAPH, no sourcer available

unsure.gif


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Ну так ты в ту же директорию GRAPH.TPU скопируй... Кстати, я не тестировал эту программу под FPC, когда я ее писал даже TP7 еще не было...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


Не получается, GRAPH.TPU там уже был... Та же ошибка... sad.gif


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






Цитата(Дож @ 19.05.2005 8:09) *

Не получается, GRAPH.TPU там уже был... Та же ошибка... sad.gif

может директория паскаля неверно задана?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Бывалый
***

Группа: Пользователи
Сообщений: 179
Пол: Мужской

Репутация: -  1  +


-= M0hs =-
тема потеряла актуальность smile.gif
Я даже не помню о чем идет речь.


--------------------
Доброго времени суток.
:nnn:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.11.2021 19:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name