![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
юзал поиск, но подобной темы не нашел, если уже существует, просьба кинуть ссылку, а не сапог.
Проблема в следующем: в одну процедуру есть 9 входов с разных компонентов, соответственно с разными переменными Sender. Необходимо в зависимости от Sender вызвать соответствующую процедуру при клике по пункту popmenu... Цитата:
определен тип и переменная этого типа: Код:
type
TSender=
(
Sformwork,
StabArray,
Stabmatrix,
StabString,
Spanel1,
Spanel4,
Spanel2,
Spanel3,
Spanel5
);
var
popsender:TSender;хотелось бы в процедуре, при передаче параметра Sender, скажем, равным либо formwork,TabArray и пр. задать переменной popsender соответственно значение Sformwork,STabArray и пр. Есть ли для этого путь в обход 9 операторов if..then либо вложенных if..then..else? |
|
#2
|
||||
|
||||
|
Case спасет гиганта мысли.
|
|
#3
|
|||
|
|||
|
спасет, когда я найду способ передать в его значения:
а) переменную типа Tobject б) переменную перечисляемого типа, заданную в соответсвии с переменной типа Tobject способы реализации пункта б и хочу узнать) |
|
#4
|
|||
|
|||
|
на данный момент реализовано следубщим образом:
Код:
if popsender=formwork
then str:='ðàáî÷àÿ ôîðìà ëàáîðàòîðíîé ðàáîòû'
else
begin
if popsender=tabArray
then str:='çàêëàäêà ðàáîòû ñ ìàññèâîì'
else
begin
if popsender=tabmatrix
then str:='çàêëàäêà ðàáîòû ñ ìàòðèöåé'
else
begin
if popsender=tabString
then str:='çàêëàäêà ðàáîòû ñ ñòðîêîé'
else
begin
if popsender=panel1
then str:='ïàíåëü ââîäà çíà÷åíèé ìàññèâà'
else
begin
if popsender=panel4
then str:='ïàíåëü âûáîðà çàäàíèÿ äëÿ ìàññèâà'
else
begin
if popsender=panel2
then str:='ïàíåëü ââîäà ðàçìåðîâ ìàòðèöû'
else
begin
if popsender=panel3
then str:='ïàíåëü çíà÷åíèé ìàòðèöû'
else
begin
if popsender=panel5
then str:='ïàíåëü âûáîðà çàäàíèÿ äëÿ ìàòðèöû'
else str:='âûçîâ ýòîãî îêíà áûë íåâîçìîæåí';
end;
end;
end;
end;
end;
end;
end;
end;
showmessage(str);p.s. фиг с ней, с кодировкой |