Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Вниз

Фреймы   Найти похожие ветки 

 
Катерина   (2002-04-06 15:52) [0]

У меня есть несколько отлаженных фреймов. Я хочу на главную форму в одном и том же месте выводить то один, то другой фрейм в зависимости от того или иного события (например, нажатия различных кнопок). Если я добавляю фрейм на этапе создания программы в форму, то я могу описать только какой-то один фрейм, поэтому мне надо запрограммировать создание (TFrame.create) и добавление (?) фрейма в форму, но не получается. Как добавить компонент в форму на этапе выполнения?


 
ghost_by   (2002-04-06 16:46) [1]

Размести их все на форме и установи свойство Visible:=false;
Потом в нужное время видимому фрейме делаешь Visible:=false, а тому фрейму, который нужно показать - Visible:=true.

Если фреймов очень много - можно их создавать в рантайме.


 
Катерина   (2002-04-06 16:52) [2]

Вот-вот, про RunTime, пожалуйста, поподробнее. Пожалуйста!


 
ghost_by   (2002-04-06 22:05) [3]

Вот-вот, про RunTime, пожалуйста, поподробнее. Пожалуйста! - Создаешь все свои фреймы. Для этого, если много фрэймов, можно их всех запихнуть в массив к примеру, или объявить по переменной на каждый фрейм, потом используешь все сие счастье, а затем удаляешь.

1. где-нибудь (при открытии окна) - создаешь фреймы:
f1:=TFrame1.Create(self);
f2:=TFrame1.Create(self);
f3:=TFrame1.Create(self);

2. где-нибудь (при зазрытии окна) - удаляешь фреймы:
f1.Free;
f2.Free;
f3.Free;

3. когда надо показать фрейм - InsertControl("НУЖНЫЙ ФРЕЙМ") - вставляет нужный фрейм. Если надо конкретные координаты - f1.Left:=X;f1.Top:=Y.

4. когда надо спрятать - RemoveControl("РАНЕЕ ВСТАВЛЕННЫЙ ФРЕЙМ").

Когдато делал что-то похожее. У меня было дерево, и в зависимости от уровня выбранного элемента в дереве я показывал тот или иной фрейм. У фреймов я ставил свойство Alligh=client - тогда фрейм занимает все свободное место на форме.
Еще возможен вариант, если много фреймов - создавать не сразу все, а по надобности и удалять все при закрытии окна - вроде побыстрее будет.


 
Катерина   (2002-04-08 12:07) [4]

Я именно так и делала, как ты написал, до того, как обратилась за помощью. Но, извини за дурацкий вопрос, где указывать какой именно фрейм загружается.

У меня есть, например, фрейм с формой FRAME_Format1to2 в unit Format1to2. В модуле главной формы unit REFORM я описываю пременную

var Fr : TFrame;

Создаю фрейм

Fr := TFrame.Create(owner);

указываю Parent, добавляю в компоненты главной формы

.AddComp...

описываю размеры, положение, визуализацию и пр. А дальше, как же туда запихать именно фрейм из модуля Format1to2?






 
[MC]NuClon   (2002-04-08 12:54) [5]

Люди, используйте NoteBook. Хорошая вешь, просто и понятно


 
ghost_by   (2002-04-08 19:28) [6]

Если я правильно тебя понял - ты неверно создаешь фрейм, ты создаешь фрейм TFrame, а нужно FRAME_Format1to2.

То есть - в файле Format1to2 у тебя должно быть что-то вида - TFRAME_Format1to2=class(TFrame), вот и нужно создавать именно этот фрейм:

var my_frame:TFRAME_Format1to2;

...
my_frame:=TFRAME_Format1to2.Create;
...


 
Катерина   (2002-04-09 10:00) [7]

Спасибо! Теперь я поняла свою ошибку.



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

Форум: "Основная";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
3-69700
KAA
2002-03-29 12:49
2002.04.22
2000 Заполнить столбец таблицы


3-69748
AndreyP
2002-04-02 14:38
2002.04.22
Добавление вычисляемого поля


1-69921
OrlovSergei
2002-04-09 11:32
2002.04.22
Как сохранить нарисованное?


1-69857
Катерина
2002-04-06 15:52
2002.04.22
Фреймы


7-70047
Tsatur Soft
2002-01-24 23:05
2002.04.22
Шрифт





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский