Главная страница
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.024 c
14-1081424365
mr. Faga
2004-04-08 15:39
2004.05.02
записать свою функцию в стороннюю DLL...


1-1082015657
Курдль
2004-04-15 11:54
2004.05.02
Директивы компиллятора {$IF произвольная_константа = ..}


3-1081162922
}|{yk
2004-04-05 15:02
2004.05.02
Group by для union


3-1081317803
Студент1
2004-04-07 10:03
2004.05.02
ADO и SQL Server 2000 -> "Connection failure".


7-1074852683
Evgeniy_K
2004-01-23 13:11
2004.05.02
Работа с устройствами