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

Вниз

помогите с интерфейсом проги   Найти похожие ветки 

 
denis24   (2003-10-13 15:49) [0]

Слева treeview .Справа надо разная куча контролов при выборе веток.Как это сделать сто бы при выборе разных веток одни контролы появлялись а другие исчезали?


 
Skier ©   (2003-10-13 15:52) [1]

TPageControl ?


 
Романов Р.В. ©   (2003-10-13 15:53) [2]

В событии TreeView OnChange удаляешь одни контролы и создаешь другие


 
pasha_golub ©   (2003-10-13 16:03) [3]

2denis24
А сколько разных типов веток предусмотрено?


 
ZEE ©   (2003-10-13 16:19) [4]

<одни контролы>.Show
<другие>.Hide
:)


 
MHO   (2003-10-13 16:23) [5]

TFrame.Show|Hide


 
Zhouck ©   (2003-10-13 16:54) [6]

>>TFrame.Show|Hide
Не так.

type
TFrameClass = class of TFrame;

MainFrame: TFrame;

procedure TFormMain.ShowFrame(FrameClass: TClass;ParentPanel:TWinControl);
begin
//запретить прорисовку контейнера фреймов
LockWindowUpdate(ParentPanel.Handle);
//если фрейм не пуст, очистить его
if(MainFrame<>nil) then
MainFrame.Free();
//создать фрейм по его типу
MainFrame:=TFrameClass(FindClass(FrameClass.ClassName)).Create(FormMain);
MainFrame.Parent:=ParentPanel;
MainFrame.Align:=alClient;
//разрешить прорисовку контейнера фреймов
LockWindowUpdate(0);
end;

И далее

ShowFrame(TFrame1,Panel1);/ShowFrame(TFrame2,Panel1); etc


 
MHO   (2003-10-13 18:04) [7]

Какая разница? Хочешь - создавай, хочешь - прячь.

Только название процедурки-то должно быть CreateFrame, так оно для людёв понятнее.
Кроме того:
1. TFrameClass - кто такой? class of TFrame?
2. А где RegisterClass(%FrameClass)? - ведь ругаться будэ.
3. Достаточно прямого приведения MainFrame := TFrame(TFormClass((FrameClass)).Create(FormMain)), не нужны нам FindClass"ы.


 
MHO   (2003-10-13 18:11) [8]

PS. А обращаться как TFrameXX(MainFrame).Button1.Caption := "Не очень-то удобно, не так ли?". Разумеется если они не потомки одного базового тфрейма.


 
Zhouck ©   (2003-10-13 18:39) [9]

>>TFrameClass - кто такой? class of TFrame?
Указано ясно
type
TFrameClass = class of TFrame;

Hide/Show это интересно, но если 15 Frames? Делать 14 hide, а 1 show? А так у нас один фрейм, который может принимать различные типы.
Обращаться просто
if MainFrame.ClassName="TFrame1" then
with MainFrame as TFrame1 do



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
1-74168
Yakudza
2003-10-10 14:33
2003.10.23
Поток и TFORM


14-74455
Tahion2
2003-09-21 08:57
2003.10.23
Посоветойте Label с возможностью выравн. по ширине


11-74108
Wm
2003-02-07 18:16
2003.10.23
BitBtn и XPманифест


1-74186
Joisy
2003-10-09 09:23
2003.10.23
Редактор pas файлов


3-74040
IBNovice
2003-10-03 11:27
2003.10.23
Связь таблиц