Как удалить верхнюю панель из изменяемого размера формы в Windows 10?
Я пытаюсь удалить строку заголовка формы, сохраняя при этом границу для изменения размера формы. Я установил BorderStyle
в bsNone
и переопределить CreateParams
процедура:
procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_BORDER or WS_THICKFRAME;
end;
Единственная проблема, с которой я сталкиваюсь, это белая полоса на верхнем краю формы (в победе 10):
Как я могу избавиться от этого белого бара?
4 ответа
Переход на API win займет много времени и может оказаться очень сложным. Если вы готовы пойти по этому пути, я настоятельно рекомендую это. Но на данный момент здесь есть быстрое решение вашей проблемы.
Используйте стили VCL, изменив стиль строки заголовка следующим образом
идти к Tools-> Bitmap Style Manager
и снова откройте стиль Windows 10 (так как вы хотите это в Windows 10)
Идти к Objects-> form->title
и измените высоту на 5.
в инспекторе объектов вашей IDE снимите флажок Границы иконки и установите заголовок ' '
,
Результатом будет форма с такой тонкой полосой заголовка, как граница.
Вы можете дополнительно изменить внешний вид строки заголовка, чтобы она выглядела в точности как границы.
и увидеть это Vcl.Forms.TFormStyleHook.PaintNC
точно знать, как это делается с помощью стиля Hooks.
В Delphi 11 и, возможно, более ранних версиях можно создать форму с изменяемым размером без строки заголовка, используя свойство формы CustomTitleBar :
Enabled=true
Height=0
ShowCaption=false
ShowIcon=false
SystemButtons=false
SystemColors=false
SystemHeight=false
Form.BorderStyle=bsSizeable
для пользователей firemonkey (fmx): вы можете сделать это с помощью стилей.