Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 89

Использование case Delphi

30.05.2016, 20:28. Показов 920. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
имеется код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Case Combobox1.itemIndex of
0:begin Edit1.Clear; Form_login.Visible:=false; Showmessage('Вход в систему под  должностью "Кассир" выполнен.');   Form_general.Show;
end;
1:begin Edit1.Clear; Form_login.Visible:=false;Showmessage('Вход в систему под должностью "Директор" выполнен.'); Form_general.Show;
end;
2:begin Edit1.Clear; Form_login.Visible:=false;Showmessage('Вход в систему под должностью "IT-специалист" выполнен.'); Form_general.Show;
end;
3:begin Edit1.Clear; Form_login.Visible:=false;Showmessage('Вход в систему под должностью "Бухгалтер" выполнен.'); Form_general.Show;
end;
4:begin Edit1.Clear; Form_login.Visible:=false;Showmessage('Вход в систему под должностью "Зам.директора" выполнен.'); Form_general.Show;
end;
5:begin Edit1.Clear; Form_login.Visible:=false;Showmessage('Вход в систему под должностью "Рабочий" выполнен.'); Form_general.Show;
end;
6:begin Edit1.Clear; Form_login.Visible:=false;Showmessage('Вход в систему под должностью "Начальник отдела кадров" выполнен.'); Form_general.Show;
В каждое значение нужно написать еще примерно столько кода
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
form_general.Show;
    Form_login.Visible:=False;
    form_general.Panel4.Visible:=true;
    form_general.Button2.Enabled:=False;
    form_general.Button3.Enabled:=False;
    form_general.N12.Visible:=False;
    form_general.N37.Visible:=False;
    form_general.N15.Visible:=False;
    form_general.N29.Visible:=False;
    form_general.N30.Visible:=False;
    form_general.N31.Visible:=False;
    form_general.N32.Visible:=False;
    form_general.N33.Visible:=False;
    form_general.N34.Visible:=False;
    Form_Dobav_Polzvt.Button7.Visible:=False;
    Form_Dobav_Polzvt.N37.Visible:=False;
    Form_Dobav_Polzvt.N15.Visible:=False;
    Form_Dobav_Polzvt.N29.Visible:=False;
    Form_Dobav_Polzvt.N30.Visible:=False;
    Form_Dobav_Polzvt.N31.Visible:=False;
    Form_Dobav_Polzvt.N32.Visible:=False;
    Form_Dobav_Polzvt.N33.Visible:=False;
    Form_Dobav_Polzvt.N34.Visible:=False;
    form_sklad.Button8.Enabled:=False;
    form_sklad.Button9.Enabled:=False;
    form_sklad.Button23.Enabled:=False;
    form_sklad.Button24.Enabled:=False;
    form_sklad.Button17.Enabled:=False;
    form_sklad.Button18.Enabled:=False;
    form_sklad.Button11.Enabled:=False;
    form_sklad.Button12.Enabled:=False;
    form_sklad.Button20.Enabled:=False;
    form_sklad.Button21.Enabled:=False;
    form_sklad.Button14.Enabled:=False;
    form_sklad.Button15.Enabled:=False;
    form_sklad.N9.Visible:=False;
    form_sklad.N37.Visible:=False;
    form_sklad.N15.Visible:=False;
    form_sklad.N29.Visible:=False;
    form_sklad.N30.Visible:=False;
    form_sklad.N31.Visible:=False;
    form_sklad.N32.Visible:=False;
    form_sklad.N33.Visible:=False;
    form_sklad.N34.Visible:=False;
    Form_general.N9.Visible:=False;
    Form_prog.N9.Visible:=False;
    Form_prog.N9.Visible:=False;
    Form_prog.N37.Visible:=False;
    Form_prog.N15.Visible:=False;
    Form_prog.N29.Visible:=False;
    Form_prog.N30.Visible:=False;
    Form_prog.N31.Visible:=False;
    Form_prog.N32.Visible:=False;
    Form_prog.N33.Visible:=False;
    Form_prog.N34.Visible:=False;
    Form_Sklad.N9.Visible:=False;
    Form_zayav_rem.N9.Visible:=False;
    Form_zayav_rem.Button3.Visible:=False;
    Form_zayav_rem.N9.Visible:=False;
    Form_zayav_rem.N37.Visible:=False;
    Form_zayav_rem.N15.Visible:=False;
    Form_zayav_rem.N29.Visible:=False;
    Form_zayav_rem.N30.Visible:=False;
    Form_zayav_rem.N31.Visible:=False;
    Form_zayav_rem.N32.Visible:=False;
    Form_zayav_rem.N33.Visible:=False;
    Form_zayav_rem.N34.Visible:=False;
