Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

форма


race1 ©   (2004-08-18 05:43:00) 

можно сделать что бы окно было без заголовка, но с изменяемыми размерами (fsNone делат форму не изменяемой в размерах). может, как-то хитро эту форму сделать?

иначе придётся пихать панели к всем сторонам формы, делать у них соответствующий курсор и изменять размеры формы через панели


Юрий Зотов   (2004-08-18 07:59:00) [1]

> race1   (18.08.04 07:27) [4]

Очень советую посмотреть справку API по функциям RegisterClass, RegisterClassEx, CreateWindow и CreateWindowEx, а также по структуре CREATESTRUCT. Кроме прочего, там описаны стили классов окон и самих окон, что они делают и на что влияют. Найдете немало интересного (в том числе, и для таких окон, как кнопки, комбобоксы и пр.).

Пояснение.

При создании окон VCL использует RegisterClassEx и CreateWindowEx. Переопределить стили на нужные можно как ДО создания окна, так и ПОСЛЕ его создания. До создания окна это делается замещением метода CreateParams (Params.WindowClass.Style - стили класса окна, Params.Style - стили окна, Params.ExStyle - расширенные стили окна), а после создания окна - вызовом SetClassLong (стили класса окна) и/или SetWindowLong (стили окна и расширенные стили окна). Кроме стилей, CreateParams, SetClassLong и SetWindowLong позволяют перепределить и некоторые другие параметры окна (иконку, кисть и пр.).


race1   (2004-08-18 07:27:00) [2]

спасибо всем! не думал что это так просто :)


Dyn`alt   (2004-08-18 07:19:00) [3]

Это тоже сработает:

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
 inherited CreateParams(Params);
 Params.Style := WS_POPUP or WS_THICKFRAME;
end;


Юрий Зотов   (2004-08-18 06:50:00) [4]

Выставляем BorderStyle = bsNone и замещаем CreateWnd:


type
 TForm1 = class(TForm)
 ...
 protected
   procedure CreateWnd; override;
 ...
 end;

procedure TForm1.CreateWnd;
begin
 inherited;
 SetWindowLong(Handle, GWL_STYLE,
   GetWindowLong(Handle, GWL_STYLE) or WS_THICKFRAME)
end;


Dyn`alt   (2004-08-18 06:40:00) [5]

Нужно переопределить метод CreateParams формы и в нем выставить нужные стили окна


Наверх

Титульная страница Поиск, карта сайта Написать письмо