Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5

Модерирует : ShIvADeSt

ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 4

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).

Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:09 28-06-2009 | Исправлено: psa1974, 12:00 02-02-2010
    psa1974



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3

    Цитата:
    Знатоки, помогите решить проблему.

    Что уже было сделано, в ходе чего возник вывод, что что-то не получается? Какие свои наработки в данном направлении?
    И потом, что именно не ясно - как сделать политкорректность кода доступа, или как сделать, чтоб не было некоего противного мигания?

    ----------
    У программёра есть два состояния: "Втупляю" и "Попёрло"...

    Всего записей: 438 | Зарегистр. 08-11-2005 | Отправлено: 08:59 01-04-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3

    Код:
    procedure TForm1.RunP();
    begin
      if not Loginform.connected then begin
        MessageDlg('Завершаю работу с программой', mtWarning, [mbOK], 0);
        Application.Terminate;
      end;
    end;    //
     
    в dpr

    Код:
    begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TLoginform, Loginform);
      Form1.RunP();  
      Application.Run;
    end.
     

     
    Добавлено:

    Цитата:
    проводилась его проверка на корректность в базе данных

    это уже сам. простой запрос.

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 09:13 01-04-2010 | Исправлено: greenpc, 09:29 01-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3

    Цитата:
    Имеется главная форма и форма ввода кода доступа. Список пользователей хранится в таблице Users база Firebird.  
    Как сделать, чтобы при вводе пароля в окне форма ввода кода доступа, проводилась его проверка на корректность в базе данных, и в случае, если пользователь не найден в базе - программа завершается без вывода главной формы без противного мигания.

    В главной форме в обработчике OnCreate пишешь следующее:

    Код:
     
      Try
        // Здесь делаем все необходимые действия по подготовке приложения к старту,
        // в т.ч. и отображение формы логина. В случае, если возникает необходимость
        // завершить работу приложения, так и не покзав главную форму - просто вызываем Abort
        // напр.:
        If Not ShowLoginForm Then Abort;
      Except
        Application.ShowMainForm:= False;
        Application.HandleException(Self);
        Application.Terminate;
        Exit;
      End;
     

     
    Данный код позволит не только не отображать главную форму, если пользователь нажал Cancel в форме логина, но также позволит корректно обработать различные непредусмотренные исключительные ситуации (будет отображено сообщение об ошибке и приложение закроется).

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 11:19 01-04-2010
    OOD

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как сделать чтобы при нажатии на кнопку , она перемещалась:

    Код:
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Button1.Top:=100;
    end;
     

    а при повторном нажатии параметр Button1.Top был иным?
    т.е. раз клацнул одно значение переменной Button1.Top:=100; повторно клацнул на эту кнопку значение переменной Button1.Top:=200;

    Всего записей: 3379 | Зарегистр. 20-05-2006 | Отправлено: 11:59 01-04-2010
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Button1.Top можно использовать и справа от знака присваивания. Или вам нужно случайное значение? Тогда читайте хелп по функциям Random и Randomize.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:03 01-04-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    case Button1.Top of
     100 : Button1.Top :=200;
    else Button1.Top:=100;
    end;
    или с тем же успехом if then
     
    Добавлено:
    AviDen
    Abort на onCreate не работает(точнее работет как выход из процедуры). так же например как на onShow.
    теория была на королевстве.  жизнь формы.  
     

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 12:04 01-04-2010 | Исправлено: greenpc, 12:15 01-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc, там всё как бы обёрнуто в Try..Except, так что работает влёт. Это не с королевства, это из десятка рабочих коммерческих проектов ))

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 13:13 01-04-2010
    greenpc

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen

    Код:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     try
       abort;
        lst1.ItemIndex := 1;
     except
         on e: Exception do
             Application.HandleException(Sender);
     end;  // try/except
    end;
    procedure TForm1.FormShow(Sender: TObject);
    begin
      lst1.ItemIndex := 2;
    end;
     
    lst1 - TListBox (внутри 5 строчек)
    при запуске показывает форму и ставит листбокс на 3 строчку
     

    Цитата:
    обёрнуто в Try..Except
    и что? я же не вызываю исключение.

    Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 13:45 01-04-2010 | Исправлено: greenpc, 13:49 01-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc, это, типа, первоапрелькие шутки такие или Вы в самом деле не понимаете?
     
    В моём примере, приведённом выше, всё будет работать именно так, как описано, т.е., при возникновении любого исключения в блоке Try..Except будет отображено сообщение об ошибке (Application.HandleException(Self)), будет подавлено отображение главной формы (Application.ShowMainForm:= False) и приложение завершит свою работу (Application.Terminate), после чего будет произведен выход из обработчика (Exit), дабы не выполнялся дальнейший код обработчика, если он есть.
     
    В Вашем примере (в котором секция Except..End совсем не такая, как в моём) действительно форма будет показана, т.к. 1) при вызове abort будет сгенерировано исключение EAbort, 2) оно будет перехвачено обработчиком "on e: Exception do ..." (т.к. EAbort есть наследник от Exception) 3) ничего не произойдёт, т.к. Application.HandleException просто игнорирует EAbort, в чём легко убедиться из исходников, плюс это следует и из самого определения EAbort ("тихое" исключение).
     
    Т.о., в обработчике TForm1.FormCreate значение lst1.ItemIndex изменено не будет. А в TForm1.FormShow - напротив, будет установлено в 2.
     
    Добавлено:
    upd:

    Цитата:

    Цитата:
    обёрнуто в Try..Except  
    и что? я же не вызываю исключение.

    А Abort - это уже не исключение?

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 14:51 01-04-2010
    tiberium23



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Delphi 7 HELP
    Здарова народ!!! Нужна помощ. Нужно помочь сделать лабы по делфи.
    Буду очень благодарен))))
    Лаба №1
     
    Лаба №2
     
    Лаба №3
     
    Лаба №4
     
    Лаба №5
    Если будет не сложно прошу сделать "каждую" строку с коментарием. Когда препод
     
    проверяет лабу он спрашивает, что как сделал, за что отвечает эта команда (строка) и тд и
     
    тп))) Спасибо!!!

    Всего записей: 219 | Зарегистр. 11-10-2009 | Отправлено: 00:01 02-04-2010 | Исправлено: tiberium23, 00:02 02-04-2010
    volser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tiberium23
    Сколько денег?

    Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 00:29 02-04-2010
    jonikDk



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tiberium23
    просто жесть ... или это первоапрельская шутка ...

    Всего записей: 1603 | Зарегистр. 01-03-2004 | Отправлено: 12:42 02-04-2010
    apnss

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tiberium23
    стучи в личку. думаю договоримся

    Всего записей: 708 | Зарегистр. 26-02-2002 | Отправлено: 01:48 03-04-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    greenpc
    AviDen
    Спасибо за участие! Помог вариант с запуском Loginform. Проблема в том что используется модуль данных, а когда создается главная форма, модуль данных еще не создан!

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 04:34 03-04-2010
    AviDen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3, так Вам ничего не мешает в .dpr-файле строку, в которой создаётся модуль данных, поместить перед строкой, в которой создается главная форма.

    Всего записей: 316 | Зарегистр. 05-06-2007 | Отправлено: 10:35 03-04-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AviDen
    Спасибо, попробую

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 13:51 03-04-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Коллеги! Помогите убрать мусор из базы Firebird. Использую компонент IBDAC. Как програмно сжать  базу Firebird?

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 02:15 06-04-2010
    Tantos



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    backup/restore через TIBCBackupService/TIBCRestoreService в Professional-редакции.

    ----------
    Чем больше узнаю людей, тем больше люблю компьютеры.

    Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 04:36 06-04-2010
    EugeneBoss3



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tantos
    Пример настройки параметров backup/restore возможно?

    Всего записей: 247 | Зарегистр. 15-09-2009 | Отправлено: 05:07 06-04-2010
    Tantos



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    EugeneBoss3
    Я могу сказать, как сделать это через стандартный gbak. А самих компонентов у меня нет - FIBPlus использую.

    ----------
    Чем больше узнаю людей, тем больше люблю компьютеры.

    Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 10:25 06-04-2010
       

    Страницы: 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 5
    ShIvADeSt (19-05-2010 05:14): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=11215


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru