Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2010, 16:57   #1
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
Вопрос Скрыть кнопку с taskbar'а

Народ помогите. Я создаю форму для своего приложения через dll. Для создания передаю оригинальный Application. Создается все норм. Но на панели задач появляется кнопка, все бы нечего, но мне надо открыть много окон по такому методу и на таскбаре будет куча кнопок. Пытался использовать разные способы, но ничего не получается, хотя в обычном приложении прокатывает такой метод
Код:
ShowWindow(Application.Handle,sw_Hide);
А вот в dll не работает. Жду помощи
alexprey вне форума Ответить с цитированием
Старый 18.12.2010, 17:09   #2
abb777
 
Регистрация: 17.12.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от alexprey Посмотреть сообщение
Народ помогите.
Код:
ShowWindow(Application.Handle,sw_Hide);
А вот в dll не работает. Жду помощи
Ее не надо ждать. Ее надо всего лишь открыть

Цитата:
WS_EX_APPWINDOW Forces a top-level window onto the taskbar when the window is minimized.
Взято из Win32 SDK Help Delphi 7.

Не помогает?
abb777 вне форума Ответить с цитированием
Старый 18.12.2010, 17:22   #3
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

ShowWindow(Application.Handle,WS_EX _APPWINDOW)
Так???

Пробовал и с Application.Handle и с Form1.Handle все равно эффекта нет

Последний раз редактировалось Stilet; 18.12.2010 в 20:14.
alexprey вне форума Ответить с цитированием
Старый 18.12.2010, 21:15   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Я конечно понимаю, что спросить проще всего подарив форуму еще дюжину бесполезных постов !!!
Вы искать пробовали ???? DelphiWorld читали ????
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 18.12.2010, 21:44   #5
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

А читать тему пробовали???
ИСКАЛ ВЕЗДЕ СОВЕТУЮТ БЕСПОЛЕЗНЫЙ ДЛЯ DLL КОД
alexprey вне форума Ответить с цитированием
Старый 19.12.2010, 13:49   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

А указать в проекте что это длл пробовали? isLibrary := true;
ZuBy вне форума Ответить с цитированием
Старый 19.12.2010, 14:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не надо, господа, ругаться, автор прав. ДелфиВорлд не много говорит.
Если форма создается из ДЛЛ, и автору не хочется чтоб ее кнопка была на панели задач нужно просто... установить ее свойству BorderStyle:= bsSizeToolWin
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.12.2010, 17:15   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Вместо того, чтобы бездумно пытаться применить всякий код, лучше бы потратить часик и разобраться, как же работает этот код, что он делает. И понять, чем окно в DLL отличается от окна в exe.

После чего написать правильный код - будет тривиальной задачей.

http://www.gunsmoker.ru/2010/08/blog-post.html
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 19.12.2010, 19:01   #9
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

2 GunSmoker:
такое тоже читал. Но результат нулевой. Может не тот код пишу?
Код:
const
  CLSID_TaskbarList: TGUID = '{56FDF344-FD6D-11d0-958A-006097C9A090}';
 
type
  ITaskbarList = interface
  ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
     procedure HrInit; safecall;
     procedure AddTab(hwnd: Cardinal); safecall;
     procedure DeleteTab(hwnd: Cardinal); safecall;
     procedure ActivateTab(hwnd: Cardinal); safecall;
     procedure SetActiveAlt(hwnd: Cardinal); safecall;
  end;
...
procedure TForm1.CreateWnd;
 var Taskbar: ITaskbarList;
begin
  inherited;
  CoInitialize(nil);
  Taskbar:= CreateComObject(CLSID_TaskbarList) as ITaskbarList;
  Taskbar.HrInit;
  Taskbar.DeleteTab(Handle);
end;
2 Stilet:
Это конечно да, но мне нужно bsNone
Но уже по испробованным методам думаю сделать так, но я еще не сдался.
alexprey вне форума Ответить с цитированием
Старый 19.12.2010, 20:54   #10
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

(вздох)

Я вам ссылку не для того дал, чтобы вы нашли там готовый код, который "гарантировано работает!" (хотя бы потому, что его там нет). А затем, чтобы вы включили голову.

Про то, как можно включать голову для решения проблемы и написана целая статья по ссылке. Но вы умудрились всё это пропустить мимо и увидеть только код. Ну как так?

(Надо бы написать то же самое, но без кода. Может тогда дойдёт).

Конкретно: вам нужно определить, чем ваша форма в DLL отличается от формы в exe. Для этого, конечно, вам нужно неплохое знание VCL. Помимо этого, вы также поймёте, что передавать в DLL объект Application - крайне плохая идея. (ну, или я надеюсь, что поймёте)

Вот тогда у вас будет получаться нормальный код, а не абы что.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть кнопку с панели задач Vikenty Win Api 6 01.08.2010 15:06
Как скрыть кнопку sasha_prof Microsoft Office Excel 4 13.03.2010 10:14
скрыть столбцы allichka Microsoft Office Excel 9 17.02.2010 08:16
Как скрыть кнопку Volkogriz Общие вопросы Delphi 6 21.11.2008 19:07
Скрыть кнопку максимизации окна Fantom Общие вопросы Delphi 7 06.09.2008 19:39