![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Проблема с видом формы |
|
Delphi - [решено] Проблема с видом формы
|
Storm Spirit Сообщения: 467 |
В общем, нужно сделать форму вот такого вида:
Перепробовал разные варианты, похожий результат даёт лишь это: BorderStyle = bsNone; Однако, при этом размер самой формы можно менять (появляются стрелочки при наведение на края). Как сделать так, чтобы размер формы при этом нельзя было менять? |
|
Отправлено: 20:19, 22-05-2011 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата Malfatto:
В примере решены вопросы которые вы ставили (отсутствие Caption, отсутствие резинового контура, отсутствие возможности изменять размер и изменение вида курсора). Просто, у вас большое желание видеть скругленные края - воспользуйтесь API функцией CreateRoundRectRgn. Добавьте возможность перетаскивать форму за поле и т.д. И оформите интерфейс как вам нужно. |
|
------- Отправлено: 17:32, 23-05-2011 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Storm Spirit Сообщения: 467
|
Профиль | Отправить PM | Цитировать opel431, наверное, это моя вина, что я недостаточно ясно высказал то, что мне нужно.
в скриншоте в 1 посте показано, как должна выглядеть форма. такого вида можно добиться только на Windows 7 и Vista, на XP в любом случае такого эффекта не получить. то, чего мне нужно было, я почти добился. а именно, с помощью кода из первого поста я получил форму вот такого вида: ![]() также я запретил изменение размера окна (кстати, ваше решение с WM_SYSCOMMAND оказалось более рационално, использую сейчас его). единственное, что сбивает с толку, так это курсор, который меняется на "растягивающий" при наведение на края формы. собственно, в этом и состоял вопрос. как убрать изменение курсора, ну или найти другой способ изменить стиль формы, чтобы она была как на скриншоте из первого поста. |
Последний раз редактировалось Malfatto, 23-05-2011 в 18:55. Причина: перепутал теги Отправлено: 18:55, 23-05-2011 | #22 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата Malfatto:
private { Private declarations } procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; public { Public declarations } procedure CreateParams(var Params: TCreateParams); override; end; // запретить Caption procedure TForm1.CreateParams(var Params: TCreateParams); begin inherited Createparams(Params); with Params do Style := (Style or WS_POPUP) and not WS_DLGFRAME; end; // запретить изменение размера procedure TForm1.WMSysCommand(var Msg: TWMSysCommand); begin if ((Msg.CmdType and $FFF0) = SC_SIZE) then begin Msg.Result := 0; Exit; end; inherited; end; //Форму возможно придется "перемещать", но как? // например при нажатии на панели) procedure TForm1.Panel4MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const SC_DragMove = $F012; begin ReleaseCapture; Form1.Perform(WM_SysCommand, SC_DragMove, 0); end; Дерзайте! |
|
------- Последний раз редактировалось opel431, 23-05-2011 в 19:17. Отправлено: 19:03, 23-05-2011 | #23 |
Storm Spirit Сообщения: 467
|
Профиль | Отправить PM | Цитировать opel431, я ведь уже говорил, что при если использовать
то при этом Цитата Malfatto:
|
|
Отправлено: 19:25, 23-05-2011 | #24 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата Malfatto:
|
|
------- Отправлено: 19:35, 23-05-2011 | #25 |
Storm Spirit Сообщения: 467
|
Профиль | Отправить PM | Цитировать opel431, я ещё раз говорю, что это даёт совершенно не тот результат. зачем изобретать велосипед, да ещё и с квадратными колёсами?
p.s. опять Вы, видимо, не поняли что мне нужно... и я уже просто не знаю, как я могу разъяснить то, что мне нужно, ещё более грамотно ![]() |
Отправлено: 19:39, 23-05-2011 | #26 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата Malfatto:
![]() Те же свойства (что в предыдущем посте) есть и у формы, стиль и размер! Подробно: Форма+Панель Свойства формы: BorderWidth=4 Свойства панели (Без этого нет эффекта) Align=alClient Bevellnner=bvNone BevelOuter=bvLowered Т.е вариации "стиля" зависят от заданных свойств. |
|
------- Последний раз редактировалось opel431, 23-05-2011 в 19:53. Отправлено: 19:42, 23-05-2011 | #27 |
Storm Spirit Сообщения: 467
|
Профиль | Отправить PM | Цитировать opel431, всё равно результат не тот.
|
Отправлено: 19:55, 23-05-2011 | #28 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата Malfatto:
WS_THICKFRAME - Создание окна с толстой рамкой. Рамка используется для изменения размеров окна. |
|
------- Отправлено: 20:02, 23-05-2011 | #29 |
Storm Spirit Сообщения: 467
|
Профиль | Отправить PM | Цитировать opel431, собственно, только с помощью WS_THICKFRAME и получается сделать толстую рамку, как на скриншоте. потому я и создал эту тему, чтобы мне подсказали аналог, или вообще как можно сделать иначе.
p.s. вот здесь, например, показано решение на Visual C#. как провернуть подобное на делфи - в этом и вопрос. |
Отправлено: 20:06, 23-05-2011 | #30 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Проблема с видом значков | Dorian2222 | Microsoft Windows Vista | 0 | 30-06-2010 23:00 | |
[решено] FileOpenDialog с заданым видом отображения файлов | cra5h_ | AutoIt | 2 | 01-02-2010 17:45 | |
Интерфейс - Пожалуйста помогите с видом папок. | Areso | Microsoft Windows 2000/XP | 1 | 09-09-2009 18:51 | |
проблемма с видом папки.... | Just | Microsoft Windows 2000/XP | 0 | 06-02-2006 14:08 | |
Проблема с отправкой формы по E-mail | rhsk | Вебмастеру | 5 | 09-10-2005 23:37 |
|