Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Имена компонентов.... [D6, Win2k]


Manulo ©   (2002-10-22 11:19:00) 

Фишка такая, в проекте используеться 8 ServerSocket... Понятное дело, множество функций и процедур касательно этих компонент очень сильно перекликаються друг с другом... Отличие сосотоит только в том, какая именно компонента используется в данной процедуре. Например:


procedurebtnClick (Sender ...);
vari : byte;
begin
i:=StrToInt(Edit1.text);
casei of
1 : ServerSocket1.open;
2 : ServerSocket2.open;
3 : ServerSocket3.open;
4 : ServerSocket4.open;
5 : ServerSocket5.open;
6 : ServerSocket6.open;
7 : ServerSocket7.open;
8 : ServerSocket8.open;
end;
end;

Так вот вопрос, как можно избежать повторения одних и тех же строк, отличающихся по сути только именем компонента? То есть как сделать некую процедуру ServerSocketOpen (i : byte);, которая по указанному ключу активировала компонент ServerSocketN, где вместо N -- ключ, передаваемый в процедуру?


Manulo   (2002-10-22 14:12:00) [1]

Peter Gluhiy
Skier

Дякую, Хлопці (укр.) -- пасибки, Мастера :)


Skier   (2002-10-22 11:44:00) [2]

>Manulo
Peter Gluhiy © (22.10.02 11:43)


Peter Gluhiy   (2002-10-22 11:43:00) [3]

Manulo © (22.10.02 11:32)
TServerWinSocket(Component).Open


Manulo   (2002-10-22 11:43:00) [4]

Skier
Это ты такой лаконичный, или просто решил поза!!!вать? :)
Поподробнее можна?


Skier   (2002-10-22 11:36:00) [5]

>Manulo
Кастинг ? :)


Manulo   (2002-10-22 11:32:00) [6]

Хорошо, допустим компонент я нашёл, а как получить доступ к его свойствам (Я не имею в виду свойства типа Create, Destroy, который из определения присущи любому компоненту, а именно его личные свойства, как в данном случае процедура Open


Smithson   (2002-10-22 11:26:00) [7]

Создай массив var Sockets: Array[1..8] of TserverSocket и дальше твой case превратиться в
i:=StrToInt(Edit1.text);
Sockets[I].Open;


Skier   (2002-10-22 11:20:00) [8]

>Manulo
FindComponent(...) ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо