Форум: "Потрепаться";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
ВнизОцените компонент Найти похожие ветки
← →
Gero © (2005-10-28 22:10) [0]Оцените компонент
Прошу посмотерть и дать оценку следующему компоненту:
TGrMDIBar — панель с кнопками для переключения между MDI-окнами.
Обладает довольно большим количеством настроек.
Компонент достачтоно кинуть на форму, все остальное он делает сам.
Вот демо-приложение, демонстрирующее его возможности:
http://dmclient.fatal.ru/_files/grmdidemo.zip
Кроме всего прочего полностью поддерживаются XP-темы, присутствует OwnerDraw.
Соавтором компонента является Ашот Товмасян, более известный вам как Kaif.
Любая критика приветствуется.
← →
Eraser © (2005-10-28 22:19) [1]
> Gero © (28.10.05 22:10)
Интересная весч, на сколько знаю, конкурентов нету (по крайней мере заслуживающих внимания).
← →
Piter © (2005-10-28 22:34) [2]Конкуренты точно есть.
Надо только на torry.net зайти и набрать что-нибудь типа TTabControl, MDI...
← →
Eraser © (2005-10-28 22:44) [3]
> Piter © (28.10.05 22:34) [2]
Таб контролов полно, а полноценных taskbar"ов не видел.
← →
Джо © (2005-10-28 22:52) [4]Похоже, хорошая штука.
← →
Kolan © (2005-10-28 22:56) [5]Понравилось. Так исходники не дашь, на продажу готовишь?
← →
Kolan © (2005-10-28 22:58) [6]А кнопочку закрытия у FierFox позаимствовал? :)))
← →
Piter © (2005-10-28 23:02) [7]Kolan © (28.10.05 22:56) [5]
Так исходники не дашь
не даст :)
← →
Gero © (2005-10-28 23:15) [8]
> Так исходники не дашь, на продажу готовишь?
Угу, хотелось бы )
Впереди самый страшный этап — написание документации :)
> А кнопочку закрытия у FierFox позаимствовал? :)))
;)
← →
Умник (2005-10-28 23:17) [9]Не смотрел, потому что такое не надо. Ни бесплатно, ни за деньги.
← →
Gero © (2005-10-28 23:32) [10]Вот пара скриншотов демки со включенными темами:
http://dmclient.fatal.ru/_files/grmdi1.png — XP Blue
http://dmclient.fatal.ru/_files/grmdi1.png — XP Silver (много открытых окон)
← →
Gero © (2005-10-28 23:34) [11]
> http://dmclient.fatal.ru/_files/grmdi1.png — XP Silver (много
> открытых окон)
http://dmclient.fatal.ru/_files/grmdi2.png — XP Silver (много открытых окон)
← →
Kerk © (2005-10-28 23:37) [12]Вот скриншоты очень кстати. :)
И без стилей тоже, если можно, выложи :)
← →
Gero © (2005-10-28 23:44) [13]
> И без стилей тоже, если можно, выложи :)
Конечно, пожалуйста:
http://dmclient.fatal.ru/_files/grmdi3.png
http://dmclient.fatal.ru/_files/grmdi4.png
http://dmclient.fatal.ru/_files/grmdi5.png
← →
Zeqfreed © (2005-10-29 00:07) [14]Gero © (28.10.05 22:10)
Создал два новых дочерних окна (кнопка New). Главное и одно из дочерних окон развернул. При переключении с развернутого дочернего на нормальное через кнопки на панели заметно мерцание кнопок в заголовке днормального дочернего окна, да и вообще не понятно - оно активизируется или нет. Настройки не трогал. Тема XP Silver.
Так должно быть? Или глючит кого-то из нас двоих? (компонент/меня)
=)
← →
Zeqfreed © (2005-10-29 00:19) [15]Zeqfreed © (29.10.05 0:07) [14]
От количества дочерних окон вроде ничего не меняется, от изменения настроек вроде тоже. Я так полагаю, что я первый у кого такое безобразие, но наверно я такой не единственный :)
Ещё было бы неплохо при перетаскивании кнопок как-то указывать позицию в которую они будут вставлены, а то не удобно так.
Ну а в целом, свою, правда достаточно узкую, задачу хорошо выполняет.
← →
Gero © (2005-10-29 01:00) [16]
> При переключении с развернутого дочернего на нормальное
> через кнопки на панели заметно мерцание кнопок в заголовке
> днормального дочернего окна
Это глюк MDI. Проявляется при включенных темах. Мой компонент частично его нейтрализует (без него кроме кнопок мерцает еще и рамка окна, можешь проверить на любом другом приложении, использующем MDI).
> да и вообще не понятно - оно активизируется или нет
Это потому что окна одинаковые )
> Ещё было бы неплохо при перетаскивании кнопок как-то указывать
> позицию в которую они будут вставлены, а то не удобно так.
Да, это планируется.
Спасибо за критику!
← →
Gero © (2005-10-29 01:00) [17]Удалено модератором
← →
Defunct © (2005-10-29 01:37) [18]> Gero ©
> Оцените компонент
хм.. весьма не дурно.
> Любая критика приветствуется.
Хочешь критики - дай хоть dcu. А так - нечего критиковать, то что ты выложил смотрится очень хорошо и функционально пОлно.
← →
jack128 © (2005-10-29 01:51) [19]От TBX, видимо, унаследовал глюк. При клике на Open Document появляется диалог открытия файла. Поводи этим диалогом над формой..
← →
GuAV © (2005-10-29 02:11) [20]Я бы требовал:
- Опция: умение принять фокус для клавиатурного переключения (влево-вправо, PgDn,PgUp)
- MDI или нет, при клике по окну, в т.ч. для показа системного меню, окно должно становится активным. Т.е. при показ сист. меню без переключения к выбранному окну мне совершенно не нравится.
Существует ли предок, который реализует ту же визуальность, но без MDI окон ?
procedure ScrollBottom;
procedure ScrollTop;
это что ?
Не хватает объявления TGrBarButton в Component info
← →
Gero © (2005-10-29 11:10) [21]
Defunct © (29.10.05 01:37)
> Хочешь критики - дай хоть dcu.
Пожалуйста:
http://dmclient.fatal.ru/_files/grmdi.zip
В архиве dcu для Delphi6 и Delphi7 и демо-программа.
Если нужны dcu без вылезающих сообщений, могу выслать на мыло.
jack128 © (29.10.05 01:51)
> От TBX, видимо, унаследовал глюк.
Хм. А TBX здесь причем?
> При клике на Open Document появляется диалог открытия файла.
У меня в демке нет OpenDocument. И диалог нигде не появляется...
Короче, ничего не понял.
GuAV © (29.10.05 02:11)
> - Опция: умение принять фокус для клавиатурного переключения
> (влево-вправо, PgDn,PgUp)
Именно фокус? А чем недостаточен функционал наподобии Ctrl+Tab?
> - MDI или нет, при клике по окну, в т.ч. для показа системного
> меню, окно должно становится активным. Т.е. при показ сист.
> меню без переключения к выбранному окну мне совершенно не
> нравится.
OK, сделаем опционально.
> Существует ли предок, который реализует ту же визуальность,
> но без MDI окон ?
Нет, все завязано на окнах.
> procedure ScrollBottom;
> procedure ScrollTop;
>
> это что ?
Если ScrollType = stPage, то переключение происходит не влево-вправо, а вверх-вниз.
> Не хватает объявления TGrBarButton в Component infoDeclaration:
TGrMDIBar = class(TToolWindow)
?
← →
lookin © (2005-10-29 11:17) [22]А нельзя ли переключатели на таскбаре еще опционально заменять на пункты меню во вкладке типа Window? И добавить туда же пункты подменю "Скрыть/показать все" и пр. Лично у меня похожая схема управления окнами, но у меня еще задействован Toolbar, и я не хочу его дополнять кнопками с именами окон, зато хочу управлять окнами через главное меню...
← →
Gero © (2005-10-29 11:39) [23]
> lookin © (29.10.05 11:17)
Ну здесь же вся суть компонента в кнопках на таскбаре. Ну будет кнопок — не будет и компонента.
← →
Anatoly Podgoretsky © (2005-10-29 12:14) [24]Мне внешний вид нравится, не похоже на таскбар, а если он еще только на верху, совсем не нравится.
Насчет конкурентов они есть и сильные.
Насчет самого страшного этапк, тебе только кажется, самый страшный это поддержка пользователей.
← →
lookin © (2005-10-29 12:18) [25][23] Gero © (29.10.05 11:39)
Так ведь кнопки/меню можно сделать опциями. По умолчанию - кнопки, по желанию - меню... Компонент никуда ведь от этого не денется, зато будет все же более функциональным...
← →
Gero © (2005-10-29 12:25) [26]
> не похоже на таскбар, а если он еще только на верху, совсем
> не нравится.
Я старался сделать схожесть с оперой.
А почему не похоже? Вы имеете ввиду с включенными темами?
Да, наверное, имеет смысл сделать опционально и такую прорисовку.
> а если еще только на верху, совсем не нравится.
Ну наверху он потому что стоит Align = alTop. Где его разместить — дело программиста.
> Насчет конкурентов они есть и сильные.
Можете навскидку назвать кого-нибудь сильного?
← →
Gero © (2005-10-29 12:26) [27]
> lookin © (29.10.05 12:18)
А WindowMenu чем не устраивает?
← →
lookin © (2005-10-29 12:27) [28][27] Gero © (29.10.05 12:26)
А у WindowMenu нет возможностей таскбара?
← →
Anatoly Podgoretsky © (2005-10-29 12:28) [29]Gero © (29.10.05 12:25) [26]
А ты делай схожим не с оперой, а с Виндоус. Или тогда не называй это таскбар или делай похожим, как по внешнему виду, так и по поведению, остальное как альтернатива. Ведь не для своего же удовлетворения, а для конечных пользователей.
Не назову, поскольку постороннии компоненты не использую, а информация случайная из конференций. Попробуй сам поискать у лидеров и на файловых архивах, начиная с Торри.
← →
Question (2005-10-29 12:29) [30]2 Gero
расскажите о вкладе соавтора
← →
Gero © (2005-10-29 12:35) [31]
Anatoly Podgoretsky © (29.10.05 12:28)
> делай похожим, как по внешнему виду, так и по поведению,
> остальное как альтернатива.
Да, вероятно так и будет. Спасибо.
> Попробуй сам поискать у лидеров и на файловых архивах, начиная
> с Торри.
На торри видел пару подобных комопнентов, скачивал демки — сама убогость.
← →
Gero © (2005-10-29 12:36) [32]
> Question (29.10.05 12:29)
> расскажите о вкладе соавтора
Если соавтор захочет, он сам расскажет.
← →
jack128 © (2005-10-29 12:44) [33]Gero © (29.10.05 11:10) [21]
Хм. А TBX здесь причем?
У меня в демке нет OpenDocument. И диалог нигде не появляется...
Короче, ничего не понял.
lol. извени, просто я скачал твою, а потом запустил tbx"овскую(в одной папке лежали), которая тоже кнопки для mdi окон в bar пихает, поэтому и спутал :-)
Gero © (29.10.05 11:10) [21]
> Не хватает объявления TGrBarButton в Component info
Declaration:
TGrMDIBar = class(TToolWindow)
?
нет, все новые свойства BAR"a ты указал, народ интересуется какие есть свойства у кнопок на баре? Например, меняется ли название кнопки при смене заголовка соответствующего окна? Если изменяеся, то можно ли этот функционал отключить и тд и тп..
← →
Ломброзо © (2005-10-29 12:47) [34]Кстати, есть смежный вопрос. Пусть мы имеем, к примеру, приложение для работы с базой данных, исполненное в MDI. Из каждой корневой MDI-формы может вызываться множество дочерних форм, а из тех в свою очередь - множество внучатых и так далее. Каким образом инициализировать эти дочерние формы, передавая им контекст родителя (например, идентификатор текущей записи)? Самое простое решение - в лоб - это передавать дочерним формам некие параметры в конструкторе или при помощи свойств. Однакож по опыту - это очень кропотливый и трудоёмкий процесс. Я подумал вот что: ведь каждое "дерево" иерархически связанных форм - это некое подобие apartment`a в COM (другая аналогия - нить, thread, поток, который может получать доступ к TLS), обладающее своим контекстом. Отчего бы не реализовать некий класс, являющийся контейнером для параметров контекста каждой иерархии форм? Таким образом, каждая создаваемая в иерархии родительская форма при инициализации может записывать в контекст любые данные, причём должна быть гарантия, что дочерняя форма, обращаясь к этому контексту, получит доступ к данным именно родителя (а также данным других форм этой же иерархии), а не другой одноуровневой формы этого же приложения.
Как бы вот реализовать эту идею программно?
← →
Anatoly Podgoretsky © (2005-10-29 12:47) [35]Gero © (29.10.05 12:35) [31]
Мое участие ограничено просмотром и анализом скриншотов.
Жаль что не могу подсказать лидеров, память у меня короткая.
← →
Gero © (2005-10-29 12:50) [36]
jack128 © (29.10.05 12:44)
> нет, все новые свойства BAR"a ты указал, народ интересуется
> какие есть свойства у кнопок на баре?
Сорри, был невнимателен. Да, нужно будет включить. Спасибо.
> меняется ли название кнопки при смене заголовка соответствующего
> окна? Если изменяеся, то можно ли этот функционал отключить
Меняется. Думаешь, есть надобность в отключении?
← →
GuAV © (2005-10-29 12:58) [37]
>> Не хватает объявления TGrBarButton в Component info
>
>Declaration:
> TGrMDIBar = class(TToolWindow)
> ?
Не это, я про property Buttons[Index: Integer]: TGrBarButton read; - что можно получить из TGrBarButton ?
> function ButtonRect(Index: Integer): TRect;
ИМХО лучше GetButtonRect .
> function Dragged: Boolean;
У TControl есть function Dragged: Boolean; ?
> function ButtonCount: Integer;
А это - public property ButtonCount: Integer read ;
> > - Опция: умение принять фокус для клавиатурного
>переключения
>> (влево-вправо, PgDn,PgUp)
>
> Именно фокус? А чем недостаточен функционал наподобии
> Ctrl+Tab?
Тем, что неочевидно, кто следующий.
Идея ещё такая - заместо апдауна если не помешается - шеврон ( >> ), как в панелях инструмента IE. Хотя не знаю надо ли, это совсем другое будет.
← →
Gero © (2005-10-29 13:27) [38]> lookin © (29.10.05 12:27)
> А у WindowMenu нет возможностей таскбара?
Что-то не очень тебя понимаю. WindowMenu это одно, таскбар — другое. Использовать и то и то никто ведь не мешает.
GuAV © (29.10.05 12:58)
> Не это, я про property Buttons[Index: Integer]: TGrBarButton
> read; - что можно получить из TGrBarButton ?
Да я понял. Но вобще-то получить немного можно:
property MDIBar: TGrMDIBar read FMDIBar;
property State: TGrButtonStates read FState;
property Form: TForm read FForm;
property Index: Integer read GetIndex write SetIndex;
function Active: Boolean;
Вот и все.
> У TControl есть function Dragged: Boolean; ?
У TControl? Нет вроде.
> ИМХО лучше GetButtonRect .
Согласен.
> > function ButtonCount: Integer;
> А это - public property ButtonCount: Integer read ;
Можно и так, хотя особой разницы не вижу.
> Тем, что неочевидно, кто следующий.
SwitchMode = smBar и кнопки переключаются в порядке расположения на панели.
> Идея ещё такая - заместо апдауна если не помешается - шеврон
> ( >> ), как в панелях инструмента IE.
Я подумаю на этим. Возможно, сделаю.
Благодарю за критику.
← →
Zeqfreed © (2005-10-29 13:32) [39]Gero © (29.10.05 1:00) [16]
> Это глюк MDI. Проявляется при включенных темах. Мой
> компонент частично его нейтрализует (без него кроме
> кнопок мерцает еще и рамка окна, можешь проверить на
> любом другом приложении, использующем MDI).
Да, вроде везде такой эффект. Только вот если переключать через Ctrl-Tab то никакого мерцания нет, в чем эти способы переключения отличаются?
← →
jack128 © (2005-10-29 13:38) [40]Gero © (29.10.05 12:50) [36]
Думаешь, есть надобность в отключении?
Конечно. Возможность кастомизации всегда преветствуется, а на реализицию этой фишки, думаю, от силы двух строчек кода достаточно будет ;)
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.054 c