![]() |
|
|
Регистрация | << Правила форума >> | 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. фиг с ней, с кодировкой |