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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление кнопки "На весь экран", Возможно ли это? 
:(
    Опции темы
Guedda
Дата 30.3.2006, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Собственно, сабж... Хотелось бы, чтобы кнопки вообще не было. Реально такое, или нет?
Делаю так:
Код

Form1.BorderIcons := [biSystemMenu, biMinimize];

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


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
sexton
Дата 30.3.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

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



А ты убери вообще всю полосу и нарисуй кнопки сам. А форму можно сделать перетаскиваемой мышью и без полоски заголовка.
PM MAIL WWW ICQ   Вверх
Guedda
Дата 30.3.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А без убирания верхушки никак?
Должно же быть...


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 30.3.2006, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



А вот так:

Код

procedure TForm1.FormCreate(Sender: TObject); 
var 
  l: DWORD; 
begin 
  l := GetWindowLong(Self.Handle, GWL_STYLE); 
  l := l and not (WS_MINIMIZEBOX); 
  l := l and not (WS_MAXIMIZEBOX); 
  l := SetWindowLong(Self.Handle, GWL_STYLE, l); 
end;  



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Guedda
Дата 30.3.2006, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Мне кнопка минимизации нужна.
Но если я убираю строку:
Код

l := l and not (WS_MINIMIZEBOX); 

то кнопка максимизации остается, просто у нее Enabled := true/
Соответственно, этот метод не подходит.
Может еще какие нибудь соображения есть?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 30.3.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Можно спрятать все кнопки:

Код

procedure TForm1.FormCreate(Sender: TObject);
var
  Style: Longint;
begin
  Style := GetWindowLong(Handle, GWL_STYLE);
  SetWindowLong(Handle, GWL_STYLE, Style and not WS_SYSMENU);
end;



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Guedda
Дата 30.3.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Млин. Мне необходимо только Maximize убрать. Мне очень нужны кнопки закрытия и минимизации.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 30.3.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



А что, если поставить свойство формы BorderStyle:=bsDialog, а затем нарисовать ещё одну кнопку?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Alexeis
Дата 30.3.2006, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Guedda, Советую остановиться на исходном варианте.
Форма сделанная на api не позволяет таких вольностей - я смотрел описание стилей так все действия которые можно произвести с заголовком ограничиваются стандартными(теми которые устанавливаются Form1.BorderIcons)
Добавлено @ 15:27
former, к сожалению в XP и в 2000 винде например системные кнопки выглядят по разному. Если сделать в стиле XP под 2000 будет ерунда(и наоборот)


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
former
Дата 30.3.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Знаю, на на неё можно попробовать наложить скин.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Alexeis
Дата 30.3.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



former, попросту определять версию windows и рисовать ту или иную кнопку. Можно обойтись и без скина. TImage - лучшая в мире кнопка smile


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Guedda
Дата 30.3.2006, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Ужастно... Но я видел программу, которая в классическом стиле шапк4а одна, а в модерновском - другая... Хотя врядли там какие то навороты есть. Программа бухгалтерская...
По любому значит как то можно.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 30.3.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



alexeis1, TImage, по сути дела - и есть простейший скин и кнопка, в данном случае.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Yanis
Дата 30.3.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Код

  RemoveMenu(GetSystemMenu(Handle, False), SC_MAXIMIZE, MF_BYCOMMAND);


P. S. Но кнопка отображаться всё равно будет smile


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 31.3.2006, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

Репутация: 28
Всего: 89



Цитата(alexeis1 @ 30.3.2006, 16:02 Найти цитируемый пост)
former, попросту определять версию windows и рисовать ту или иную кнопку

Мда. А может еще и стиль ХР определять заодно?

Цитата(former @ 30.3.2006, 15:29 Найти цитируемый пост)
на на неё можно попробовать наложить скин.

Ну тогда придется приложению быть одинаковым хоть в ХР хоть в 95. Только если на это согласен Guedda.

Вывод: либо скин, либо отказаться от бордера и самому сделать простенькую шапку.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Guedda
Дата 31.3.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Эх... Значит по другому никак нельзя.
Но, пройдем мысленно по логике программ. При создании шапки генерируются какие либо сообщения. Ведь так? А если отлавливать все эти сообщения, и подставлять свои? Или я что то недопонимаю? И при создании кнопки максимизации просто пропускать это сообщение, и генерить следующее (то, которое рисует кнопку минимизации) с параметрами расположения кнопки максимизации. Может этот способ подойдет?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Fin
Дата 31.3.2006, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


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

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



Вся работа с неклиентской частью окна осушествляется через сообшения WM_NC*. Кнопочки помоему принадлежат Caption окна.


--------------------
Пролетал мимо.
PM MAIL   Вверх
Sunvas
Дата 1.4.2006, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

Репутация: 28
Всего: 89



Вся проблемка в том, что кнопки и голубая полоса (шапка) неотделимы друг от друга - я проверял. А при перерисовке кнопки (когда мы ее нажали) перерисовуется вся шапка только очень быстро.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Guedda
Дата 1.4.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Так что же делать? Что вы там говорили про скины? Можно ли как нибудь по другому, без скинов?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 1.4.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Я так понял, что минимизация и максимизация связаны неразрывно. Так что, скрывая одну, нужно скрыть другую.
Добавлено @ 09:50
К тому же, в системном меню (левый вехний угол), тогда тоже нужно убивать соответствующие пункты.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Guedda
Дата 1.4.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(former @ 1.4.2006, 10:47 Найти цитируемый пост)
Так что, скрывая одну, нужно скрыть другую.

Из этого можно сделать следующий вывод:
- скрываем минимизацию и максимизацию и рисуем новую кнопку минимизации... Где то я уже видел код для создания новой кнопки.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Sunvas
Дата 1.4.2006, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

Репутация: 28
Всего: 89



Цитата(Guedda @ 1.4.2006, 08:53 Найти цитируемый пост)
Можно ли как нибудь по другому, без скинов?

Только самому прорисовать всю полосу бордера. Я когда-то страдал такой фигней, но так и не закончил - дело уж очень муторное.


Цитата(Guedda @ 1.4.2006, 10:38 Найти цитируемый пост)
Где то я уже видел код для создания новой кнопки.

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


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Guedda
Дата 2.4.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



А при чем тут версия Винды? Там все стандартные API-функции написаны. Вот. Сейчас парюсь над этим... Как доделаю, выложу код.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
former
Дата 2.4.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 5
Всего: 17



Может быть можно как нибудь написать кнопку, чтобы она наследовала стиль оформления?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Guedda
Дата 2.4.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(former @ 2.4.2006, 16:03 Найти цитируемый пост)
кнопку, чтобы она наследовала стиль оформления?

Я этим сейчас и занимаюсь. Потерпите smile


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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