Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

 FullRgn := CreateRectRgn(0, 0, Width, Height);

 X := Margin;

 Y := Height - ClientHeight - Margin;

 ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);

 CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);

 for A := 0 to ControlCount - 1 do begin

AControl := Controls[A];

if (AControl is TWinControl) or (AControl is TGraphicControl) then

with AControl do begin

if Visible then begin

CtlX := X + Left;

CtlY := Y + Top;

CtlRgn := CreateRectRgn(CtlX, CtlY, CtlX + Width, CtlY + Height);

CombineRgn(FullRgn, FullRgn, CtlRgn, RGN_OR);

end;

end;

 end;

 SetWindowRgn(Handle, FullRgn, TRUE);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

 DeleteObject(ClientRgn);DeleteObject(FullRgn);

 DeleteObject(CtlRgn);

end;

procedure TForm1.DoVisible;

begin

 FullRgn := CreateRectRgn(0, 0, Width, Height);

 CombineRgn(FullRgn, FullRgn, FullRgn, RGN_COPY);

 SetWindowRgn(Handle, FullRgn, TRUE);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 DoInvisible;

end;

Каким

образом можно изменить системное меню формы?

Nomadic советует:

Hе знаю как насчет акселераторов,надо поискать, а вот добавить пункт меню(Item) — пожалуйста

type TMyForm=class(TForm)

 procedure wmSysCommand(var Message:TMessage); message WM_SYSCOMMAND;

end;

const

 ID_ABOUT = WM_USER+1;

 ID_CALENDAR=WM_USER+2;

 ID_EDIT = WM_USER+3;

 ID_ANALIS = WM_USER+4;

implementation

procedure TMyForm.wmSysCommand;

begin

 case Message.wParam of

 ID_CALENDAR:DatBitBtnClick(Self);

 ID_EDIT :EditBitBtnClick(Self);

 ID_ANALIS:AnalisButtonClick(Self);

 end;

 inherited;

end;

procedure TMyForm.FormCreate(Sender: TObject);

var SysMenu:THandle;

begin

 SysMenu:=GetSystemMenu(Handle,False);

 InsertMenu(SysMenu, Word(-1), MF_SEPARATOR, ID_ABOUT, '');

 InsertMenu(SysMenu, Word(-1), MF_BYPOSITION, ID_Calendar, 'Calendar');

 InsertMenu(SysMenu, Word(-1), MF_BYPOSITION, ID_Analis, 'Analis');

 InsertMenu(SysMenu, Word(-1), MF_BYPOSITION, ID_Edit, 'Edit');

end;

Как

сделать MDI-приложение, в котором способны сливаться не только меню дочернего и главного окна, но и полосы инструментов?

Nomadic советует:

Вариант 1. CoolBar.

procedure TMainForm.SetBands(AControls: array of TWinControl;ABreaks: array of boolean);

var i: integer;

begin

 with CoolBar do begin

for i:=0 to High(AControls) do begin

if Bands.Count=succ(i) then TCoolBand.Create(Bands);

with Bands[succ(i)] do begin

if Assigned(Control) then Control.Hide;

MinHeight:=AControls[i].Height;

Break:=ABreaks[i];

Control:=AControls[i];

Control.Show;

Visible:=true;

end

end;

for i:=High(AControls)+2 to pred(Bands.Count) do Bands[i].Free

 end

end;

и

procedure TMsgForm.FormActivate(Sender: TObject);

Поделиться:
Популярные книги

Свадьба по приказу, или Моя непокорная княжна

Чернованова Валерия Михайловна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Свадьба по приказу, или Моя непокорная княжна

Сборник коротких эротических рассказов

Коллектив авторов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Сборник коротких эротических рассказов

Отец моего жениха

Салах Алайна
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Отец моего жениха

Вадбольский

Никитин Юрий Александрович
1. Вадбольский
Фантастика:
попаданцы
5.00
рейтинг книги
Вадбольский

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

В зоне особого внимания

Иванов Дмитрий
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
В зоне особого внимания

Таня Гроттер и магический контрабас

Емец Дмитрий Александрович
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Таня Гроттер и магический контрабас

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Кодекс Крови. Книга ХI

Борзых М.
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХI

Третий

INDIGO
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий

Возвышение Меркурия. Книга 16

Кронос Александр
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 16

Идеальный мир для Лекаря 9

Сапфир Олег
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Идеальный мир для Лекаря 9

Потусторонний. Книга 1

Погуляй Юрий Александрович
1. Господин Артемьев
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Потусторонний. Книга 1