Форум: "Начинающим";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
ВнизTPageControl, TPanel... Найти похожие ветки
← →
asm_viator © (2007-10-10 20:44) [0]Здравствуйте все!!!
Есть такая проблема: у заказчика разрешение монитора жалкое (~600 x ~800). Поэтому мне надо кое-что учесть (см. далее).
Мне нужно, чтобы можно было переключаться между двумя режимами:
1) две панельки со сплиттером меж ними
2) TPageControl с двумя страницами
Находиться можно только в одном из режимов, то есть видны только панели или виден только TPageControl. При этом мне надо, чтобы все контролы, которые были в первой панели, оказались в первой странице TPageControl, а которые были во второй панели - во второй странице.
А теперь внимание вопрос: как это осуществить?
← →
Правильный Вася (2007-10-10 20:59) [1]поменять свойство Parent
?
← →
asm_viator © (2007-10-10 21:09) [2]
> поменять свойство Parent
> ?
А что? Это идея! Пробую...
← →
asm_viator © (2007-10-10 21:35) [3]Ага, понял! Надо сделать TNotebook (Align=Client), сделать ему две страницы, в одной - панели, в др. - TPageControl (кол-во страниц - два).
потом меняем TNotebook.PageIndex, меняем парент у панелек на TPageControl.Pages[n], и готово!
Но...
В TPageControl панели не на всю страницу получаются, а такими, какими были в первом TNotebook.PageIndex
← →
Ping (2007-10-10 22:04) [4]Сделать базовую форму, в которой прописать всю логику представления. И породить от нее две другие формы, в которых разместить контролы так, как надо по условиям. И когда клиент захочет третий вариант, сделать третью форму, разместив на ней контролы в третьем виде.
← →
Правильный Вася (2007-10-10 22:35) [5]
> Ping (10.10.07 22:04) [4]
это называется фрейм TFrame
← →
Ping (2007-10-10 22:36) [6]это называется фрейм TFrame
Не путай божий дар с яичницей...
← →
asm_viator © (2007-10-11 09:47) [7]Всем спасибо!
Домой приду - попробую!
To Ping
Объясни поподробнее, плиз!
← →
Правильный Вася (2007-10-11 10:48) [8]
> Не путай божий дар с яичницей...
божий дар в твоем описании представляет собой типичную яичницу
← →
app © (2007-10-11 11:55) [9]> Правильный Вася (11.10.2007 10:48:08) [8]
В Потрепаться
← →
Ping (2007-10-11 13:10) [10]
Базовая форма:
На ней кнопка Button1 ("Посчитать"). Других контролов нет. Вообще, по идее, контролов вообще не надо, только свойства и методы.
unit BaseFormUnit;
{...}
type
TBaseForm = class(TForm)
procedure Button1Click(Sender: TObject);
private
FA: integer;
FB: integer;
FC: integer;
procedure DoControlData;
procedure DoCalculate;
protected
procedure BeforeAction; virtual;
procedure AfterAction; virtual;
public
property A: integer read FA write FA;
property B: integer read FB write FB;
property C: integer read FC write FC;
end;
{...}
procedure TBaseForm.AfterAction;
begin
end;
procedure TBaseForm.BeforeAction;
begin
end;
procedure TBaseForm.Button1Click(Sender: TObject);
begin
BeforeAction;
DoControlData;
DoCalculate;
AfterAction;
end;
procedure TBaseForm.DoCalculate;
begin
FC := FA div FB;
end;
procedure TBaseForm.DoControlData;
begin
if (FB = 0) then
raise Exception.Create("B should not be equial to 0");
end;
Можешь разместить форму в репозиторий.
Порожденная форма:
Размещаешь три поля ввода, Edit1, Edit2, Edit3. К ним - подписи, картиночки, сплиттеры и все, что твоей душе угодно.unit InheritedFormUnit;
uses
BaseFormUnit;
type
TInheritedForm = class(TBaseForm)
protected
procedure BeforeAction; override;
procedure AfterAction; override;
end;
{...}
procedure TInheritedForm.BeforeAction;
begin
A := StrToInt(Edit1.Text);
B := StrToInt(Edit2.Text);
end;
procedure TInheritedForm.AfterAction;
begin
Edit3.Text := IntToStr(C);
end;
Как-то так...
← →
asm_viator © (2007-10-11 15:24) [11]To Ping
Спасибо за ответ! Идею понял!
У меня интерфейс проги немного другой: там-сям разбросаны TToolBar"ы, TMainMenu и две панели (со сплиттером меж ними):
1) Panel1 с чем-то вроде информации о текущем выбранном объекте (Align=Left)
2) Panel2 (Align=Client), где и требуется разместить либо две панели (Panel3 & Panel4), либо один PageControl1.
Переключение между режимами будет посредством TToolBar
Пробовал делать как в [3], но есть неразрешенная пока проблема (в том же посте)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c