PDA

Просмотр полной версии : Динамичесское создание форм в Delphi 7


Yegor
14.07.2011, 03:10
Есть в Delphi 7 компонент который может облегчить использование визуальных компонентов отображаемых динамически?
Хочу избежать использования кучи строк типа:

Edit1:=TEdit.Create(...);
Memo:=TMemo.Create(...);
Label1:=TLabel.Create(...);

Может быть можно использовать какие то спец контейнеры?

xkor
14.07.2011, 06:01
Yegor, что значит динамически?

Yegor
14.07.2011, 08:20
Я имел в виду что на форме визуальные компоненты не заданы заранее, а добавляются программно в зависимости от нужд. Например нужно на форме отобразить текст значит добавляем TMemo.

mira
14.07.2011, 13:54
Куда уж проще если размеры расположение и свойства компонентов не известны заранее.

Yegor
14.07.2011, 23:53
mira, известны. Просто хочеться на одной и той же форме отображать то 1 то 2 то n-ный набор компонентов.

xkor
15.07.2011, 00:38
Yegor, ну если наборы зарание известны то чем тебя фреймы не устраивают?
а если неизвестны то уже непонятно что ты там упростить хочешь

Yegor
15.07.2011, 01:32
xkor,о вот тут поподробнее,что за фреймы? Или имеется ввиду набор заранее созданных форм?

xkor
15.07.2011, 05:17
Yegor, нет, набор зарание созданных фреймов, ты фреймами чтоль никогда в дельфи не пользовался?
Создаёшь фрейм (так же как форму, он в списке шаблонов есть), а дальше в нужный момент в рантайме можно создать его вместе со всеми компонентами на нём.

Yegor
15.07.2011, 08:15
Не пользовался. Спасибо, то что нужно. А как на форме можно менять фрейм на нужный прямо во время работы приложения, динамичесски создавать нужный объект фрейма на форме?


Что то некорректно перерисовываются фреймы в WIn 7. То надписей не видно то кнопок :(.

alexteam
15.07.2011, 11:33
при нажатии альт пропадают контролы ?
решения 2 - править контролс.пас либо юзать костыль (http://www.koders.com/delphi/fid46DB71DE69DB5D536E9A1EA93FD28F5470B438B0.aspx?s =xml)

Yegor
15.07.2011, 12:03
alexteam, да без нажатия. КОгда начинаешь ресайзить форму контролы то появляются то пропадают.

alexteam
15.07.2011, 12:49
не наблюдается такое.

Yegor
15.07.2011, 23:21
alexteam, у меня наблюдается только если контролы размещены на фрейме. Поставил на метод OnResize фрейма - Repaint, теперь при ресайзе мерцает но хоть не пропадает :)

xkor
17.07.2011, 20:21
Yegor, ну а чего ты хочешь от VCL который создавался когда 7ки и в проекте не было, как и висты)

Yegor
17.07.2011, 22:13
xkor, А как же мнимая обратная совместимость в виндах? :)

alexteam
18.07.2011, 00:24
а что, чтото не работает или крашиццо ?

Yegor
18.07.2011, 00:56
Не крашиться и работает, но не всегда виден результат работы.
Еще в семерке некорректно отрисовываются картинки в TComboboxEX, часто после смены индекса элемента отрисовывается старая картинка даже если сделать принудительный репаинт.

alexteam
18.07.2011, 01:25
TComboboxEX
хз чо эта 0_о

зы. по пропаданию контролов - перебилдь контролс.пас используя фикс отсюда.
http://qc.embarcadero.com/wc/qcmain.aspx?d=37403

Yegor
18.07.2011, 02:42
alexteam, Combobox с возможностью отображения картинок из TListImage, к какждому элементу списка еще можно прицепить какой то объект. Этот компонент входит в стандартный набор.

Yegor
12.08.2011, 10:08
alexteam, глупый конечно вопрос, но как пересобрать controls.pas, изменения внес но компилироваться он не желает.

alexteam
21.08.2011, 19:17
дык. подсоедини контролс.пас добавленем юнита в пустой проект. назнач проеку оутпутдир, скомпиль, перенеси с оутпутдир дкушку "куданадо"