Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кнопками "развернуть", "переместить" 
:(
    Опции темы
DoZENT
Дата 29.8.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Почему-то у любого приложения, написаного на делфаке отстутствуют строчки "развернуть", "переместить" и т.д. в контекстном меню, которое вызывается из таскбара. Есть только восстановить (неактивная), свернуть и закрыть. Это у меня одного такая проблема или нет?


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Romikgy
Дата 29.8.2006, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Код

 appearance and behavior of the form border.

Delphi syntax:

property BorderStyle: TFormBorderStyle;

C++ syntax:

__property TFormBorderStyle BorderStyle = {read=FBorderStyle, write=SetBorderStyle, stored
=IsForm, default=2};

Description

Use BorderStyle to get or set the appearance and behavior of the form border. BorderStyle can be any of the following TFormBorderStyle values:

Value    Meaning

bsDialog    Not resizable; standard dialog box border
bsSingle    Not resizable; single-line border
bsNone    Not resizable; no visible border line
bsSizeable    Standard resizable border
bsToolWindow    like bsSingle but with a smaller caption
bsSizeToolWin    like bsSizeable with a smaller caption

Note:    Changing the border style of an MDI child form to bsDialog or bsNone has no effect.

имхо с этой пропертей трабла


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Snowy
Дата 29.8.2006, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Нет переместить и размера - потому что у Application нет размера.
Включить можно у главной формы:
Код

type
  TForm1 = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; // выносим на панель главное окно
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE); // убираем Application
end;



Добавлено @ 16:02 
Хотя нет.
Вот так даже короче:
Код

procedure TForm1.FormShow(Sender: TObject);
begin
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
  ShowWindow(Application.Handle, SW_HIDE);
end;

PM MAIL   Вверх
Snowy
Дата 29.8.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



ХМ. Подглючивает при разворачивании.
Вот так вроде всё нормально работает:
Код

type
  TForm1 = class(TForm)
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    procedure SetTaskBar(Sender: TObject);
  end;

var Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SetTaskBar(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  SetTaskBar(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnRestore := SetTaskBar;
end;

PM MAIL   Вверх
DoZENT
Дата 29.8.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Спасибо, Snowy, вопрос решен!


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Snowy
Дата 30.8.2006, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Я подправил код - поменял местами строки в SetTaskBar, а то на медленных машинах фокус с подменой заметен.
Так он менее очевиден.
PM MAIL   Вверх
DoZENT
Дата 30.8.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 2.6.2006

Репутация: нет
Всего: 1



Блин, только сейчас заметил: после применения этого кода происходит такая хрень: открываешь модально окно, оно на переднем фоне, все правильно. Но если, оставляя это модальное окно открытым, переключиться на другое приложение, а потом обратно, то уже главная форма перекрывает то окно, а т.к. оно модальное, то ни на главной форме нажать ничего нельзя, ни модальное окно увидеть, т.к. его перекрывает главное, извиняюсь за тавтологию smile Что можно сделать?


--------------------
Какая боль, какая боль, Internet Explorer 5.0...
PM MAIL   Вверх
Snowy
Дата 31.8.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Спрятать главное окно перед открытием модального. smile
А при закрытии модального - показать главное... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.