Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

Создание компонент динамически.   Найти похожие ветки 

 
Medusa__   (2007-02-22 12:25) [0]

Здравствуйте!
Есть задача: динамически создавать табы в pagecontrol"е, на которых будет много-много всяких контролов (эдиты, буттоны, чекбоксы и пр.), каждому контролу надо присвоить некоторые события.
Я представляю себе это так:
объявлять куча массивов (например, Panels: array [1..100] of TPanel; Buttons: array [1..100] of TButton), потом создавать объект, присваивать ему кучу значений, некоторые события.. долго и ужасно.
Есть ли какой-то другой способ?
(например, может как-то можно интерпретировать текст, который delphi копирует в буфер, при edit->copy в ide)


 
Loginov Dmitry ©   (2007-02-22 18:31) [1]

> Есть ли какой-то другой способ?


Есть


 
Medusa__   (2007-02-22 18:54) [2]

Какой же?


 
Loginov Dmitry ©   (2007-02-22 18:57) [3]

Обрабатывать массивы в цикле.


 
Суслик ©   (2007-02-22 18:59) [4]

если бы задачу лучше знать, то можно сказать какие тут способы.

но задуматься стоит вот о чем - 100 кнопок и 100 панелей - это весьма тяжелый интерфейс - может быть весьма тормозным.


 
Medusa__   (2007-02-22 19:09) [5]

Хм.. возможно я не так описал задачу.
На форму кидается панелька (в runtime), её можно перемещать, как только она появляется - у пейджконтрола появляется ещё одна закладка - со св-вами этой панельки (допустим, заказчик панельки, название и пр.).
Максимум - может быть 100 панелек.

Обычно это 10-15 панелек, очень редко бывает больше.


 
Суслик ©   (2007-02-22 19:12) [6]

А может тебе фреймами воспользоваться?

(TFrame)


 
Medusa__   (2007-02-22 19:16) [7]

Суслик, КРУТО.
Как раз то, что искал.
Спасибо :-)


 
Суслик ©   (2007-02-22 19:19) [8]

Там только при вставке в runtime проблемы могут быть с именами фреймов - имена то у них у всех одинаковые

Я в свое время так с этим оборолся

F := TYourFrame.Create(nil);
F.Name := "";
OwnerOfTheFrame.InsertComponent(F);


 
Kolan ©   (2007-02-22 19:21) [9]

«100 кнопок и 100 панелей »

Это не «тяжелый интерфейс „  это *опа :)


 
Суслик ©   (2007-02-22 19:22) [10]


> Это не «тяжелый интерфейс „  это *опа :)

да нет, жить должно.


 
Kolan ©   (2007-02-22 19:22) [11]

«Есть ли какой-то другой способ?»

Есть — перепроиктировать интерфейс, «Ковдовство» почитать что ли&#133


 
Kolan ©   (2007-02-22 19:34) [12]

«
да нет, жить должно.»

Я не про жизнь интерфейса, а про тех кто им будет пользоваться :)


 
Суслик ©   (2007-02-22 19:35) [13]

не разводи тут - человек справшивал, ему ответили - пусть сам разбирается.


 
Kolan ©   (2007-02-22 19:39) [14]

«не разводи тут — человек справшивал, ему ответили — пусть
сам разбирается.»

Так я и не развожу. :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.067 c
2-1175671150
Riply
2007-04-04 11:19
2007.04.22
Определение последнего вызова "колбэка" BindIoCompletionCallback


1-1172710020
HF-Trade
2007-03-01 03:47
2007.04.22
Графика в DOS (консольные приложения)


15-1175157168
DVM
2007-03-29 12:32
2007.04.22
Убрать dll внутрь exe


1-1172494427
Unknown user
2007-02-26 15:53
2007.04.22
Как БЫСТРО подсчитать кол-во файлов в заданном каталоге?


4-1164636280
samael6
2006-11-27 17:04
2007.04.22
Остановка драйвера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский