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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 20:53   #1
Kottik
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 47
По умолчанию Возможно ли подставить параметр процедуры в имя объекта.

Здравствуйте.
Имеется несколько TList.
Код:
procedure TfmMain.ShowListContents(Integer: X);
var
  i : Integer;
begin
  for i := 0 to List.Count-1 do
  begin
//действия
  end;
end;
Как сделать, чтобы процедура работала для любого из TList? Можно ли подставить параметр процедуры X в имя объекта:
x=5,
...List5.Count-1...

Если действий немного, то можно Case завести, но ведь это явно неправильный путь. Пожалуйста, подскажите.
Учиться никогда не поздно
Kottik вне форума Ответить с цитированием
Старый 19.04.2010, 20:59   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

На примере ListBox'a...
В FindComponent пишем имя компонента...
Код:
  for i:=1 to 5 do begin
    TListBox(FindComponent('ListBox'+IntToStr(i))).Items.Add('Новая строка');
  end;
W0LF вне форума Ответить с цитированием
Старый 19.04.2010, 21:40   #3
Kottik
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 47
По умолчанию

Простите, и как мне таким способом TList отыскать? Он же не является компонентом формы
Учиться никогда не поздно

Последний раз редактировалось Kottik; 19.04.2010 в 22:21.
Kottik вне форума Ответить с цитированием
Старый 19.04.2010, 23:03   #4
Slovinsky
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 79
По умолчанию

Помимо икса List передай параметром в процедуру ))
Slovinsky вне форума Ответить с цитированием
Старый 19.04.2010, 23:07   #5
Kottik
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 47
По умолчанию

Сделал так, возможно это неправильно:
массив указателей на объекты TList. X, передаваемый параметром - это индекс данного массива.
Учиться никогда не поздно
Kottik вне форума Ответить с цитированием
Старый 20.04.2010, 10:02   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
(Integer: X);
Ану бегом Паскаль учить!

Цитата:
массив указателей на объекты
Но можно и так, но проще без массива,
А еще проще
Код:
program Project1;

{$APPTYPE CONSOLE}

uses Classes,
  SysUtils;
type
 TList=class(Classes.TList)
  procedure ShowListContents(x:Integer);
 end;
{ TList }

procedure TList.ShowListContents;
var
  i : Integer;
begin
  for i := 0 to Count-1 do  begin
   write(Integer(Get(i)):5);
  end;
writeln;
end;

var  l,k:TList;
begin
 l:=TList.Create;k:=TList.Create;
 l.Add(pointer(1));l.Add(pointer(2));
 k.Add(pointer(3));k.Add(pointer(4));
 l.ShowListContents(0);
 k.ShowListContents(0);
  { TODO -oUser -cConsole Main : Insert code here }
 l.Free;k.Free;
 readln;
end.
т.е. переопределить этот класс, добавив в него свой метод.
Смысл ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 10:25   #7
Kottik
Пользователь
 
Регистрация: 19.08.2009
Сообщений: 47
По умолчанию

Спасибо за ответы.
Смысл не ясен, вчитываться некогда. Но обязательно позже вернусь к этому коду.
Учиться никогда не поздно
Kottik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имя объекта, который сгенерировал событие mixer94 Общие вопросы Delphi 4 14.07.2009 15:33
Переменное имя объекта transgd Microsoft Office Excel 3 16.04.2009 12:17
символьные данные сложной структуры и имя массива как параметр функции EkaterinaA Помощь студентам 3 22.02.2009 21:36
С помощью методов и свойств объекта осуществляется управление терминалом. Имя (идентификатор) объекта User>lia Общие вопросы Delphi 4 16.01.2009 16:37