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

Type TMovablePanel = Class(TPanel)

Private

 Procedure wmNCHitTest(Var Message : TWMNCHitTest); message WM_NCHITTEST;

Protected

 Procedure MouseDown(Button : TMouseButton; Shift : TShiftState; X, Y : Integer); override;

End;


Procedure TMovablePanel.wmNCHitTest(Var Message : TWMNCHitTest);

Begin

 With Message, ScreenToClient(Pos) Do

  If (X < Width - 10) And (Y < Height - 10) Then

   Message.Result := HTCAPTION

  Else Message.Result := HTCLIENT;

End;


Procedure TMovablePanel.MouseDown(Button : TMouseButton; Shift : TShiftState; X, Y : Integer);

Begin

 If Button = mbLeft Then Begin

  ReleaseCapture;

  Perform(WM_SYSCOMMAND, SC_SIZE + HTBOTTOMRIGHT - 9, 0);

 End Else Inherited MouseDown(Button, SHift, X, Y);

End;

– Robert Wittig

Как работать с формой, куда динамически передаются страницы (PageControl) из форм-хранителей (с использованием наследования)?

Nomadic советует:

Кидаю проект-болванку, сделанную перед началом работы над основным -

unit Unit1; //базовая форма хранителя страницы

interface

uses ...

type TBPgFrm = class(TForm)

 Panel1: TPanel;

 PageControl1: TPageControl;

 TabSheet1: TTabSheet;

 Label1: TLabel;

public

 function PgInit: boolean; virtual;

 function PgValid: boolean; virtual;

end;


implementation


{$R *.DFM}


function TBPgFrm.PgInit: boolean;

begin

 result:= MessageDlg(Label1.Caption+': PgInit', mtConfirmation, mbOkCancel, 0)=mrOK;

end;


function TBPgFrm.PgValid: boolean;

begin

 result:= MessageDlg(Label1.Caption+': PgValid', mtConfirmation, mbOkCancel, 0)=mrOK;

end;

end.


unit Unit2; //главная форма проекта; содержит первую страницу

interface //и кнопки Cancel, Prev & Next/Finish.

uses ...

type TPagesDlg = class(TForm)

 Panel1: TPanel;

 Panel2: TPanel;

 PageControl1: TPageControl;

 TabSheet1: TTabSheet;

 Prev: TButton;

 CancelBtn: TButton;

 Next: TButton;

 Label1: TLabel;

 procedure CancelBtnClick(Sender: TObject);

 procedure FormDestroy(Sender: TObject);

 procedure NextClick(Sender: TObject);

 procedure PrevClick(Sender: TObject);

 privateFrms: TList;

 procedure AddForms;

end;


var PagesDlg: TPagesDlg;


implementation


uses Unit1, Unit3, Unit4, Unit5;


{$R *.DFM}


procedure TPagesDlg.AddForms; //размещение динамических страниц

var i: word;

begin

 Frms:= TList.Create;

 Frms.Add(TBPgFrm1.Create(Self));

 Frms.Add(TBPgFrm2.Create(Self));

 for i:= 0 to 1 do TBPgFrm(Frms[i]).TabSheet1.PageControl := PageControl1

end;


procedure TPagesDlg.CancelBtnClick(Sender: TObject);

begin

 Close;

end;


procedure TPagesDlg.FormDestroy(Sender: TObject);

var i: word;

begin

 for i:= Frms.Count-1 downto 0 do TBPgFrm(Frms[i]).Free;

 Frms.Free;

end;


procedure TPagesDlg.NextClick(Sender: TObject);

var

 i: word;

 vi: Boolean;

begin

 Next.Enabled:= false;

 if PageControl1.PageCount=1 then AddForms;

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

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

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