![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не вижу на экране динамически созданные кнопки, метки... [D5, WinXP]
apellido © (2005-10-10 10:01:00)В форму frmMain поместил два листа с закладками,ограничив по
краям GroupBox - ами
type
TfrmMain = class(TForm)
PageControl1: TPageControl;
Sheet1: TTabSheet;
Sheet2: TTabSheet;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Желаю создать динамически оформление листов с кнопками,
метками и т.п. для последующего ввода в БД, сгруппировав
внутри GroupBox - ов, для массового изменения аттрибутов.
Пишу следующее: (фрагмент процедуры)
---------------------------------
var
Temp : TComponent;
begin
Temp:=frmMain.Sheet1.FindComponent('Edit_1');
if (Temp is TEdit) and ((Temp as TEdit).Name='Edit_1') then begin
(Temp as TEdit).Visible:=true;
(Temp as TEdit).Text :='Проба';
(Temp as TEdit).Top :=150;
(Temp as TEdit).Left :=150;
(Temp as TEdit).Width :=50;
(Temp as TEdit).Height :=50;
(Temp as TEdit).Color :=clWhite;
end
else begin
TEdit.Create(frmMain.Sheet1).Name:='Edit_1';
end;
Запускаю на выполнение, но на экране ничего не появляется.
Вставлял ShowMessage для отладки - все ветки работают.
Пробовал вместо Sheet1 писать GroupBox1, но результат тот же.
Цвет фона листов не белый. Процедуру, содержащую сей код,
запускаю внутри
procedure TfrmMain.FormResize(Sender: TObject)
Есть вариант нарисовать все эл-ты с большим запасом по кол-ву в форме и в нужный момент ставить для каждого эл-та Visible=true, но ведь некрасиво и запаса может не хватить.
Так в чем же моя ошибка?
ps:
'Еdit_1' приведен для примера, на самом деле в дальнейшем будет переменная.
apellido (2005-10-10 10:25:00) [1]Действительно! Все появилось!
Тема закрыта.
kblc (2005-10-10 10:07:00) [2]Попробуй так:
else with TEdit.Create(frmMain.Sheet1) do begin
Name:='Edit_1';
Parent:=frmMain.Sheet1;
end;