Читаем Советы по Delphi. Версия 1.4.3 от 1.1.2001 полностью

 RedrawWindow(hwnd, nil, 0, DW_FRAME + RDW_INVALIDATE + RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);

 if (erase) then Windows.InvalidateRect(hwnd, nil, True);

end;

– Jeff Johnson 

Минимизация модального окна

Мне нужно открыть из моей формы модальное окно, т.е. приостановить работу в моей форме до обработки этого модального окна. Но при этом я теряю возможность убрать (минимизировать) мою форму

Nomadic советует:

function TMyForm.Execute: TModalResult;

begin

 Show;

 try

  SendMessage(Handle, CM_ACTIVATE, 0, 0);

  ModalResult := 0;

  repeat

   Application.HandleMessage;

   if Application.Terminated then ModalResult := mrCancel;

   if ModalResult = mrCancel then CloseModal;

  until ModalResult  <> 0;

  Hide;

  Result := ModalResult;

  SendMessage(Handle, CM_DEACTIVATE, 0, 0);

 finally

  Hide;

 end;

end;

Конечно, в TMyForm должно быть FormStyle := fsStayOnTop;

Прозрачная форма

Dmitry V. Koreyba советует:

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

var FullRgn, ClientRgn, CtlRgn : THandle;


procedure TForm1.DoInvisible;

var

 AControl : TControl;

 A, Margin, X, Y, CtlX, CtlY : Integer;

begin

 Margin := (Width - ClientWidth) div 2;

 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, '');

Перейти на страницу:

Похожие книги

Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript
Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript

Данная книга посвящена программированию игр с помощью ActionScript. Здесь вы найдете подробные указания, необходимые для создания самых разных игр – аркад, головоломок, загадок и даже игровых автоматов. В тексте приведены исходные коды программ и детальные, доступно изложенные инструкции. Базовые принципы программирования ActionScript рассматриваются на примере игр, однако вы без труда сможете применить полученные знания и для разработки неигровых проектов, таких как Web-дизайн и реклама. Рекомендации Гэри Розенцвейга помогут вам не только придумывать занимательные игры и размещать их на Web-сайте, но и оптимизировать скорость их работы, а также защищать свои творения от несанкционированного копирования. Представленный в книге код несложно изменить для использования в других программах.Книга предназначена для широкого круга читателей – создателей анимационных роликов, художников-оформителей, программистов и разработчиков Web-сайтов. Издание может также выступать в качестве практического пособия по изучению ActionScript.

Гэри Розенцвейг

Программирование, программы, базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT