Помощь - Поиск - Пользователи - Календарь
Полная версия: Окна и клавиши
Форум «Всё о Паскале» > 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я
Димас
В какой строке ошибка и ее код?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.