Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

Какой компонент выбрать для создания окна "Настройки"   Найти похожие ветки 

 
leonidus   (2004-11-29 15:02) [0]

Вопрос в следующем, надо сделать окно с настройками программы, оно состоит из двух частей, левой где лежит обычный TreeView, и при выборе какого-то узла из него в правой части отображается панель с настройками данной группы. Раньше когда групп было четыре я просто создавал 4 TPanel и в процессе работы программы одну панель делал visible:=true, а остальные false, но во-первых это криво, во вторых очень не удобно на этапе конструирования, т.к. что бы отредактировать контрол на какой-то панели эту панель надо вытащить из под других и сделать ее "поверх всех". А сейчас панелей штук 8, следовательно надо менять технологую. PageControl и TabControl не подходят. Подскажите у кого какие идеи есть.


 
Юрий Зотов ©   (2004-11-29 16:04) [1]

PageControl. Закладки спрятать. Удобно, просто и не криво.


 
jack128 ©   (2004-11-29 18:12) [2]

Юрий Зотов ©   (29.11.04 16:04) [1]
> Удобно, просто и не криво, но жрет память

Мне больше нравится такой вариант(код взят из демки к VirtualTreeView и немного переделан):

//
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);

var
 NewDemoClass: TFormClass;

begin
 if not Assigned(Node) then Exit;
 case Integer(Node.Data) of
   0:
     NewDemoClass := TSpeedForm;
   1:
     NewDemoClass := TGeneralForm;
   2:
     NewDemoClass := TPropertiesForm;
   3:
     NewDemoClass := TVisibilityForm;
   5:
     NewDemoClass := TGridForm;
   6:
     NewDemoClass := TDrawTreeForm;
   7:
     NewDemoClass := TAlignForm;
   8:
     NewDemoClass := TWindowsXPForm;
   9:
     NewDemoClass := TNodeForm;
   10:
     NewDemoClass := THeaderOwnerDrawForm;
 else
   NewDemoClass := nil;
 end;

 FreeAndNil(DemoForm); // DemoForm - ссылка на текущую форму демки (в твоем случае - этот будет форма настроек)
 if Assigned(NewDemoClass) then
 begin
   DemoForm := NewDemoClass.Create(Self);
   DemoForm.Hide;
   DemoForm.BorderStyle := bsNone;
   DemoForm.Parent := ContainerPanel; // ContainerPanel - это просто пустая панель
   DemoForm.Align := alClient;
   DemoForm.Visible := True;
 end;
end;


 
leonidus   (2004-12-01 13:47) [3]

>Юрий а как можно спрятази закладки в run-time ?


 
leonidus   (2004-12-01 13:48) [4]

т.е. как спрятать закладки, я хотел спросить?


 
leonidus   (2004-12-01 15:13) [5]

все понял, всем спасибо


 
alles ©   (2004-12-01 15:30) [6]

А почему не сделать как в Опрре? В левой стороне ListBox а в правом Panel или PageControl.


 
leonidus   (2004-12-02 08:10) [7]

Можно и ListBox, это не принципиально важно было что бы в правой части были легко управляемые панели. Я воспользовался советом Юрия Зотова, большое спасибо ему и всем ответившим.


 
TButton ©   (2004-12-02 08:23) [8]

а мне дуже нравится
TNoteBook
из закладки Win 3.1
дуже гарная штука


 
leonidus   (2004-12-03 10:39) [9]

:)



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.473 c
3-1100471124
AUS_r4nd0m
2004-11-15 01:25
2004.12.19
Удаление текущей записи


1-1102197902
CyberSpy2
2004-12-05 01:05
2004.12.19
Вставка слова


14-1101883869
GanibalLector
2004-12-01 09:51
2004.12.19
Расчет потребности в оборудовании


1-1102096504
APXi
2004-12-03 20:55
2004.12.19
Проверка возможности создания объекта в конструкторе


1-1102068327
brig
2004-12-03 13:05
2004.12.19
Скрытие колонок и столбцов StringGrid