| 
| 
 | Вопрос # 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
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |