Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Форма и компоненты   Найти похожие ветки 

 
oleg_v   (2004-04-16 17:41) [0]

Здравствуйте!
Помогите, задача вроде до безумия простая а что-то не получается: как при повторном обращении к форме поставить всем компонентам свойства по умолчания. Допустим  у меня на форме 30 edit-ов по умолчанию у них свойство text="" в процессе рабаты моей программы я присвоил всем, какой то текст затем при нажатии на кнопку или при обращении к форме у всех edit-ов свойство text должно равняться "".
Может у формы есть какое то свойство или процедура которая позволяет перезагрузить форму не останавливая всю программу?
Конечно способ: Edit1.text:="" и т.д.;  я знаю:-)

Заранее всем спасибо!!!!!


 
KSergey ©   (2004-04-16 17:47) [1]

Как пребрать ве компоненты, относящиеся к некоемому паренту, например - примеров на сайте дофига.
Небольшая рекурсия начиная с формы - и все эдиты в кармане ;)

См. свойства ControlCount, Controls, а так же оператор is


 
Тимохов ©   (2004-04-16 17:49) [2]

если нет фреймов, то можно без рекурсии перебрать все через Components и ComponentCount.


 
Тимохов ©   (2004-04-16 17:50) [3]

... все через Components и ComponentCount у формы.


 
Yanis ©   (2004-04-16 17:58) [4]

Видимо он не очень сообразительный :\

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
 for i := 0 to ComponentCount - 1 do
   if Components[i] is TEdit then
     (Components[i] as TEdit).Text := "Hello world!";
end;


 
WebErr ©   (2004-04-16 18:11) [5]


> Yanis ©   (16.04.04 17:58) [4]

Всё это в TAction "SomeAction" в TActionList и присвоить кнопке "SomeButton":
SomeButton.Action := SomeAction
да и вообще можно и в FormCreate запихнуть! :))))


 
TUser ©   (2004-04-16 18:35) [6]

Вопрос, насколько я понимаю не в том, как обойти компоненты в цикле, а в том, как присвоить им значения по-умолчанию. Что-то типа TComponent.SetAllPropertiesToDefault чтобы не прописывать явно присваивание всех этих св-в. В OP/VCL такого метода не предусмотрено, я по крайней мере не нашел. Можно кинуть на форму JvFormStorage и грузить значения по умолчанию из ini/реестра. Можно еще порыть, кажется недавно на конференции был вопрос о том, как прочитать свойства из dfm.


 
Fred Perry   (2004-04-16 18:52) [7]

Если я правильно понял задачу, то эта форма - не главная форма приложения. Думается можно делать ей не show/hide, а просто создавать (create) динамически по мере необходимости.


 
oleg_v   (2004-04-17 05:49) [8]

Спасибо огромное мастера Вы мне очень помогли!


 
KSergey ©   (2004-04-17 06:49) [9]

> [2] Тимохов ©   (16.04.04 17:49)
> если нет фреймов,

Ну кроме фреймов можно еще много чего придумать. Как минимум - TPanel
А так, в общем случае - любой наследник TWinControl.


 
Kalyansky   (2004-04-17 13:09) [10]

А можно перебрать FindComponent"ом


var i: integer;
begin
for i := 0 to 30 do
  (FindComponent("Edit"+IntToStr(i)) as TEdit).Text = ""



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

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
1-1081868757
4kusNick
2004-04-13 19:05
2004.05.02
Открытие файлов из Проводника


1-1081912401
i2e
2004-04-14 07:13
2004.05.02
Выбор папки - есть аналоги функции SelectDirectory(..) ?


1-1082096797
Litva
2004-04-16 10:26
2004.05.02
помогите новенкой...


3-1080892115
Yad
2004-04-02 11:48
2004.05.02
TAdoConnection


14-1081437031
E1
2004-04-08 19:10
2004.05.02
интересный IRC бот :)