|
Вопрос # 522/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Во многих программах, например разных чатах, я видел следующее: нажимается какая-нибудь кнопка или строчка, открывается окно с каким-нибудь заголовком, в окне куча разных кнопок, полей и тд. А когда нажимается другая строчка - открывается другое окно, с другим заголовком, но с такими же кнопками, полями как в предыдущем окне. Насколько я понимаю, это дочерние окна (или как это называется). Но как их можно создавать так много? Объясните, пожалуйста, на каком-нибудь примере попроще.
 |
Вопрос задал: Качурин Антон Павлович (статус: Посетитель)
Вопрос отправлен: 24 апреля 2007, 04:42
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Большинство программ общения по локалкам и инету используют не MDI-интерфейс, а интерфейс на основе компонента TPageControl и его потомков. Например, BorgChat, Sechat, QIP, Miranda и пр.
Судя по описанию :) в твоём случае так оно и есть.
> Но как их можно создавать так много?
Все страницы на PageControl создаются только динамически (в RunTime). Пишется один или несколько классов-потомков TTabSheet (страницы TPageControl), потом в процессе работы программы они и создаются. Пример набросал тебе простенький, это класс страницы с Memo внутри.
Приложение: Переключить в обычный режим- unit uMyPage;
-
- interface
-
- uses ...;
-
- type
- TMyPage = class(TTabSheet)
- private
- FMemo: TMemo;
- function GetLines: TStrings;
- public
- constructor Create(AOwner: TComponent); override;
- property Lines: TStrings read GetLines;
- end;
-
- implementation
-
- constructor TMyPage.Create(AOwner: TComponent);
- begin
- inherited;
- FMemo:= TMemo.Create(Self);
- with FMemo do
- begin
- Parent:= Self;
- Left:= 1;
- Top:= 1;
- Align:= alClient;
- ....
- end;
- end;
-
- function TMyPage.GetLines: TStrings;
- begin
- Result:= FEdit.Lines;
- end;
-
- end.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 24 апреля 2007, 08:51
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|