1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Кнопку формы в панельку

Тема в разделе "Delphi - программирование", создана пользователем stalker780, 11 дек 2003.

Статус темы:
Закрыта.
  1. stalker780

    stalker780 Гость

    Репутация:
    0
    procedure TForm2.FormCreate(Sender: TObject);
    begin
    SetWindowLong(handle, GWL_EXSTYLE, (GetWindowLong(handle, GWL_EXSTYLE) or WS_EX_APPWINDOW));
    end;

    Добавляем кнопку на панельку, но потом я не могу вернуться на глвную форму - она не активизируется.
    Как можно обойти эту проблему?

    Надо сделать что-то типа форм в TheBat "Прием почты" и "Редактирование сообщений", там они работают нормально.
     
  2. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    stalker780
    Что значит?
    всё активизируется. только при минимизации окна кнопка исчезает и всё. Поясни более конкретно что не активизируется и в каком случае?
     
  3. stalker780

    stalker780 Гость

    Репутация:
    0
    Сори, не правильно изложил <_<
    Конкретнее:
    Есть проект с 2-мя формами (Form1 и Form2 и т.д.).
    При запуске приложения создается только Form1.
    На Form1 есть Button1.
    Button1 создет Form2 и отображает ее.
    На создание Form2 стоит вышеуказанная процедура.

    1. Мы запускаем приложение, в таскбаре появляется кнопка приложения (она же главной формы Form1).
    2. Кликаем на Button1
    3. Создается Form2 и выводится в таскбар.
    4. При попытке сделать Form1 активным нажатием на кнопку в таскбаре мы не получаем нифига.

    Вот...

    Мораль:
    Нажатие на кнопку приложения в таскбаре активизирует приложение, но НЕ главную форму, поскольку активная форма приложения уже есть.

    Цель:
    1. Надо сделать, чтобы нажатие на таскбаре на кнопку приложения активизировало не только приложение, но и главную форму.
    2. Чтобы при сворачивании приложения (главной формы Form1) кнопки других форм не прятались.
    3. Чтобы все это было в одном приложении.
     
  4. admin

    admin Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2003
    Сообщения:
    2.754
    Симпатии:
    1
    stalker780
    Брр. Жаль. Ухожу чейчас. Завтра гляну что там такое у тебя.
     
  5. Sir Alex

    Sir Alex Гость

    Репутация:
    0
    2 Stalker780
    Вот выдержка из MSDN:
    Другими словами нам надо создать окно без родителя:
    открываем юнит со второй формой, в секцию interface добавляем:
    Код:
      protected
       procedure CreateParams(var Params: TCreateParams); override;
    в секцию implementation, добавляем:

    Код:
    procedure TForm2.CreateParams(var Params: TCreateParams);
    begin
     inherited CreateParams(Params);
     Params.WndParent:=0;
    end;
    И все, никаких SetWindowLong использовать не надо.

    Успехов!
     
  6. stalker780

    stalker780 Гость

    Репутация:
    0
    Sir Alex
    Это уже больше похоже на то, что мне надо, но здесь еще один глюк вылез.

    При сворачивании главной формы приложения, в таскбаре пропадает ее кнопка вообще и развернуть соответственно я ее уже не могу :(

    Пробовал проделать с Form1 ту же процедуру + скрыть кнопку аппликухи вот так:
    program Project1;
    uses
    Forms,
    Windows,
    Unit1 in 'Unit1.pas' {Form1};

    {$R *.RES}

    var
    ExtendedStyle : integer;

    begin
    Application.Initialize;
    ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE); SetWindowLong(Application.Handle, GWL_EXSTYLE, ExtendedStyle or WS_EX_TOOLWINDOW {AND NOT WS_EX_APPWINDOW});
    Application.CreateForm(TForm1, Form1);
    Application.Run;
    end.

    Но тогда я главную форму вообще не могу свернуть :)
     
  7. Guest

    Guest Гость

    Репутация:
    0
    2 stalker780
    Нифига не понял.... То, что я тебе написал, работает как часы! Посмотри у себя код, может ты какие-то лишние команды выполняешь. У меня и главная форма и Form2 сворачиваются/разворачиваются без проблем.
     
  8. Sir Alex

    Sir Alex Гость

    Репутация:
    0
    Блин, дурацкая авторизация.... это я - Sir Alex
     
  9. stalker780

    stalker780 Гость

    Репутация:
    0
    Только что попробовал на голом проекте, вроде работает... Наверно правда, я намутил что-то, а может компоненты, которыя я юзаю...

    Но в любом случае спасибо, буду разбираться дальше.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей