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

Вниз

Как убрать Title у формы, но при этом оставить бордюр формы   Найти похожие ветки 

 
maxim2   (2002-09-18 12:26) [0]

Привет всем!
Как убрать Title у формы, но при этом оставить бордюр формы?
Может кто знает.


 
neg2001   (2002-09-18 13:02) [1]

Можно сделать так:
BorderStyle:=bsNone;
А на форму положить панель с Align:=alClient;
Вид такой же как и у формы с бордюром.


 
Yr2   (2002-09-18 13:03) [2]

Если я правильно понимаю твои термины "Title" и "бордюр", то просто сотри у формы свойство Caption.


 
alena.svt   (2002-09-18 14:55) [3]

SetWindowLong


 
alena.svt   (2002-09-18 15:07) [4]

Ладно избегу вчерашнего разговора о том как надо отвечать на вопросы.
В событии OnCreate у формы определите следующее.

procedure TForm1.FormCreate(Sender: TObject);
var
FSizeCaption: Integer;
begin
FSizeCaption := GetSystemMetrics(SM_CYCAPTION);
SetWindowLong(Form1.Handle, GWL_STYLE, GetWindowLong(Form1.Handle, GWL_Style) and not WS_Caption);
Form1.Height:=Form1.Height - FSizeCaption;
end;

При данном коде форма не должна иметь стиль(чтоб рамка была)
bsSingle или bsToolWindow остальные пожалуйста.


 
Song   (2002-09-18 15:38) [5]

Вообще можно убрать Caption формы, а по границам наложить TPanel или TBevel


 
Song   (2002-09-18 15:41) [6]

2alena.svt © (18.09.02 15:07)
См. мой последний ответ:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1032276741&n=0


 
alena.svt   (2002-09-18 16:06) [7]

Song © (18.09.02 15:41)
Увидала, завтра попробую но адрес был тот же.

maxim2 © (18.09.02 12:26)
Сделай себе компоненту на будущее и не майся больше.

unit MyRemoveCaption;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TMyRemoveCaption = class(TComponent)
private
FSizeCaption : Integer;
NActive : boolean;
FEnabled : boolean;
procedure SetActive(Value: Boolean);
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
constructor Create(AOwner:TComponent); override;
destructor Destroy; override;
procedure Add(HandleForm: TForm);
procedure Remove(HandleForm: TForm);
property Enabled: boolean read FEnabled write SetActive default false;

{ Published declarations }
end;

procedure Register;

implementation
Var
ParentForm: TForm;


{ TMyRemoveCaption }

procedure TMyRemoveCaption.Add(HandleForm: TForm);
begin
NActive:=False;
If Self.ComponentState = [csDestroying] Then exit;
SetWindowLong(HandleForm.Handle, GWL_STYLE, GetWindowLong(HandleForm.Handle, GWL_Style) + WS_Caption);
HandleForm.Height:=HandleForm.Height + FSizeCaption;
end;

constructor TMyRemoveCaption.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ParentForm := TForm(AOwner);
end;

destructor TMyRemoveCaption.Destroy;
begin
if NActive then Add(ParentForm);
inherited Destroy;

end;

procedure TMyRemoveCaption.Remove(HandleForm: TForm);
begin
NActive:=True;
FSizeCaption := GetSystemMetrics(SM_CYCAPTION);
SetWindowLong(HandleForm.Handle, GWL_STYLE, GetWindowLong(HandleForm.Handle, GWL_Style) and not WS_Caption);
HandleForm.Height:=HandleForm.Height - FSizeCaption;
end;

procedure TMyRemoveCaption.SetActive(Value: Boolean);
begin
if Value then begin
Remove(ParentForm);
FEnabled:=True;
end;
if not Value then begin
Add(ParentForm);
FEnabled:=False;
end;
end;

procedure Register;
begin
RegisterComponents("Samples", [TMyRemoveCaption]);
end;
end.




 
Kibitzer   (2002-09-18 20:22) [8]

Мне когда-то тоже понадобилась форма без заголовка но с рамкой. Вот вырезка из моего старого проекта:
TForm2 = class(TForm)
protected
procedure CreateParams( var Params: TCreateParams); override;
end;

...
procedure TForm2.CreateParams( var Params: TCreateParams);
begin
inherited;
Params.Style := Params.Style or WS_DLGFRAME {or WS_SIZEBOX};
end;

А у формы ставим BorderStyle в bsNone
Если же раскомментировать стиль WS_SIZEBOX, то размеры формы можно будет изменять мышкой.

По идее всё это должно настраиваться в инспекторе объектов, но таких свойств нету и это по моему неправильно. У борланда много кривых и недоделаных компонентов :(

Взять например свойство FormStyle у той же формы. Выходит что я могу сделать либо MDIForm, либо StayOnTop? Но это не так! Однажды мне понадобилась фома которая и MDI и Stay on top. Опять пришлось обратиться к CreateParams:
//FormStyle установим в fsMDIForm
procedure TForm1.CreateParams( var Params: TCreateParams);
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_TOPMOST;
end;

:(

Или понадобилось у TCheckBox и TRadioButton свойство WordWrap. Ведь они способны иметь это свойство. Достаточно (в том же CreateParams, например) сделать: Params.Style := Params.Style or $2000. Это Борландам трудно было сделать? Пришлось писать наследника... :(

Про DBGrid я лучше вообще промолчу... :-/


 
alena.svt   (2002-09-18 22:13) [9]

Ну что можно на это сказать
Зато многому научились и теперь можете попровлять то что борланд не сделал. А перекрывать методы да еще и с участием WinApi тоже приятно ведь можно гордо заявить что я действительно могу!
Ну а если б дядьки в борланде сделали все то зачем бы мы нужны были.



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

Форум: "Основная";
Текущий архив: 2002.09.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
14-98306
Карлсон
2002-09-03 20:39
2002.09.30
У кого какой модем?


14-98281
_andrew_
2002-09-01 07:51
2002.09.30
у кого есть библиотеки для работы с геометрией/вект. графикой?


1-98212
Wolverin
2002-09-18 18:06
2002.09.30
Иконка в TrayBar


14-98269
Esu
2002-09-03 13:57
2002.09.30
.NET forever ;)


7-98374
иван
2002-07-21 16:39
2002.09.30
Папка Windows





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский