Главная страница
    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.05 c
1-98115
lovres
2002-09-20 10:02
2002.09.30
Вопрос по RadioGroup


3-97967
Ваня
2002-09-09 08:54
2002.09.30
dbXpress Params


1-98068
Лана Розанова
2002-09-19 08:14
2002.09.30
Handle


4-98400
Ребенок Кирилл
2002-08-15 04:39
2002.09.30
нужно узнать HWND кнопки, edit, Memo и т.д


1-98083
Dmitriy Polskoy
2002-09-19 17:34
2002.09.30
Куда пропадает ключ?





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