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

Не работает fsStayOnTop для нескольких форм

27.06.2013, 14:44. Показов 2814. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Почему если у Form1 в параметрах FormStyle указываю fsstayontop, то она поверх всех окон держится, а если о же самое у Form2 указываю, то она не держится?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2013, 14:44
Ответы с готовыми решениями:

Одно действие для нескольких форм
Каким образом можно организовать одно действие для нескольких форм в данном случае мне нужно...

Создание нескольких форм для программы тестирования
«Тест по дисциплине Основы программирования» Постановка задачи: создать проект, состоящий из...

Одна структура для нескольких форм
Привет, форум. Имеются несколько форм, у каждой формы есть одинаковые контролы и свои уникальные. В...

Глобальное меню для нескольких форм
Всем привет, у меня следующая проблема: есть много форм, на которых должно быть одинаковое меню....

12
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
27.06.2013, 15:41 2
Здесь я показывал, что надо делать: Две формы поверх всех окон. Вторая не хочет быть поверх
1
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 15:46  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
Так там для C++
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
27.06.2013, 15:49 4
Там для Билдера, слово в слово переводится на Дельфи, только запиши это же самое Паскалевским синтаксисом. Где проблема?
0
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 15:52  [ТС] 5
Цитата Сообщение от UI Посмотреть сообщение
Где проблема?
Проблема в том что я ничего не понял. Не могли бы вы просто код написать, а то я пока разберусь.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
27.06.2013, 15:55 6
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
type
  TForm2 = class(TForm)
  // ...
  private
    { Private declarations }
  public
    { Public declarations }
 
  protected
    procedure CreateParams(var Params: TCreateParams); override; // Добавляем в класс второй формы
  end;
 
// и реализация:
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WndParent := 0;
end;
 
// Это событие OnShow
procedure TForm2.FormShow(Sender: TObject);
begin
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
Сильно отличается от Билдера?
1
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 15:58  [ТС] 7
Цитата Сообщение от UI Посмотреть сообщение
Сильно отличается от Билдера?
Не сильно, но отличается.
0
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 16:03  [ТС] 8
Как сделать чтобы Form1 отображалась на панели задач, а Form2 - нет?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
27.06.2013, 16:10 9
Это относится сюда же, так что давай продолжим тут. Вот полный код модуля, смотри и пробуй:
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
unit Unit2;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;
 
type
  TForm2 = class(TForm)
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  protected
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
  end;
 
var
  Form2: TForm2;
 
implementation
uses ComObj;
 
{$R *.dfm}
 
const
  CLSID_TaskbarList: TGUID = '{56FDF344-FD6D-11d0-958A-006097C9A090}';
 
type
  ITaskbarList = interface
  ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
     procedure HrInit; safecall;
     procedure AddTab(hwnd: Cardinal); safecall;
     procedure DeleteTab(hwnd: Cardinal); safecall;
     procedure ActivateTab(hwnd: Cardinal); safecall;
     procedure SetActiveAlt(hwnd: Cardinal); safecall;
  end;
 
{ TForm2 }
 
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WndParent := 0;
end;
 
procedure TForm2.CreateWnd;
var
  Taskbar: ITaskbarList;
begin
  inherited;
 
  Taskbar := CreateComObject(CLSID_TaskbarList) as ITaskbarList;
  Taskbar.HrInit;
  Taskbar.DeleteTab(Handle);
end;
 
procedure TForm2.FormShow(Sender: TObject);
begin
  SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
 
end.
Отображается теперь Form2 на панели?
0
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 16:15  [ТС] 10
Цитата Сообщение от UI Посмотреть сообщение
Отображается теперь Form2 на панели?
Отображается.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
27.06.2013, 16:27 11
Не верю:
Не работает fsStayOnTop для нескольких форм


Где вторая кнопка?
0
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 16:35  [ТС] 12
Цитата Сообщение от UI Посмотреть сообщение
Не верю
Ну вообщем это весь код моей второй формы:
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
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
 
     protected
    procedure CreateParams(var Params: TCreateParams); override; // Добавляем в класс второй формы
    procedure CreateWnd; override;
  end;
 
var
  Form2: TForm2;
 
implementation
 
uses Unit1,ComObj;
 
{$R *.dfm}
 
const
  CLSID_TaskbarList: TGUID = '{56FDF344-FD6D-11d0-958A-006097C9A090}';
 
type
  ITaskbarList = interface
  ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
     procedure HrInit; safecall;
     procedure AddTab(hwnd: Cardinal); safecall;
     procedure DeleteTab(hwnd: Cardinal); safecall;
     procedure ActivateTab(hwnd: Cardinal); safecall;
     procedure SetActiveAlt(hwnd: Cardinal); safecall;
  end;
 
  { TForm2 }
 
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.WndParent := 0;
end;
 
procedure TForm2.Button1Click(Sender: TObject);
begin
form2.Left:=-200;
form1.left:=50;
end;
 
procedure TForm2.CreateWnd;
var
  Taskbar: ITaskbarList;
begin
  inherited;
 
  Taskbar := CreateComObject(CLSID_TaskbarList) as ITaskbarList;
  Taskbar.HrInit;
  Taskbar.DeleteTab(Handle);
end;
 
procedure TForm2.FormShow(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;
 
end.
0
12 / 12 / 5
Регистрация: 08.04.2009
Сообщений: 879
27.06.2013, 18:25  [ТС] 13
Цитата Сообщение от UI Посмотреть сообщение
Не верю:
Вот, вторая форма у меня это кнопка над пуском.
Миниатюры
Не работает fsStayOnTop для нескольких форм  
0
27.06.2013, 18:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2013, 18:25
Помогаю со студенческими работами здесь

PHP обработчик для нескольких форм
На ленде несколько форм. Они практически одинаковые, может даже для php обработчика они совсем...

Общий DataSet для нескольких форм
Привет всем! Помогите, пожалуйста, решить проблемку... Есть DataSet1, расположенный на форме...

Один input для нескольких форм
Добрый день. Как сделать так, чтобы один input мог принадлежать нескольким формам одновременно? ...

Одна функция для нескольких форм
Ребят у меня такой вопрос: Как сделать одну функцию, чтобы она работала во всех формах? Она должна...


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

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