Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/47: Рейтинг темы: голосов - 47, средняя оценка - 4.51
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22

Создание нескольких окон в PascalABC.Net

24.08.2014, 19:54. Показов 10421. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как создать программу, работающую сразу с двумя графическими окнами?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.08.2014, 19:54
Ответы с готовыми решениями:

Дизайн окон - PascalABC.NET
Дизайн окон.

Создание рабочего окна в PascalABC.NET
Мне нужно создать такое окно, чтобы в белой штуки была информация, а клавишами 1-4 управлять. Меню и информация в верху. Средство выбора...

Создание серьезных приложений на PascalABC.NET
Можно ли создавать серьезные приложения на PascalABC.NET (именно на нем) или же все-таки пора начать учить что-то более продвинутое?

4
 Аватар для Kordn
158 / 137 / 106
Регистрация: 18.05.2013
Сообщений: 289
25.08.2014, 00:07
Вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{$reference System.Windows.Forms.dll}
{$reference System.Drawing.dll}
{$apptype windows}
uses
  System.Windows.Forms, System.Drawing;
 
var
  graphForm, mainForm: Form;
  button: Button;
  draw_circle := false;
 
procedure OnPaint(sender: object; e: PaintEventArgs);
begin
  if draw_circle then
    e.Graphics.DrawEllipse(new Pen(Color.Red), new Rectangle(90, 90, 100, 100));
end;
 
procedure OnClick(sender: object; e: System.EventArgs);
begin
  draw_circle := not draw_circle;
  graphForm.Invalidate();
end;
 
begin
  mainForm := new Form();
  mainForm.Text := 'Main Form';
  mainForm.Size := new System.Drawing.Size(150, 200);
  mainForm.MinimizeBox := false;
  mainForm.MaximizeBox := false;
  mainForm.StartPosition := FormStartPosition.Manual;
  mainForm.Location := new System.Drawing.Point(200, 200);
  
  button := new System.Windows.Forms.Button();
  button.Location := new System.Drawing.Point(30, 10);
  button.Text := 'Draw Circle';
  button.Click += OnClick;
  mainForm.Controls.Add(button);
  
  graphForm := new Form();
  graphForm.Text := 'Graph Form';
  graphForm.Size := new System.Drawing.Size(300, 300);
  graphForm.StartPosition := FormStartPosition.Manual;
  graphForm.Location := new System.Drawing.Point(400, 200);
  graphForm.Paint += OnPaint;
  graphForm.Show();
  
  Application.EnableVisualStyles();
  Application.Run(mainForm);
end.
1
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
25.08.2014, 07:46  [ТС]
Прошу прощения, но можно с комментариями, так как я мало с эти знаком.

Добавлено через 4 минуты
Если предоставляется возможным описать кратко алгоритм создания окон, то буду благодарен.

Добавлено через 5 минут
Можно ли подключить вместо System.Drawing GraphABC?

Добавлено через 4 минуты
BTW, как создать данное попроще - так чтобы было только два графических окна GraphABC (без всяких кнопочек)?

Добавлено через 6 минут
Опишу причину стольких многих вопросов. Дело в том, что я почти закончил создавать программу (оболочку для создания программ без программирования), но все программы, запускаемые в ней открываются в том же самом окне (что и главное меню). Хочется сделать возможность открытия нового окна при запуске программ и возможность его закрытия и перехода на главное окно программы (создание его активным).
0
 Аватар для Kordn
158 / 137 / 106
Регистрация: 18.05.2013
Сообщений: 289
25.08.2014, 12:09
Лучший ответ Сообщение было отмечено Volobuev Ilya как решение

Решение

Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
Можно ли подключить вместо System.Drawing GraphABC?
Не думаю. В GraphABC по дефолту создается единственное графическое окно, с которым вы работаете. А вообще, раз вы используете среду разработки, поддерживающую .NET, зачем ограничиваться лишь стандартными методами? Это как купить спорткар и ездить на нем только в соседний квартал за хлебом.
Я понимаю, если вы новичок и раньше не работали с .NET, это может показаться странным и сложным, но, поверьте, вы скоро привыкните и освоитесь, и тогда поймете, насколько это мощный и удобный инструмент разработки.
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
Прошу прощения, но можно с комментариями, так как я мало с эти знаком.
Нужно:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//Подключаем ссылки на библиотеки .NET, которые нам понадобятся
{$reference System.Windows.Forms.dll}
{$reference System.Drawing.dll}
//Приложение - оконное (не консольное, то бишь)
{$apptype windows}
 
uses
  System.Windows.Forms, System.Drawing;
 
var
  graphForm, mainForm: Form; //Две формы (два окна, грубо говоря)
  button: Button; //Кнопка
  draw_circle := false;
 
//Происходит при пере-/отрисовке графического окна
procedure OnPaint(sender: object; e: PaintEventArgs);
begin
  if draw_circle then
    //Рисуем в нашем графическом окне красной "ручкой" эллипс, который вписан в прямоугольник с координатой левого верхнего угла (90, 90)
    //(считая от ЛВ угла графического окна) и размером 100х100
    e.Graphics.DrawEllipse(new Pen(Color.Red), new Rectangle(90, 90, 100, 100));
end;
 
//Происходит при нажатии на кнопку
procedure OnClick(sender: object; e: System.EventArgs);
begin
  draw_circle := not draw_circle;
  graphForm.Invalidate(); //Перерисовываем граф окно
end;
 
begin
  mainForm := new Form(); //Создаем новый экземпляр класса Form
  mainForm.Text := 'Main Form'; //Текст формы(окна) (аналог Window.Caption в GraphABC)
  mainForm.Size := new System.Drawing.Size(150, 200); //Задаем размер окна
  mainForm.MinimizeBox := false; //Убираем кнопку "скрыть"
  mainForm.MaximizeBox := false; //Убираем кнопку "развернуть"
  mainForm.StartPosition := FormStartPosition.Manual; //Вручную задаем положение окна
  mainForm.Location := new System.Drawing.Point(200, 200); //Координаты ЛВ угла
  
  button := new System.Windows.Forms.Button(); //Создаем новую кнопку
  button.Location := new System.Drawing.Point(30, 10); //Тут понятно: задаем положение, отсчитывая от ЛВ угла формы, в которую мы поместим эту кнопку
  button.Text := 'Draw Circle'; //Текст на кнопке
  button.Click += OnClick; //Прописываем обработчик на событие клика
  mainForm.Controls.Add(button); //Добавляем кнопку на главную форму
  
  //Тут по аналогии с первой формой(окном)
  graphForm := new Form(); 
  graphForm.Text := 'Graph Form';
  graphForm.Size := new System.Drawing.Size(300, 300);
  graphForm.StartPosition := FormStartPosition.Manual;
  graphForm.Location := new System.Drawing.Point(400, 200);
  graphForm.Paint += OnPaint; //Обработчик на событие отрисовки
  graphForm.Show(); //Показываем (запускаем) форму
  
  Application.EnableVisualStyles(); //Это чтобы все было красивенько
  //Запускаем наше приложение, показывая главную форму и делая ее основной, т.е. при закрытии этой формы программа прекращает работу
  Application.Run(mainForm);  
end.
Добавлено через 8 минут
Цитата Сообщение от Volobuev Ilya Посмотреть сообщение
оболочку для создания программ без программирования
Ничто не ново под луной
Сам писал подобное, используя именно .NET. Поверьте, это очень сильно облегчает написание оконных приложений. Настоятельно рекомендую хотя бы бегло ознакомиться с основными методами этой платформы. Удачи!
0
Alvin Seville
 Аватар для Соколиный глаз
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 22
27.08.2014, 19:17  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2014, 19:17
Помогаю со студенческими работами здесь

Создание своего модуля для PascalABC.net
Здравствуйте уважаемые форумчане, подскажите как создать из файла Pas файл PCU. Чем и как его можно откомпилировать? Просто стоит задача...

Создание byte-переменной через new запрещено в контексте PascalABC.Net
begin typeof(System.Byte).GetConstructors.PrintLines; end. Выводит пустоту. Но, следующий отрывок кода на C# компилируется: ...

В чем разница PascalABC.net и PascalABC
Скажите в чем разница PascalABC.net И PascalABC. Помню когда-то давно программы работающие в PascalABC у меня не работали в .net

Установится ли PascalABC.NET на систему, где установлен только .NET 4.6.1?
Привет всем. Вопрос, собственно, озвучен выше. Конкретнее: есть компьютер со свежеустановленной Win10 x64, на которой присутствует...

VK.API на PascalABC.NET
Доброго времени суток, написал модуль для PascalABC.NET, с помощью которого можно использовать vkapi. Вот он: library VKAPI; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru