![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Имена компонентов.... [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(...) ?