Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.11;
Скачать: CL | DM;

Вниз

Caption   Найти похожие ветки 

 
Pauk   (2003-07-27 14:14) [0]

Как скрыть полоску вверху окна


 
Pauk   (2003-07-27 14:15) [1]

BorderStyle<>bsNone


 
XenonXX   (2003-07-28 04:09) [2]

Так ты просто уберешь Border, а можно убрать только полоску, а Border оставить, я сам не делал, у меня компонент есть, могу выслать.


 
Юрий Зотов ©   (2003-07-28 04:17) [3]

procedure TForm1.FormCreate(Sender: TObject); // событие OnCreate
begin
SetWindowLong(Handle, GWL_STYLE,
GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);
Height := Height + 1
end;


 
KSergey ©   (2003-07-28 08:40) [4]

TProgressIndicator = class(TForm)
...
public
procedure CreateParams (var Params: TCreateParams); override;
...
end;

........

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

Вообще-то в CreateParams наверное правильнее будет написать как у Юрий Зотов © (28.07.03 04:17)

Params.Style := Params.Style and not WS_CAPTION;

хотя это, конечно, зависит от необходимости.


 
Skier ©   (2003-07-28 08:46) [5]

>Юрий Зотов © (28.07.03 04:17)
А зачем Height := Height + 1 ?


 
Юрий Зотов ©   (2003-07-28 08:54) [6]

> Skier © (28.07.03 08:46)

Корректировка какого-то глючка. Без этого форма появляется с заголовком, который исчезает при первом же ресайзе. Возможно, это есть не во всех версиях Windows, но у меня есть.


 
KSergey ©   (2003-07-28 09:20) [7]

>Юрий Зотов © (28.07.03 08:54)

А может для исключения глючка стоит пользоваться специально для того предназначеным CreateParams? ;)


 
Юрий Зотов ©   (2003-07-28 11:10) [8]

> KSergey © (28.07.03 09:20)

Не поможет, потому что глюк совсем не в этом. Вероятнее всего, это глюк, конечно, не системы, а кода - надо более точно ставить стили. Либо не морочить себе голову, а просто "дернуть" форму - что я и сделал.

Вообще, выбор здесь довольно простой. Если нужно назначить стили ПРИ создании окна - то CreateParams, а если нужно изменить их уже ПОСЛЕ его создания - то SetWindowLong.

Однако же, бывают и нюансы. Рассмотрим Ваш пример:

Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER or WS_CLIPCHILDREN;

Естествено, он дает нужный эффект, но содержит не все нужные стили (например, нет WS_HSCROLL и WS_VSCROLL, а еще могут потребоваться WS_SYSMENU и другие). Значит, вряд ли можно быть уверенным, что такая форма будет нормально работать.

Поэтому, как Вы и сказали, правильнее было бы не ставить набор стилей жестко, а вызвать inherited и потом убрать ненужные и/или добавить нужные. Однако же, попробуйте написать в CreateParams то, о чем Вы и говорили:

inherited;
Params.Style := Params.Style and not WS_CAPTION

и будете удивлены. Тем более, что то же самое, но примененное уже ПОСЛЕ создания окна - работает.

Вот по причине подобных нюансов я и предпочитаю не рекомендовать CreateParams людям неискушенным - чтобы потом и сами не мучились, и форум не мучали. Да и не всегда возможно CreateParams использовать - например, если нужно изменить стиль контрола без написания потомка.


 
KSergey ©   (2003-07-28 11:41) [9]

>Юрий Зотов © (28.07.03 11:10)

Мне не ловко спорить, тем более, что тут действительно все зависит скорее от места, но высказаться бы хотелось.

Ну набор стилей - конечно по месту примерять надо. Я просто выдернул из текста как было (а там создание просто форма сообщения, так что никаких заморочек не нужно).

Но я никак не пойму чем я "и будете удивлены". Тем, что резльтат точно такой же? Ну тут собственно чему удивляться? ;)
Но я никак не могу понять о каких нюансах речь? О наборе стилей - но вроде обсудили, тут думать надо что тыкать ;)
А как пример изменения стилей в произвольный момент - это принимается ;) Но тот ли это случай в данном случае?


 
Pauk   (2003-07-28 12:24) [10]

SetWindowLong(Form1.Handle, GWL_STYLE, GetWindowLong(Handle,GWL_STYLE) and not WS_CAPTION);
Height := ClientHeight;


работает на ура


 
Юрий Зотов ©   (2003-07-28 14:40) [11]

> KSergey © (28.07.03 11:41)
> Но я никак не пойму чем я "и будете удивлены". Тем, что
> резльтат точно такой же? Ну тут собственно чему удивляться? ;)

Как раз совершенно обратный. Появляется просто обычная форма, как будто никаких CreateParams не замещалось и никакие флаги не менялись. Это и есть "странные нюансы".



 
Юрий Зотов ©   (2003-07-28 14:42) [12]

> Pauk (28.07.03 12:24)

А зачем Form1? Лишнее, и даже вредно.



Страницы: 1 вся ветка

Текущий архив: 2003.08.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
4-33410
sucer
2003-06-07 18:46
2003.08.11
Недать нарисоваться на экране


14-33347
Dmitriy O.
2003-07-25 12:26
2003.08.11
Человечество это раковая опухоль земли.


8-33228
Antipich
2003-04-17 14:24
2003.08.11
Печать


3-33044
tamara
2003-07-17 15:43
2003.08.11
КАК ВЫДЕЛИТЬ ЦВЕТОМ СТРОКИ DBGrid


1-33197
Егор
2003-07-29 06:04
2003.08.11
TActionMainMenuBar