![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
форма
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 формы и в нем выставить нужные стили окна