|
|
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Всем привет! Помогите мне с одной проблемой) Суть такая, я создал программу при запуске которой открывается окно авторизации, после прохождения авторизации открывается главное окно программы. Так вот проблема в том, что окно авторизации не закрывается после открытия главного окна, а продолжает висеть пока его не закроешь с кнопки Выход, но если его закрыть с кнопки Выход то закрывается вся программа( А мне надо чтобы работало так, запустили программу открылось окно авторизации, прошли авторизацию, закрылось окно авторизации потом открылось главное окно программы. Лазил везде по форумам пытался разобраться но нечего так и не нашел( Помогите люди добрые пожалуйста! Последовательность моих действий при создании проекта программы: 1. Создал Дата Модуль (DataModule1) в него поместил ADOConnection1 и ADOQuery1 подключил туда базу данных (bd.mdb) с логинами и паролями. 2. Создал Форму (Form2) это форма авторизации на нее поместил два Edit1, Edit2 и две Button1,Button2. 3. Создал Форму (Form3) это форма главного окна программы она пока пустая. Код Project1 (Код создания проекта) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код Unit1 (Дата Модуль) Код: pascal 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. Код Unit2 (Окно авторизации) Код: pascal 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. Ну и Код Unit3 (Главное окно программы оно пока пустое) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Создаю проект в Delphi 7. Подскажите где и как править код чтобы все получилось. Заранее очень благодарен за ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:07:30 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:11:01 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
defecator Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Немножко поправлю, Application.Run; лучше вынести вниз за условие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:27:46 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за такой быстрый ответ!) Добавил ваш код, но при тестовом запуске программы из Delphi показывает ошибку [Error] Project1.dpr(15): Undeclared identifier: 'idOK' что я не так сделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:30:12 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Я новичок в программировании не пинайте сильно если что) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:32:50 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
schidefecator Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Немножко поправлю, Application.Run; лучше вынести вниз за условие. Зачем ? Нет авторизации - выход из программы. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:33:23 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Попробовал в Button1 поставить ModalResult в mrOK но ошибка [Error] Project1.dpr(15): Undeclared identifier: 'idOK' все равно осталась( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 10:43:14 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasiaПопробовал в Button1 поставить ModalResult в mrOK но ошибка [Error] Project1.dpr(15): Undeclared identifier: 'idOK' все равно осталась( в Uses надо прописать модуль Controls ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 11:14:28 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
тьфу, не Controls, а Windows ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 11:15:04 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
defecator, разве не mrOk? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 11:47:32 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
а можно поподробнее про Uses и Windows? чет я не совсем понял что куда сори) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 11:50:17 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
wadmandefecator, разве не mrOk? можно и mrOK, можно и idOK, поскольку mrOK = idOK в файле Controls.pas Мне привычнее idOK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 11:58:40 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasiaа можно поподробнее про Uses и Windows? чет я не совсем понял что куда сори) читать что-нибудь про Паскаль не пробовал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 11:59:13 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
в Uses на форме авторизации? как прописать модуль Windows и какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 12:01:02 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasiaв Uses на форме авторизации? как прописать модуль Windows и какой? ладно, умываю руки, тут всё бесполезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 12:01:34 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
defecatorschiпропущено... Немножко поправлю, Application.Run; лучше вынести вниз за условие. Зачем ? Нет авторизации - выход из программы. Всё. В свое время сталкивался с тем, что компоненты (TClientDataSet, если память не изменяет) созданные на автоматически создаваемых датамодулях, при их разрушении в отсутствии Application.Run выдавали AV. Дело было давно, деталей не помню, но с тех пор стараюсь Application.Run вызывать при любых условиях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 12:29:59 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasiaв Uses на форме авторизации? как прописать модуль Windows и какой? Код: pascal 1. 2. вот так выглядят подключенные модули. Сам смотри что и куда надо добавить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 15:48:37 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Всем спасибо разобрался. Сейчас не могу сообразить как сделать проверку на пользователей. То есть когда пользователь авторизуется то на Label1 в форме Form3 надо показывать фамилию того кто авторизовался. Создана база access там таблица и в ней четыре столбца 1. № (Номер пользователя по порядку) 2. login (Логин) 3. password (Пароль) 4. np (Ф.И.О пользователя) Вот код: Код: pascal 1. 2. 3. Он смотрит что пользователь ввел в поле Edit1, проверяет что ввели не admin и тогда прописывает в Label1 фамилию из столбца np базы. Но проблема кода в том что он берет только одну фамилию независимо кто зашел, то есть не понимает какой конкретно пользователь авторизовался. В общем не могу сообразить как изменить этот код чтобы программа понимала что например зашел пользователь под номером 3 (или по логину) и прописала в Label1 его фамилию из столбца np . Помогите разобраться пожалуйста. Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 16:28:52 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasiaВсем спасибо разобрался. Сейчас не могу сообразить как сделать проверку на пользователей. То есть когда пользователь авторизуется то на Label1 в форме Form3 надо показывать фамилию того кто авторизовался. Создана база access там таблица и в ней четыре столбца 1. № (Номер пользователя по порядку) 2. login (Логин) 3. password (Пароль) 4. np (Ф.И.О пользователя) Вот код: Код: pascal 1. 2. 3. Он смотрит что пользователь ввел в поле Edit1, проверяет что ввели не admin и тогда прописывает в Label1 фамилию из столбца np базы. Но проблема кода в том что он берет только одну фамилию независимо кто зашел, то есть не понимает какой конкретно пользователь авторизовался. В общем не могу сообразить как изменить этот код чтобы программа понимала что например зашел пользователь под номером 3 (или по логину) и прописала в Label1 его фамилию из столбца np . Помогите разобраться пожалуйста. Заранее благодарен! Ну какие еще Label1? Если форма сразу же закрывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 16:49:07 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Подскажите где и что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 16:56:16 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasiaПодскажите где и что не так? Лето, отдыхай, зачем тебе сейчас Паскаль? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 16:58:05 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasia> Подскажите где и что не так? Что именно подсказать-то? Много чего не так. Во-первых, проверять надо не запросом типа SELECT Password WHERE login = Edit1.Text и далее сравнением пароля с Edit2.Text, а select 1 where login = :login and password = :psw Во-вторых, твоё "не понимает какой конкретно пользователь авторизовался" не очень понятно с т.з. кода, т.к. логин вводится и проверяется вроде бы правильно (убедись отладчиком). В общем, не вываливай все вопросы кучей, иначе мало кому захочется отвечать и помогать, лучше спрашивай по одному. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 17:41:25 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Ну у меня вопрос один как этот код доработать чтобы он писал в Lebel1 фамилию того кто авторизовался. Есть таблица там четыре столбца: № login password np 1 user1 user1 Иванов И.И. 2 user2 user2 Петров П.П. 3 user3 user3 Сидоров С.С. Авторизация проходит нормально то есть по логину и паролю входит нормально, но код ниже выдает фамилию Иванов и не важно кем я зайду хоть 1 хоть 2 или 3 пользователем все равно в Lebel1 пишется Иванов. Вот и не могу разобраться как код этот переделать чтобы фамилия писалась правильно к каждому пользователю. Помогите пожалуйста. Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 20:18:53 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
ADOQuery1.FieldByName('np').Value ? ну и запрос надо select * from ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 22:33:57 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
s77ADOQuery1.FieldByName('np').Value ? ну и запрос надо select * from ... * не надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2017, 22:49:06 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
valli_vasia> Ну у меня вопрос один как этот код доработать valli_vasia> чтобы он писал в Lebel1 фамилию того кто авторизовался. Ну вот запрос который я выше поправлял - select np from users where login = :login and password = :psw Потом проверяешь if ADOQuery.RecordCount > 0 then Label.Caption := ADOQuery.FieldByName('np').asString; P.S. Книжки штудируй. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 10:56:57 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
> Потом проверяешь if ADOQuery.RecordCount > 0 then > Label.Caption := ADOQuery.FieldByName('np').asString; else, соответственно, raise Exception.Create('Логин/пароль неверные') Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 10:58:25 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам> Потом проверяешь if ADOQuery.RecordCount > 0 then > Label.Caption := ADOQuery.FieldByName('np').asString; else, соответственно, raise Exception.Create('Логин/пароль неверные') raise ELoginError.Create... Я, как Рикки-Тики-Тави со змеями, борюсь с теми, кто использует Exception, не создавая от него наследников. Хрен потом отфильтруешь в вызывающем коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 11:26:47 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
schiГаджимурадов Рустам> Потом проверяешь if ADOQuery.RecordCount > 0 then > Label.Caption := ADOQuery.FieldByName('np').asString; else, соответственно, raise Exception.Create('Логин/пароль неверные') raise ELoginError.Create... Я, как Рикки-Тики-Тави со змеями, борюсь с теми, кто использует Exception, не создавая от него наследников. Хрен потом отфильтруешь в вызывающем коде. и нафига на каждый чих наследников создавать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 11:29:44 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
defecatorschiпропущено... raise ELoginError.Create... Я, как Рикки-Тики-Тави со змеями, борюсь с теми, кто использует Exception, не создавая от него наследников. Хрен потом отфильтруешь в вызывающем коде. и нафига на каждый чих наследников создавать ? А чтобы потом отфильтровывать свои от EAccessViolation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:00:35 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
schidefecatorпропущено... и нафига на каждый чих наследников создавать ? А чтобы потом отфильтровывать свои от EAccessViolation. А разве EAccessViolation - не класс-наследник? И для чего их отфильтровывать? Чтобы прибивать EAccessViolation? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:07:43 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
ЖышыА чтобы потом отфильтровывать свои от EAccessViolation.А разве EAccessViolation - не класс-наследник? И для чего их отфильтровывать? Чтобы прибивать EAccessViolation? Предполагаю, что одна из причин - не вываливаться в отладчик под IDE на каждый чих эксепшен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:19:03 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
DimonkaЖышыпропущено... А разве EAccessViolation - не класс-наследник? И для чего их отфильтровывать? Чтобы прибивать EAccessViolation? Предполагаю, что одна из причин - не вываливаться в отладчик под IDE на каждый чих эксепшен. чтобы не вываливаться, надо делать так, чтобы они в коде не возникали. А если возникли, то разбираться и устранять Имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:34:50 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
schi> raise ELoginError.Create... Спорить не буду, пусть будет так. Просто это очень далеко от уровня ТСа. Ему до этого ещё расти и расти. На сейчас ему нужно просто работающий код научиться писать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:45:20 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
DimonkaЖышыпропущено... А разве EAccessViolation - не класс-наследник? И для чего их отфильтровывать? Чтобы прибивать EAccessViolation? Предполагаю, что одна из причин - не вываливаться в отладчик под IDE на каждый чих эксепшен. Хорошо бы узнать у самого коллеги schi... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:53:20 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
defecatorDimonkaпропущено... Предполагаю, что одна из причин - не вываливаться в отладчик под IDE на каждый чих эксепшен. чтобы не вываливаться, надо делать так, чтобы они в коде не возникали. А если возникли, то разбираться и устранять Имхо Разные случаи бывают. Например, наш разлюбимый фастрепорт генерирует имена компонентов без проверки на существование такого же, ловит эксцепшн и модифицирует имя, пока не нарвется на свободное... Сие выливается в нервный тик у девелоперов, которые в дизайнтайме выполняют копипасте элементов отчета... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 12:57:51 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
ЖышыDimonkaпропущено... Предполагаю, что одна из причин - не вываливаться в отладчик под IDE на каждый чих эксепшен. Хорошо бы узнать у самого коллеги schi... Сам коллега исповедует принцип: не обрабатывай то, чего не можешь обработать, описанный тут: http://delphikingdom.ru/asp/viewitem.asp?catalogid=1392#SubSubHeader_2_6_11 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:07:53 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамПотом проверяешь if ADOQuery.RecordCount > 0 then ИМХО, так феншуйнее проверять Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:24:17 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Квейд> ИМХО, так феншуйнее проверять Я бы не сказал, хотя это дело вкуса. Но опять же, автору (и не только) это будет менее понятно и наглядно. Код должен легко читаться и быть понятен с первого раза. Желательно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:26:27 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
КвейдГаджимурадов РустамПотом проверяешь if ADOQuery.RecordCount > 0 then ИМХО, так феншуйнее проверять Код: pascal 1. Феншуйнее (и читабельнее) проверять Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:43:52 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
schiКвейдпропущено... ИМХО, так феншуйнее проверять Код: pascal 1. Феншуйнее (и читабельнее) проверять Код: pascal 1. Правда not в условном операторе читабельности не добавляет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 13:45:11 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
Против IsEmpty не возражаю, хотя он всё равно в RecordCount вырождатся. schi> Правда not в условном операторе читабельности не добавляет Да нормально смотрится. "Если не пусто". В крайнем случае, комильфобельности для, можно then-else местами поменять, хотя это будет неправильнее и не по Макконнелллу, IIRC. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:14:08 |
|
||
|
Окно авторизации Delphi
|
|||
|---|---|---|---|
|
#18+
ЖышыНапример, наш разлюбимый фастрепорт генерирует имена компонентов без проверки на существование такого же, ловит эксцепшн и модифицирует имя, пока не нарвется на свободное... Сие выливается в нервный тик у девелоперов, которые в дизайнтайме выполняют копипасте элементов отчета...Такие девелоперы ССЗБ. А подход стандартный Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2017, 14:15:52 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2042044]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
157ms |
get topic data: |
9ms |
get forum data: |
6ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 459ms |

| 0 / 0 |
