Страница 1 из 1
Как создать RunTime компонент на панели создаваемой Runtime?
Добавлено: 13 апр 2005, 11:15
Alchazar
Проблема в том, что мне надо создать TImage во время работы программы на панели, которая тоже создаётся во время работы программы. В свойстве Parent (компонента TImage) указать компонент которого ещё нету неполучается.
Добавлено: 13 апр 2005, 16:41
Игорь Акопян
Это не удивительно. А что мешает дождаться таки создания панели и только после этого создать картинку? Кстати очень желательно не забыть про свойство Owner...
Добавлено: 13 апр 2005, 18:33
Alchazar
Может тогда подскажеш как это зделать? Ведь на момент написания кода этой панели несуществует.
Добавлено: 13 апр 2005, 22:50
Игорь Акопян
Надо думать в алгоритме... Описывай почему такая последовательность, может придумается чего... Может оно на самом деле и не нужно

Добавлено: 13 апр 2005, 23:42
Alchazar
Мне надо, чтобы во время работы програмы создавалось n-ое кол-во одинаковых панелей на которых должны быть Image и напр. Edit. Есть конечно другой способ - "клонирование" уже подготовленной панели со всеми компонентами. Но хочю попробовать именно создавать их а не "клонировать".
Я делаю так, то есть пробую делать
Код: Выделить всё
if findFirst (pathJPG, faAnyFile, SR) = 0 then
repeat
Panel:= TPanel.Create(F_Main.ScrllBox_Pics);
with Panel do begin
Parent:=F_Main.ScrllBox_Pics;
Visible:= true;
Top:= Pan_top;
Left:= Pan_left;
Height:= 200;
Width:= 185;
Name:='Pan'+(inttostr(pan_top))+'x'+(inttostr(pan_left));
end;
with TImage.Create(F_main.ScrllBox_Pics) do begin
Parent:=F_Main.ScrllBox_Pics;
Visible:= true;
BringToFront;
Stretch:= true;
Top:= Img_top;
Left:= Img_left;
Height:= 145;
Width:= 169;
Name:='Img'+(inttostr(Img_top))+'x'+(inttostr(Img_left));
Picture.LoadFromFile(pathF + '\' + sr.Name);
end;
так всё работает, но Image создаётся на F_Main.ScrllBox_Pics, а поместить его на панель у меня никак неполучается

Добавлено: 14 апр 2005, 10:20
Игорь Акопян
дык а что помешало написать Parent := Panel; ?
Добавлено: 14 апр 2005, 11:45
Alchazar
дык а что помешало написать Parent := Panel; ?
Хм.... попрубую...
просто недодумался как то

ops:
Спасибо

Добавлено: 14 апр 2005, 21:06
Alchazar
Работает
ОГРОМНОЕ Спасибо