Помощь - Поиск - Пользователи - Календарь
Полная версия: Окна и клавиши
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Димас
Как например можно сделать такое окно на Турбо Паскале:

Изображение

и как написать, например когда я нажимаю клавишу f1 то оно это окно закрыло(очистило), и открыло что то на подобие такого:
Изображение

nikita182
тебе именно f-ки?
у них 2х байтовый код..
Артемий
D:=detect;
InitGraph(D,M,'');
setcolor(white);
rectangle(getmaxx div 4,getmaxy-(getmaxy div 4),getmaxx-(getmaxx div 4),getmaxy div 4);
readln
end.

рисовать прямоугольник...
volvo
Окно создается так (текстовый режим):
Window(X1, Y1, X2, Y2);
TextBackGround(Cyan); { <-- насколько я виду у тебя - именно Cyan }
ClrScr;

Если надо очертить его линией - ищи на форуме, выкладывалась процедура отрисовки бордера вокруг окна.
А потом просто цикл обработки нажатий на кнопки... Все коды были только недавно приведены в "Теоретических вопросах"

Как только нажата определенная клавиша - очистка экрана (тот же ClrScr) и отчерчиваешь новое окно...

Короче, смотри о способах организации меню...
Димас
Цитата(nikita182 @ 21.05.2007 16:45) *

тебе именно f-ки?
у них 2х байтовый код..


о не тада не фки не нада... лучи тогда уже цыферки ну там 1 2 3 и т.к
nikita182

с : char;


c := readkey;
case с of
'1': {процедуры} ;
'2': {или} ;
'3': {условия} ;
end;





можно так..
Димас
так-с, кажись что то проясняется smile.gif

--
и всё таки с окнами хотелось бы поподробней? а то как то плохо асилил dry.gif
nikita182
 

uses crt;

var
c : char;

procedure asd;
begin
clrscr;
writeln;
writeln (' ********************************');
writeln (' * *');
writeln (' * *');
writeln (' * гыгы, окошко *');
writeln (' * *');
writeln (' ********************************');
readkey;
end;

begin
repeat
clrscr;
writeln ('1 - окно, 2 - выход');
c := readkey;
case c of
'1': asd;
'2': halt;
end;
until c = '2';
end.



вот такое окошко) пойдет?
Димас
Цитата(nikita182 @ 21.05.2007 18:10) *

вот такое окошко) пойдет?


неее, такое не красиво... хочется такое как на картинках)))))
volvo
Тебе в графике, или в текстовом режиме, ты так и не ответил?
Димас
Цитата(volvo @ 21.05.2007 18:51) *

Тебе в графике, или в текстовом режиме, ты так и не ответил?


Графическом будет самое то good.gif

?
Артемий
uses crt,graph;
var
D,M,x,y:integer;
begin
D:=detect;
Initgraph(D,M,'');
for x:=getmaxx div 4 to getmaxx-(getmaxx div 4) do begin
for y:=getmaxy-(getmaxy div 4) downto (getmaxy div 4) do begin
PutPixel(X,Y,Cyan);
end;
end;
rectangle(getmaxx div 4,getmaxy-(getmaxy div 4),getmaxx-(getmaxx div 4),getmaxy div 4);
OutTextXY(getmaxx div 4,(getmaxy div 4)+2,'This is string');
OutTextXY(getmaxx div 4,(getmaxy div 4)+15,'This is second string');
readln
end.

Вот так пойдет?
Димас
? blink.gif
volvo
wacko.gif
Зачем делать 2 вложенных цикла, если можно обойтись
...
Initgraph(D,M,'');
setfillstyle(solidfill, cyan);
bar(getmaxx div 4, getmaxy div 4, 3*(getmaxx div 4), 3*(getmaxy div 4));
setcolor(white);
rectangle(getmaxx div 4, getmaxy div 4, 3*(getmaxx div 4), 3*(getmaxy div 4));
...

Непонятно...
Димас
Цитата(Артемий @ 21.05.2007 21:43) *

Вот так пойдет?

не работает чета mad.gif
Ozzя
Димас
В какой строке ошибка и ее код?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.