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

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

30.05.2016, 20:28. Показов 906. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru