Форум: "Основная";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];
Внизпомогите с интерфейсом проги Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.016 c