Страница 1 из 1

К вопросу об интерфейсе

Добавлено: 02 фев 2009, 17:02
PROF
Чую, должен быть какой-то простой способ показывать на экране сообщения в виде окна типа "Ждите, идет...". На вполне оправданный вопрос "Зачем тебе это?" отвечу "Нужно". Вот один из примеров: запуск приложения сосотоит из нескольких этапов загрузки. Логично, чтобы на экране в момент запуска звучали сообщения типа "Подключается база данных", "Загружаются настройки программы" и т.д. Помогите, кто может.

Re: К вопросу об интерфейсе

Добавлено: 02 фев 2009, 21:52
WildSery
Как делал, что не получилось? Или ты просишь за тебя программу написать?
Если ты подключаешь БД, так и пиши в статусе, "подключаю БД", если открываешь запрос и читаешь настройки, аналогично. Никаких сложностей не вижу.

Re: К вопросу об интерфейсе

Добавлено: 03 фев 2009, 13:53
PROF
Делал то все самым простым способом. Создал диалоговое окно WaitDlg без конпки, которое, в принципе, предлагаю назвать монологовым. Окно создается заранее при запуске приложения, и высвобождается из памяти при закрытии (создавать динамически каждый раз при обращении пробовал, не получилось). Создал функцию со входным параметром WCAPTION. WCAPTION:="Сообщение типа подождите...". Если WCAPTION:="" - окно закрывается. Проблем никаких нет, если действительно ждать и ничего не делать. Как только пользователь снимает фокус с окна (щелкнув куда-нибудь по экрану, или откроет другое окно), начинаются проблемы. Монолог-окно не закрывается, вернее закрыть можно по FREE. Для наглядности вот текст функции ShowWait(). Refresh содежимого окна - еще одна побочная проблема.

Код: Выделить всё

var
  WaitDlg: TWaitDlg; // TWaitDlg класс от TForm;

procedure ShowWait(WCaption: string);
begin
  if WCaption='' then
  begin
    if WaitDlg.CanFocus then
      if WaitDlg.Visible
        then WaitDlg.Close;
  end else
  begin
    WaitDlg.WaitLabel.Caption:=WCaption;
    if not WaitDlg.Visible then WaitDlg.Show;
    WaitDlg.Refresh; WaitDlg.WaitLabel.Refresh;
  end;
end;

Re: К вопросу об интерфейсе

Добавлено: 03 фев 2009, 17:38
WildSery
Application.ProcessMessages штоле?
Твои вопросы к IB/FB, да и вообще к СУБД не имеют никакого отношения, потому рекомендую пойти на форум по Дельфи.