Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 5 / 1
Регистрация: 21.09.2019
Сообщений: 80

Смена интерфейса формы

11.11.2019, 19:46. Показов 1529. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как изменить интерфейс внутри формы после нажатия кнопки и потом, другой кнопкой, вернуться к предыдущему интерфейсу?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{$reference 'System.Windows.Forms.dll'}
{$reference 'System.Drawing.dll'}
 
uses 
  System, System.Windows.Forms;
var win:= new Form;
  next:= new Button;
  procedure nextphase(sender: object; args: eventargs);
  begin
  //процедура смены интерфейса
  end;
begin
 next.Text:='Вперед';
 win.FormBorderStyle:=FormBorderStyle.None;
 win.StartPosition:=formstartposition.CenterScreen;
 win.Controls.Add(next);
 next.Dock:=dockstyle.Bottom;
 next.Click+=nextphase;
  Application.Run(Win);
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2019, 19:46
Ответы с готовыми решениями:

Смена языка интерфейса
Ещё раз привет всем! Вопрос следующий Необходимо сменить язык интерфейса во время работы с программой без её перезапуска Слоты...

Смена языка интерфейса
Привет всем! Подскажите как на win 7 сменить язык интерфейса?

Динамическая смена интерфейса
Короче пишу тут програмку файловый менеджер. С динамическим созданием и размещением интерфейса на экране проблем нет. Только вот получается...

2
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
11.11.2019, 21:51
_Skiper_, Если я не ошибаюсь,то во время программы интерфейс формы менять нельзя
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
12.11.2019, 06:45
Лучший ответ Сообщение было отмечено _Skiper_ как решение

Решение

Нельзя только с редактором форм. А если ручками делать - что собсна вы пробовали? Или вы просто испугались и прибежали просить чтоб за вас всё делали?

Изменение содержимого формы вообще ничем не отличается от первого добавления элементов. Только старые элементы управления надо или убрать (Controls.Remove) или скрыть (.Visible := false).

Ну а чтоб переключение было быстрым, не по 1 элементу - лучше использовать контейнеры:
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
{$reference System.Windows.Forms.dll}
{$reference System.Drawing.dll}
 
// Если без этого работало приложение с формами - не значит что оно и дальше будет работать
// Как минимум окна открытия файлов - точно без него сыпятся
{$apptype windows}
 
uses System;
uses System.Windows.Forms;
 
type
  Phase1Container = sealed class(ContainerControl)
    
    next := new Button;
    
    constructor;
    begin
      self.Dock := DockStyle.Fill;
      
      self.Controls.Add(next);
      next.Dock := DockStyle.Bottom;
      next.Text := 'Вперёд';
      
    end;
    
  end;
  
  Phase2Container = sealed class(ContainerControl)
    
    b1 := new Button;
    
    constructor;
    begin
      self.Dock := DockStyle.Fill;
      
      self.Controls.Add(b1);
      b1.Text := 'Другая кнопка';
      
    end;
    
  end;
  
  MyForm = sealed class(Form)
    p1 := new Phase1Container;
    p2 := new Phase2Container;
    
    constructor;
    begin
      self.FormBorderStyle := System.Windows.Forms.FormBorderStyle.None;
      self.StartPosition := FormStartPosition.CenterScreen;
      
      Controls.Add(p1);
      Controls.Add(p2);
      p2.Visible := false;
      
      p1.next.Click += (o,e)->
      begin
        
        // это почти моментальное переключение, для него я и взял контейнеры
        p2.Visible := true;
        p1.Visible := false;
        
        // если фаза 1 больше нигде не будет использоваться - можно удалить её, а для этого надо избавится от всех ссылок
        self.Controls.Remove(p1);
        p1 := nil;
        
      end;
      
    end;
    
  end;
  
begin
  Application.Run(new MyForm); // инициализацию элементов управления лучше класть в конструктор, вместо того чтоб пихать всё вместе в begin-end.
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2019, 06:45
Помогаю со студенческими работами здесь

Смена интерфейса по нажатию кнопки
Здравствуйте. Я только учусь и у меня возникают вопросы, помогите, пожалуйста. Проблема такая: пишу программу. На первой форме стартовый...

Смена цвета элементов интерфейса программы
Задание такое: Нарисовать мышку и при нажатии кнопок закрашивать их другим цветом, а при отпускании – возвращать им естественный цвет....

TP Link TD-8816 и смена порта веб-интерфейса
Здравствуйте, Уважаемые форумчане! Подскажите, пожалуйста, где на этой адской машинке можно сменить порт для веб-морды? Гугл не...

Приоритет интерфейса формы
Всем здравствуйте. Интересует возможность решения вот такой вот ситуации: Есть форма с несколькими кнопками. К одной кнопке на...

Смена языка интерфейса "на лету".
Добрый день. Для смены языка интерфейса программы "на лету" нашел следующий код: (взято с...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru