Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.01.2015
Сообщений: 1
1

Полноэкранный режим. Переход с Формы на Форму

15.01.2015, 20:33. Показов 1669. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Сразу к делу: В программе будет несколько форм (На данном этапе всего две), между ними осуществляется переход в различным разделам. Хочу создать раздел "меню настроек" в котором будет реализован пункт Полноэкранного/Оконного режима, но я не могу понять почему происходит Глюк.

Имеется Главная Форма 1 с переходом на Форму 2
В Форме 2 осуществляется переход программы в Полноэкранный/Оконный режим.


На Форме 2 я перехожу в Полноэкранный режим. В этом режиме (из Формы 2) я перехожу на Форму 1, а потом возвращаюсь обратно (на Форму 2) для перехода в оконный режим, с этого момента начинается глюк: После закрытия Формы 2 - Форму 1 кидает в верхний левый угол, хотя она должна появиться на месте Формы 2.

Если просто запустить программу и осуществить переходе из Оконного режима в Полноэкранный и вернуться обратно - то всё всё хорошо, формы появляются друг за другом.

Этот глюк проскакивает всего один раз при запуске программы, при повторных переходах и смены режима экрана глюк не появляется. Господа-эксперты помогите поймать ошибку.

---------------------------------------------------------------------------------------------------------------------------------------

Delphi
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg,
  Vcl.ExtCtrls;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Image2: TImage;
    procedure Button5Click(Sender: TObject);
    procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MyMove(var msg:TMessage); message wm_move;
 
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
uses Unit2;
 
procedure TForm1.MyMove;     // движение формы 2 за формой 1
begin
  if Visible then
 
  begin
 
  Form2.Left:=Self.Left;
  Form2.Top := Top;
 
 end
end;
 
 
procedure TForm1.Button3Click(Sender: TObject);    // Переход в раздел Настроек Программы
begin
 
Form2.Show;
Form2.position:=poMainFormCenter;
 
Form2.WindowState:=Form1.WindowState;
 
Form1.Hide;
 
 
end;
 
procedure TForm1.Button5Click(Sender: TObject);      // Выход из программы
begin
 
Form1.Close;
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 
Form1.Position:= poOwnerFormCenter;
 
end;
 
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;     // Возможность перетаскивания формы в оконном режиме
  Shift: TShiftState; X, Y: Integer);
 
begin
ReleaseCapture;
Perform(WM_SysCommand,$F012,0);
end;
 
end.

------------------------------------------------------------------------------------------------------------------------------------------


Delphi
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
unit Unit2;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg,
  Vcl.ExtCtrls;
 
type
  TForm2 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Image2: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
    Shift: TShiftState; X, Y: Integer);
    procedure MyMove(var msg:TMessage); message wm_move;
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
 
  private
    { Private declarations }
 
     { Private declarations }
    procedure CreateParams(var Params: TCreateParams); override;
 
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.dfm}
 
uses Unit1;
 
procedure TForm2.MyMove;    // движение формы 1 за формой 2
begin
if Visible then
 
begin
 
Form1.Left:=Self.Left;
Form1.Top := Top;
 
end
end;
 
procedure TForm2.Button1Click(Sender: TObject);    // переход в главное меню
begin
 
 
Form1.Position:=Form2.Position;
Form1.Show;
Form1.WindowState:=Form2.WindowState;
Form1.Image2.Visible:=Form2.Image2.Visible;
 
Form2.Hide;
 
end;
 
 
procedure TForm2.Button2Click(Sender: TObject);  // Полнноэкранный режим
begin
 
Form2.WindowState:= Wsmaximized;
Form2.Image2.Visible:=False;
 
 
end;
 
procedure TForm2.Button3Click(Sender: TObject);   // Оконный режим
begin
 
Form2.WindowState := wsNormal;
Form2.Position:= poDesktopCenter;
 
Form2.Image2.Visible:=True;
 
end;
 
 
 
procedure TForm2.CreateParams(var Params: TCreateParams);  // Отображение программы на панели задач
begin
  inherited CreateParams(Params);
  with Params do
    ExStyle := ExStyle or WS_EX_APPWINDOW;
end;
 
 
procedure TForm2.Image2MouseDown(Sender: TObject; Button: TMouseButton;    // Возможность перетаскивания формы в оконном режиме
Shift: TShiftState; X, Y: Integer);
 
begin
ReleaseCapture;
Perform(WM_SysCommand,$F012,0);
 
end;
 
end.
-----------------------------------------------------------------------------------------------------------------------------------------
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2015, 20:33
Ответы с готовыми решениями:

Полноэкранный режим формы
Всем привет, моя форма на дельфи небольшая,на ней есть картинка на всю форму и кнопки. Когда...

Переход с формы на форму
Нужно по нажатию кнопки на первой форме перейти на вторую, причем со скрытием(закрытием) первой....

Переход с формы на форму
Когда я перехожу с первой формы на вторую, то все нормально, но когда я перехожу обратно, то вторая...

Переход на 2 форму с 1 формы с использованием таймера
как сделать чтоб программа переходила на 2 форму с 1 формы с использованием таймера.

0
15.01.2015, 20:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2015, 20:33
Помогаю со студенческими работами здесь

Полноэкранный режим + разрешение экрана
Всем доброго времени суток. Разработал программу у себя на компе(разрешение экрана 1366х768) в...

Полноэкранный режим для всех форм
Привет всем, есть ли такой код программы в дельфи 7, чтобы полноэкранный режим был сразу для всех...

Как узнать что чужое приложение(окно) перешло в полноэкранный режим?
Надо чтобы моя программа не выводила окно, если окно чужого приложения заняло весь экран....

Запретить сторонней программе переход в полноэкранный режим
Привет. При клике по кнопке "Развернуть", заголовку окна или выборе пункта "Развернуть"...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru