Страница 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; ?
Хм.... попрубую...
просто недодумался как то :o ops:
Спасибо :)

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