Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> 1.fsStayOnTop и 2.TPanel 
:(
    Опции темы
offline
Дата 5.3.2005, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



Мастера, помогите, у меня есть две проблемы!

1. Я хочу сделать так, что бы по нажатии кнопки на панели инструментов мое приложение было по верх всех окон или принимало обычное состояние.
Я делаю так

butFormUp – кнопка на панели инструментов. Ее стиль tbsCheck
frmMain – главная форма приложения

Код

if butFormUp.Down
 then begin
  frmMain.FormStyle := fsStayOnTop;
  butFormUp.Hint := 'Поверх всех окон';
  end
 else begin
  frmMain.FormStyle := fsNormal;
  butFormUp.Hint := 'Обычный режим';
  end;


В принципе все работает, но при переключении между режимами форма моргает (как будто перерисовывается), вот как избавится от этого неприятного моргания? Или я, что то не правильно сделал?

2. Как мне создать панель TPanel , чтобы у нее был заголовок и кнопка закрыть и она не перемещалась внутри приложения? Это типа такой когда у TPanel DragKind := dkDock и DragMode := dmAutomatic и потаскать ее во время исполнения. Вот она мне и нужна, но она таскается во время выполнения программы, а мне это не нужно, мне нужна она только в определенном месте, да и при старте приложения она выглядит как обычная панель, а модифицируется только когда ее подвигаешь, а мне нужна она уже модифицируемая при старте программы.

Заранее благодарю



PM MAIL   Вверх
_hunter
Дата 5.3.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



1 -- это нормально ( посмотри на работу Object Inspector' a )

2 -- при перемещении панель _становится_ простым окном. поэтому паказывай окно


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Girder
Дата 5.3.2005, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 31
Всего: 155



Цитата(kirilllius @ 5.3.2005, 17:21)
В принципе все работает, но при переключении между режимами форма моргает
Проверять лень... но он вроде пересоздает форму smile

1.
-Поверx(т.е. fsStayOnTop):
Код
SetWindowPos(Form1.Handle,HWND_TOPMOST,Form1.Left,Form1.Top,Form1.Width,Form1.Height,SWP_FRAMECHANGED);

-Сбрасываем (т.е. fsNormal)
Код
SetWindowPos(Form1.Handle,HWND_NOTOPMOST ,Form1.Left,Form1.Top,Form1.Width,Form1.Height,SWP_FRAMECHANGED);


2.
Код
SetWindowLong(Panel1.Handle,GWL_Style,(GetWindowLong(Panel1.Handle,GWL_Style) or WS_DISABLED or WS_SYSMENU or WS_CAPTION));



--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
Гость_kirilllius
Дата 5.3.2005, 20:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











>_hunter
так окно будет перемещаться за форму, а мне нужно показывать его внутри ее

>Girder
Большое спасибо с первым вопросом, форма действительно перестала моргать smile , а вот с панелью небольшая проблемка, она никак не реагирует на этот код

Код

SetWindowLong(Panel1.Handle,GWL_Style,(GetWindowLong(Panel1.Handle,GWL_Style) or WS_DISABLED or WS_SYSMENU or WS_CAPTION));


Она какой была такой и остается после выполнения этого кода. smile
а может я что не правильно понял


  Вверх
_hunter
Дата 5.3.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



Цитата
так окно будет перемещаться за форму, а мне нужно показывать его внутри ее

ну сделай его MDI-child - ом


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
offline
Дата 5.3.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



>_hunter
так окно будет перемещаться за форму, а мне нужно показывать его внутри ее

>Girder
Большое спасибо с первым вопросом, форма действительно перестала моргать smile , а вот с панелью небольшая проблемка, она никак не реагирует на этот код

Код

SetWindowLong(Panel1.Handle,GWL_Style,(GetWindowLong(Panel1.Handle,GWL_Style) or WS_DISABLED or WS_SYSMENU or WS_CAPTION));


Она какой была такой и остается после выполнения этого кода. smile
а может я что не правильно понял smile


Добавлено @ 20:49
>_hunter

>ну сделай его MDI-child - ом

не, так не пойдет. Мне нужно просто как плавающая панель, только что бы не плавала (не перемещалась)
PM MAIL   Вверх
_hunter
Дата 5.3.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



то, что ты называеш плавающей панелью -- простое окно. поэтому показывай окно ( вид -- тот же ) + запрети перемещения


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
offline
Дата 5.3.2005, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



А как закрепить его?
Дело в том, что у меня на форме лежит TImage (G32) который занимает весь размер формы. В него выводятся фотографии. Я положил панель на TImage и поместил в неё древо диска и список файла, ну сделал, что то типа навигатора. Вот я и хочу, чтобы этот навигатор лежал в определенном месте и не двигался, а кнопочка нужна для того, чтобы его прятать, а затем вызывать из меню или горячей клавишей. Я положил вообще то на панель, Label и кнопку, сделал вид окна, но это выглядит немного коряво и не стандартно, а хотелось бы, чтобы все выглядело идеально.

PM MAIL   Вверх
DonPager
Дата 6.3.2005, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Колдырь
**


Профиль
Группа: Участник
Сообщений: 327
Регистрация: 28.3.2003
Где: Воронеж

Репутация: нет
Всего: 2



ИМХО - если хочешь чтобы панель не перемещалась, то и "загололовок с кнопкой" там не нужен - просто сделай чтобы панель показывалась/исчезало только через менюшку или хоткей - а так - только лишее место на форме зангимать будешь ... а для "МОРЕ ФЛЕКСИБИЛИТИ" всётаки лучше мди чилд...


--------------------
кодер + лодырь = колдырь
PM MAIL ICQ Skype GTalk   Вверх
offline
Дата 6.3.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



Понятон, так у меня и есть
Цитата
показывалась/исчезало только через менюшку или хоткей
Наверное придется так и оставлять. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0614 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.