Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-33346
fofa
2003-07-25 13:16
2003.08.11
Где взять лицензию на InterBase 6.0.1хххх (-)


1-33103
Zheks
2003-07-29 16:55
2003.08.11
Округление


4-33393
MySerge
2003-06-10 13:39
2003.08.11
Нужен серый цвет в стандартных элементах управления


14-33364
Empleado
2003-07-25 20:18
2003.08.11
Пятница-с ...


14-33345
HolACost
2003-07-25 07:05
2003.08.11
С++/ASM compilers/linkers - не по паскалю, но надо!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский