Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2017, 09:12   #1
Andrit
Пользователь
 
Регистрация: 31.05.2017
Сообщений: 16
По умолчанию Доработка программы: добавить действия по пунктам меню - PascalABC.NET

плиз, доделайте программу.
У меня есть меню и мне надо вставить туда программу в пункт «Нарисовать астроиду", и в пункт "Справка" написать текст

Код меню:
Код:
uses  GraphABC;
const
  x0 = 150;
  y0 = 200;
  w = 100;
  step = 120;
  n = 3;
  kv1=0;
  kv2=1;
  kv3=2;
var f:integer;
Q: array[1..3] of string= ('Нарисовать астроиду','Справка','Выход');
  procedure menu(f: integer);
var i:integer;
begin
for i:=1 to 3 do
begin
setfontsize(10);
if f=i then setfontcolor(clred) else setfontcolor(clgreen);
textout(200,100+i*30,Q[i]);
end;
end;
Procedure choose;
begin
case f of
1: begin; textout (1,1,'да');end;
3: halt;
end;
end;
procedure up;
begin if f=1 then f:=3 else f:=f-1; clearwindow; menu(f); end;
procedure down ;
begin if f=3 then f:=1 else f:=f+1; clearwindow; menu(f); end;
procedure KeyDown(Key: integer);                         
begin
case Key of
VK_Up: up;
VK_Down: down;
VK_Enter: begin; choose;end;
end;
end;
begin                 
f:=1;
menu(f);
OnKeyDown := KeyDown;
end.
Код программы:
Код:
uses
graphabc;
var
r, xc, yc, x1, y1: integer;
x, y, t: real;
s: string;
 
begin
repeat
write('Vvedite radius [50..200] r=');
readln(r);
until r in [50..200];
SetWindowSize(400, 400);
xc := WindowWidth div 2;
yc := WindowHeight div 2;
line(0, yc, 2 * xc, yc);
line(xc, 0, xc, 2 * yc);
t := 0;
while t <= 2 * pi do
begin
x := r * (sqr(cos(t)) * cos(t));
y := r * (sqr(sin(t)) * sin(t));
x1 := xc + round(x);
y1 := yc - round(y);
putpixel(x1, y1, clGreen);
t := t + 0.001;
end;
SetBrushColor(clGreen);
//setfillstyle(6, 12);
//floodfill(xc, yc, clGreen);
textout(50, 40, 'Astroida');
textout(50, 60, 'x=r*cos^3(t) y=r*sin^3(t)');
str(r, s);
textout(50, 80, 'pri R=' + s);
end.
Текст у меню "Справка":
Астроида это кривая, которую описывает фиксированная точка круга, с середины касаясь неподвижного круга раза большего радиуса, и катится по нему без скольжения

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 31.05.2017 в 09:36.
Andrit вне форума Ответить с цитированием
Старый 31.05.2017, 09:19   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А вы почему не доделаете?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.05.2017, 09:24   #3
Andrit
Пользователь
 
Регистрация: 31.05.2017
Сообщений: 16
По умолчанию

не знаю как
Andrit вне форума Ответить с цитированием
Старый 31.05.2017, 09:45   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Чот не очень отмазка.

Если бы вы попытались разобраться, то наверняка были бы более конкретные вопросы

Ну или если вы не хотите ничего делать, то лучше идти в раздел Фриланс для поиска кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 31.05.2017, 20:42   #5
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Вот вам пример. Разбираетесь.
Код:
{$apptype windows}
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}

uses System.Windows.Forms;
var
  Form1: Form;

procedure FormClose(sender: object; args: System.EventArgs);
begin
  Form1.Close;  
end;

procedure DrawAstroidaClick(sender: object; args: System.EventArgs);
begin
  //тут "рисоваем" астроиду
end;


procedure HelpClick(sender: object; args: System.EventArgs);
begin
  MessageBox.Show('ахтунг!');
end;

begin
  Form1 := new Form;
  Form1.Text := 'Пример';
  
  var toolStrip1 := new ToolStrip;
  var DrawAstroida := new ToolStripMenuItem('Нарисовать астроиду');  
  DrawAstroida.Click += DrawAstroidaClick;
  toolStrip1.Items.Add(DrawAstroida);
  
  
  var Help := new ToolStripMenuItem('Справка');
  Help.Click += HelpClick;
  toolStrip1.Items.Add(Help);
  
  Form1.Controls.Add(toolStrip1);
  
  Application.Run(Form1);
end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
код программы на языке PascalABC.NET и C# Namatrasnik Помощь студентам 0 04.06.2016 22:02
код программы на языке PascalABC.NET и C# Namatrasnik Помощь студентам 0 04.06.2016 21:59
Помогите составить блок схему для готовой программы PascalABC.NET Sysypo4ka Помощь студентам 2 19.05.2014 07:18
Программы обработки текстовых файлов в PascalABC.NET serge-first Паскаль, Turbo Pascal, PascalABC.NET 7 03.03.2014 10:55
Для доступа к пунктам главного меню клавиши ALT + подчеркнутая буква меню в офис 2007? Окоча Юра Microsoft Office Word 1 24.02.2009 12:29