Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2011, 20:41   #1
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
Восклицание Очистка edit'ов находящихся на определённом компоненте

Здравствуйте.
Мне необходимо очищать edit'ы. Проблема в том, что у меня много вкладок и на каждой есть поля ввода. Мне нужно очищать определённые поля, на определённых вкладках.

Этот код чистит все поля ввода на всей форме. Как его модернизировать, чтобы чистил только на вкладке TabSheet1?
Код:
procedure TMainForm.ClearEdits;
 var i : Integer;
begin
 for i := 0 to ComponentCount-1 do
  begin
   if (Components[i] is TEdit) then
     (Components[i] as TEdit).Clear;
  end;
end;
Заранее благодарю.
Arkuz вне форума Ответить с цитированием
Старый 24.01.2011, 21:38   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TMainForm.ClearEdits;
 var i : Integer;
begin
 for i := 0 to TabSheet1.ControlCount-1 do
  begin
   if (TabSheet1.Controls[i] is TEdit) then
     (TabSheet1.Controls[i] as TEdit).Clear;
  end;
end;
При условии, что Edit-ы лежат непосредственно в TabSheet1. Если есть подложка типа TPanel или др. то в ней точно также можно искать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.01.2011, 22:52   #3
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

спасибо... тогда проще удалить вручную...
Arkuz вне форума Ответить с цитированием
Старый 24.01.2011, 23:05   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ничего не проще. В процедуру добавить параметр TabSheet: TTabSheet и для любой вкладки обращаться к этой процедуре с нужным именем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.01.2011, 03:04   #5
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

ИМХО для крастоты действий лучше тогдась уж делать входным параметром
Сontainer: TWidgetControl
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 28.01.2011, 17:21   #6
Volt
Форумчанин
 
Аватар для Volt
 
Регистрация: 07.12.2008
Сообщений: 244
По умолчанию

можно вот так :
Код:
procedure TForm1.ClearEdits;
 var i : Integer;
begin
 for i := 0 to ComponentCount-1 do
  begin
   if (Components[i] is TEdit) then
   if ((Components[i] as TEdit).Parent is TTabSheet)  then
   if ((Components[i] as TEdit).Parent as TTabSheet).Caption='TabSheet1'  then
     (Components[i] as TEdit).Clear;
  end;
end;
либо вот так:
Код:
function ComponentShearchParent(CParent:TWinControl):TWinControl;
begin
CParent:=CParent.Parent;
if (CParent is TTabSheet)  then
Result:=CParent
else
CParent:=ComponentShearchParent(CParent.Parent);
end;

procedure TForm1.ClearEdits(Caption:String);
var i : Integer;
begin
for i := 0 to ComponentCount-1 do
begin
if (Components[i] is TEdit) then
if ((Components[i] as TEdit).Parent is TTabSheet)  then
begin
if ((Components[i] as TEdit).Parent as TTabSheet).Caption=Caption  then
(Components[i] as TEdit).Clear;
end
else
if (ComponentShearchParent((Components[i] as TEdit).Parent) is TTabSheet) then
begin
if (ComponentShearchParent((Components[i] as TEdit).Parent) as TTabSheet).Caption=Caption  then
(Components[i] as TEdit).Clear;
end;


end;

end;


procedure TForm1.Button1Click(Sender: TObject);
begin
ClearEdits('TabSheet2')
end;
|̲̅̅●̲̅̅|̲̅̅=̲̅̅|̲̅̅●̲̅̅]

Последний раз редактировалось Volt; 28.01.2011 в 17:56.
Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запускать скрипт на определённом домене? VPK JavaScript, Ajax 3 16.11.2010 01:11
Как запускать скрипт на определённом домене? VPK PHP 6 12.11.2010 23:47
Вывод алфавита в определённом порядке. Tonik_A Помощь студентам 3 03.07.2010 15:42
Напечатать в определённом месте в консоли (gotoXY в паскале) TwiX Общие вопросы C/C++ 4 23.10.2009 20:45
Проблема с открытым массивом Edit'ов Tihon Общие вопросы Delphi 6 18.07.2008 17:07