Все писать в одну строку не вариант,как сделать чтобы все вносилось столбцом?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.05.2016, 20:28
Ответы с готовыми решениями:

Использование БД в Delphi
Привет. Возникла необходимость подключить базу данных к Delphi для хранения вычислений полученных в ходе работы программы, решил подключать...

Использование функций Excel из Delphi
Прочитал тему https://www.cyberforum.ru/delphi/thread21280.html и у меня возник вопрос, можно-ли использовать функции excel из delphi ,...

Использование Delphi XE5 Android и БД
Здравствуйте! Подскажите как и какую БД лучше использовать. Что то типо локальной БД. Заранее благодарен.

8
 Аватар для maybeTM
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
30.05.2016, 20:46
Slesar, можно циклом по всем нужным компонетам пройтись
Примерно вот такой
Delphi
1
2
3
for i := 0 to ComponentCount - 1 do 
if Components[i] is TButton then 
(Components[i] as TButton).visible := false;
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 89
30.05.2016, 20:48  [ТС]
Можете показать пример?
0
 Аватар для maybeTM
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
30.05.2016, 20:50
Если я верно понял, то это у вас кнопки, можете и без цикла обойтись конечно. Просто добавить нужные кнопки на панели, и скрывать уже эти панели. А можно уже код, который вы написали, засунуть в процедуру и вызывать её)
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 89
30.05.2016, 20:55  [ТС]
Нет,у меня идет авторизация и там проверяется какая должность выбрана и для нее нужно назначить права доступа.

Добавлено через 1 минуту
Как лучше всего создать процедуру,просто там нужно указывать какие-то параметры.А я не особо знаком с этим.
0
 Аватар для maybeTM
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
30.05.2016, 20:59
Slesar, А тот огромный кусок кода должен выполняться всегда в каждом кейсе?

Добавлено через 1 минуту
Slesar, Вообще можете не скрыть кнопки, а перед выполнением каких либо действий проверять текущего пользователя, и если пользователь не имеет нужных прав, то выдавать ему сообщение
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 89
30.05.2016, 21:01  [ТС]
maybeTM, нет,только на определенной должности.Но у каждого кейса будет примерно столько же кода
0
 Аватар для maybeTM
16 / 15 / 4
Регистрация: 30.10.2014
Сообщений: 175
30.05.2016, 21:08
Slesar,если кноки скрывать хотите, то вам тогда, наверное, проще такую процедуру написать и вызывать её с нужным параметром.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure btnstatus (k : integer);
begin
case k of
  begin
     1 : begin
       btn.visible := false;
     end;
     3 : begin
       btn2.visible := false;
     end;
     3 : begin
       btn3.visible := false;
     end;
 
  end;
 
end;
0
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 89
30.05.2016, 21:23  [ТС]
maybeTM, а зачем делать еще один кейс?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.05.2016, 21:23
Помогаю со студенческими работами здесь

Создание приложения с использование Delphi 10 Lite и InterBase
Всем добрый день! Решил создать небольшое приложение для отображения работ, выполняемых на личной пасеке. Опыт программирования...

Delphi 7 + Access. Использование переменных из другого unita (в Unit 1 из Unita3)
Общее условие задачи следующее: 1)На основе базы сделать форму с отображением данных из таблиц БД MS Acces; 2) сделать 2 кнопки: a)...

Вывод данных в БД Access 2003 при использование SQL запросов. Delphi
Добрый день или вечер Камрады, столкнулся с проблемой при использование структуры "insert into", кто-нибудь может подсказать как...

Где можно прочитать про использование и синтаксис баз данных DBISAM в Delphi?
Вот код проекта, который я частично унаследовал от предшественников, частично дополнил сам (вроде бы корректно перенес сюда из проекта в...

Использование CASE?
Доброго времени суток. Вопрос. Есть селект из которого нужно получить данные CASE`ом или любым другим доступным методом. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru