![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с TFrame
Ksenom © (2006-02-10 09:29:00)Вот такая проблемка появилась. Мне необходимо на форме создавать и размещать Frames.
Я это делаю так.
….
type
TFr = record
Frame :TFrame;
St :Boolean;
end;
…..
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if Form1.SpeedButton1.Down
then begin //Добавление фрейма
if Form1.Fr.St then Form1.Fr.Frame.Free;
Form1.Fr.Frame:=TFrame1.Create(Form1.Panel3);
Form1.Panel3.InsertControl(Fr.Frame);
Form1.Fr.St:=true;
end
else begin //уничтожение фрейма
Form1.Fr.Frame.Free;
Form1.Fr.St:=false;
end;
end;
…..
По началу всё прекрасно, фреймы появляются и исчезают но тут возникла проблема. Стоит мне на фрейме разместить любой нестандартный элемент (компонент не входящий в стандартную поставку) и фреймы перестают отображаться. Они создаются и по свойствам вроде как должны быть видны на форме но их нет.
Если просто мышкой фрейм разместить на форме то он отображается нормально.
Как с этим бороться?
Alkid (2006-02-25 14:27:00) [1]Во-первых, форму нельзя разместить на другой форме как фрэйм.
Во-вторых я достаточно много работал с динамически размещаемыми на
форме фрэймами, содержжащими самые экзотические контролы. У меня всё
работало. Фрэймы клал на форму путём назначения парента типа:
Frame1.Parent := Form1;
Проверь следующее:
1. Что фрэйм точно имеет Visible == true
2. Размеры и расположение фрэйма.
3. Попробуй тот же фрэйм положить на форму статически и посмотреть, будет
либо отображаться с твоими нестандартными контролами.
4. Измени порядок положения фрэйма на форму с ...InsertControl на Frame.Parent := Form.
аноним (2006-02-25 10:57:00) [2]идентичная проблема. автор разобрался? помогите. сам в шоке )
имеет ли смысл отказываться от фреймов и работать с обычными формами? ведь по сути форму тоже можно загнать а-ля фрейм. кто разобрался с бубном?
DesWind (2006-02-10 13:11:00) [3]А если явно присвоить Frame.Parent:=Panel3 ?