Как создать RunTime компонент на панели создаваемой Runtime?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Alchazar
Сообщения: 23
Зарегистрирован: 13 апр 2005, 10:47
Откуда: LT Vilnius
Контактная информация:

Проблема в том, что мне надо создать TImage во время работы программы на панели, которая тоже создаётся во время работы программы. В свойстве Parent (компонента TImage) указать компонент которого ещё нету неполучается.
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Это не удивительно. А что мешает дождаться таки создания панели и только после этого создать картинку? Кстати очень желательно не забыть про свойство Owner...
Изображение
Alchazar
Сообщения: 23
Зарегистрирован: 13 апр 2005, 10:47
Откуда: LT Vilnius
Контактная информация:

Может тогда подскажеш как это зделать? Ведь на момент написания кода этой панели несуществует.
Delphi 7
ICQ 338-030-989
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

Надо думать в алгоритме... Описывай почему такая последовательность, может придумается чего... Может оно на самом деле и не нужно ;)
Изображение
Alchazar
Сообщения: 23
Зарегистрирован: 13 апр 2005, 10:47
Откуда: LT Vilnius
Контактная информация:

Мне надо, чтобы во время работы програмы создавалось 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, а поместить его на панель у меня никак неполучается :(
Delphi 7
ICQ 338-030-989
Аватара пользователя
Игорь Акопян
Сообщения: 1440
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

дык а что помешало написать Parent := Panel; ?
Изображение
Alchazar
Сообщения: 23
Зарегистрирован: 13 апр 2005, 10:47
Откуда: LT Vilnius
Контактная информация:

дык а что помешало написать Parent := Panel; ?
Хм.... попрубую...
просто недодумался как то :o ops:
Спасибо :)
Delphi 7
ICQ 338-030-989
Alchazar
Сообщения: 23
Зарегистрирован: 13 апр 2005, 10:47
Откуда: LT Vilnius
Контактная информация:

Работает :)
ОГРОМНОЕ Спасибо
Delphi 7
ICQ 338-030-989
Ответить