Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > как переименовать названия компонентов


Автор: ADAM83 21.2.2009, 09:34
Здравствуйте всем! У меня на форме имеются около 50-ти Edit-ов, 20-ти Combobox-ы и 10-ти RichEdit-ов. Теперь нужно их значения почистить (Text := '' или Clear). Как можно переименовать эти компоненты, чтоб их названия шли по порядку (просто некоторые компоненты имеют не стандартное имя)? Не охота всех перечислять в коде, а хочется циклом сделать очистку значения. Или в *.dfm-файлах переименовывать названия компонентов? Спасибо заранее.

Автор: Akella 21.2.2009, 12:03
Цитата(ADAM83 @  21.2.2009,  09:34 Найти цитируемый пост)
а хочется циклом сделать очистку значения.

Так очищай в цикле по компонентам

Автор: Christoph 21.2.2009, 14:09
Держи код
Код

var
  i: Integer;
begin
 for i := 0 to ComponentCount - 1 do
  begin
   if Components[i] is TCustomEdit then
      (Components[i] as TCustomEdit).Text := '';
   if  Components[i] is TComboBox then
      (Components[i] as TComboBox).Items.Clear;
  end;
end;

Автор: Akella 21.2.2009, 14:51
Christoph, ну вот, не дал человеку и подумать smile

Добавлено @ 14:52
Так будет быстрее, без as
Код

TCustomEdit(Components[i]).text := '';

Автор: ADAM83 21.2.2009, 15:01
Christoph,  Akella спасибо вам большое, добавлю плюсик. 
Еще один вопрос, как правильно будет, использование text := '' или clear? В чем разница?



извиняюсь, оказывается чтоб добавлять кому-то плюсики, нужно иметь неменее 100 постов, а у меня пока не хватает.


 Edit1.Clear;   Edit1.Text := '';  они одинаковы или нет, какой метод правильнее?

Автор: Akella 21.2.2009, 15:34
Цитата(ADAM83 @  21.2.2009,  15:01 Найти цитируемый пост)
Еще один вопрос, как правильно будет, использование text := '' или clear? В чем разница?

как хочешь, а что залезть в исходники и посмотреть, что делает clear религия не позволяет?

Автор: ADAM83 21.2.2009, 15:41
Akella, а вот что там написано
Код

procedure TCustomEdit.Clear;
begin
  SetWindowText(Handle, '');
end;


 выходит оба метода одинаковы что-ли?

Автор: Akella 21.2.2009, 15:51
Выходит да smile 

Автор: ADAM83 21.2.2009, 15:59
Тему объявляю закрытой  smile  Сэнк всем!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)