Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » создание интерфейса (пользователя) прикладной программы(GUI)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5

Открыть новую тему     Написать ответ в эту тему

akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ссылки по теме
 
http://usability.ru/
самый известный в рунете ресурс, серьезный подход, масса информации
 
http://www.info-system.ru
Раздел "Интерфейс" представляет информацию по проектированию и разработке пользовательского интерфейса к программным продуктам.
 
http://www.uibook1.ru/
Книга по проектированию интерфейса приложений (pdf)
 
MSDN по теме:
http://msdn.microsoft.com/library/en-us/dnwue/html/ch14e.asp
точные (в пикселах, размеры кнопок и прочих контролов для визуального проектирования)
 
---
просьба делать все аккуратно и однообразно: ссылка/краткое описание
-akaGM

 
 
 
***************************************************************************
 
хочу создать тему для обсуждения...
 
т.к. сам не специалист (в активе только два GUI под dos на Turbo- и SuperVision) , но по долгу службы встала такая проблема, то надеюсь получить (получать) здесь ответы на свои вопросы, а также реальные практические рекомендации более опытных коллег, кот. возможны именно только в общении...
чтение же специальной литературы (эргономика, юзабилити, то, се) -- вещь, конечно, оч. полезная, но... для моих, в общем-то, второстепенных задач -- сами понимаете...
только в качестве хобби... хотя сейчас гуи для меня и есть хобби...
 
ведущийся мой проект -- серьезная научная программа, которая (теперь) предполагает интерфейс... если будут нужны подробности, то, конечно же, их сообщу...
 
итак, что предлагается к обсуждению:

- общие рассуждения "на тему", от универсальности к конкретике...
- вопрос-ответ, практика, "как мне сделать?"
- какую библиотеку под такой вот компилятор мне лучше использовать?
  например, для неопределившихся (общие положения, не перекрывающиеся с другими
  темами форума)
- SDI vs MDI -- когда и зачем?
- взаимодействие посредством toolBars, Menus, hotKeys -- что лучше и в каких случаях или      
  все в одном...
- деревья, списки и таблицы -- наглядность и/или удобство? где и когда?
- докинг, плавающие окна или жесткое местоположение...
- выделять или не выделять? "приборно-панельно-бумажные" цвета, цветовые схемы и        
  палитры
и т д

 
сам я использую VCL на Delphi, т.к. считаю эту систему в большинстве случаев истинной RAD-cистемой
 
понятно, что интерфейс определяется конкретным приложением и говорить о его универсальности можно с некоторой натяжкой...
можно, конечно, делать архиватор со скинами... кстати, это и делают...
 
предлагаю только исключить из обсуждения интерфейсы граф- и текстовых редакторов, а также медиа проигрывателей -- что тут еще можно сказать?
 
 
итак, в качестве затравки:
 
Дано:
-------
приложение --
счет, ввод/вывод данных, визуализация результатов, несколько (4-5) разнородных форм
Надо:
------
SDI Или MDI?
 
 
------------------------------------------------------------
нужна ли такая тема,
что скажете, коллеги?

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 16:17 26-02-2005 | Исправлено: akaGM, 12:59 11-09-2023
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот набросок...
 
   
 
full size (30 KB)
 
 
-----------------
+ сюда дубль вопроса из компонент:
 
 
есть ли такой компонент (панель, форма, ещё что), который имеет своим заголовком что-то подобное окошку самой среды студии (пришпилька + крест закрытия)?
 
   
 
я знаю, такое есть в ДевЕкспрессе, а в стандарте vcl?
 
потому что я только что обнаружил для себя компонент TDockTabSet...
вот так хорошо я знаю штатные компоненты Дельфи...
гы
 
+
 
вот кто рисует "докируемый" каптион в примере из
demos/DelphiWin32/VCLWin32/Docking/dockex.dpr
?

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 15:55 02-10-2006 | Исправлено: akaGM, 21:07 02-10-2006
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
для желающих, только что нарыл, супер!
 
http://bdn.borland.com/article/33446

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 23:08 02-10-2006
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто как таб-интерфейс реализует?
 
Я на главную форму поместил TabControl и TJvEmbeddedFormPanel (JVC). На "дочерние" формы ложится TJvEmbeddedFormLink, с помощью которого "дочерняя" форма привязывается к главной. Дочерняя я беру в кавычки, т.к. FormStyle таких форм остается fsNormal, но отображаются они внутри главной формы. При создании дочерней формы я создаю Таб. При активации Таба присваиваю EmbeddedFormLink активируемой формы соответствующему свойству (FormLink) EmbeddedFormPanel.
Пришлось написать свои функции управления переключением Табов и следить за корректным уничтожением форм и соответсвующих табов.
 
От чистого mdi отказался в пользу Таб-интерфейса по той причине, что mdi делает доступным только одну форму и пользователь не знает ни кол-во созданных форм (читай, открытых окон), ни какие именно формы открыты (сравните с заголовками Табов). Кроме того, активировать Таб (а значит и форму) гораздо удобнее и быстрее, чем активировать дочернюю форму в mdi приложении.
Да и Microsoft рекомендует отказываться от построения mdi приложений. Заменять другим дизайном. Новые продукты MS построены с помощью Табов.
 
Что касается фреймов. Пересмотрю справку и демки.
Я строю сейчас в отдельных формах еще и потому, что так удобнее хранить логику работы отдельной формы в том же модуле, в котром форма описана.
 
Добавлено:
Почитал справку, посмотрел демку.
Все таки не хватает фреймам событий. Те же OnShow, OnActivate...

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 13:34 25-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Некоторые мысли по интерфейсу (навеяно Пиаже):
http://www.sql.ru/forum/actualthread.aspx?bid=3&tid=101463&pg=2&hl=#2473992
 

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 15:34 25-10-2006
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
afiget

Цитата:
Кто как таб-интерфейс реализует?

скорее уж не реализует, а использует...
везде они одинаковы...
кстати, я тоже от мди в их пользу отказался...
 
вот кто бы мне на пальцАх объяснил преимущества фреймов...
буде таковые имеются...
 
oan42
а кто такой Пиаже?

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 17:02 25-10-2006 | Исправлено: akaGM, 17:03 25-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а кто такой Пиаже?
http://terpsy.ru/page/315.shtml
http://medbook.h11.ru/imuno/psyho1/page10.html

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 18:42 25-10-2006
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
akaGM
Как именно ты программируешь Табы? Может специальный удобный компонент уже появился, который на основве данных об открытых окнах создает табы и позволяет прозрачно управлять этим всем чудом?

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 19:32 25-10-2006
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
oan42
однако...
спас...
 
afiget
наверное, я не так плотно использую табы как ты...
я люблю Raize -- их и юзаю...
 
__http://www.raize.com
 

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 20:01 25-10-2006 | Исправлено: akaGM, 20:03 25-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, TrzPageControl от Raize - это класс, ничего лучшего пока не видел.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 21:24 25-10-2006
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Да, TrzPageControl от Raize - это класс

TrzPageControl = class
гы
 
хотя, с некотрых пор я и sidebar полюбил...
вот вверху _этой_ страницы скрин -- пример использования raize groupbar'a outlook стиля
(onOpen/onClose/onCreate вполне хватает)
таких компонентов сейчас до фигища -- модный хр-стиль task pane, например...

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 21:34 25-10-2006
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
TrzPageControl от Raize - это класс, ничего лучшего пока не видел.

Сравнивал с  
TabSet, DockTabSet (BDS 2006)
JvgTabControl (JVC)
cxTabControl (DevExpress)
?
 
или просто не пробовал другие? :)

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 14:28 26-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Много других либ я пробовал, потому как долго искал хороший PageControl.
Из твоего списка - только DevExpress, так ему очень далеко до TrzPageControl.
 
А где живет сие чудо JvgTabControl (JVC) или имеется в виду JVCL,
так там тоже нет JvgTabControl.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 15:17 26-10-2006
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А где живет сие чудо JvgTabControl (JVC) или имеется в виду JVCL,  так там тоже нет JvgTabControl.

Да, имеется ввиду JVCL. JVCL Globus 2. Там рядом PageControl и TabControl. Очень похож по функциональности на TabControl от DevExpress.
 

Цитата:
Из твоего списка - только DevExpress, так ему очень далеко до TrzPageControl.

Если не сложно, что внем такого хорошего (тебе понравилось) ,чего нет в cxTabControl?

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 15:29 26-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
IMHO, DevExpress (годичной давности) по сравнению с Raise в разрезе PageConrol:
 
Минусы DevExpress:
1) Нельзя менять местами Tabs мышкой по Drag and Drop.
2) В TcxTab нет свойства, аналогичного DisabledIndex
3) Гораздо меньше свойств для изменения внешнего вида Tab.
 
Плюсы DevExpress:
1)Библиотека более универсальная, динамично развивается.
2) В новых версиях видов TabStyle прибавилось.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 17:33 26-10-2006
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
akaGM

Цитата:
вот кто бы мне на пальцАх объяснил преимущества фреймов...
буде таковые имеются...  

 
Я активно использую фреймы. Удобства, на пальцах, следующие:
Фрейм можно рассматривать как Panel, размещая на нем контролы и прописывая для них обработчики - это понятно. Но все это в отдельном юните.  Итак, логика фрейма прописывается в отдельном юните - это раз
Затем ты один этот фрейм можешь натянуть в любом количестве форм, юзая его как обычный компонент - это два
Ты можешь наследовать фрейм, как форму, это самое главное, имхо, - у меня так несколько больших продуктов сделано. Попробуй-ка TPanel понаследуй, почувствуй так сказать, разницу
 
afiget

Цитата:
Почитал справку, посмотрел демку.
Все таки не хватает фреймам событий. Те же OnShow, OnActivate...
 

Да, событий нету, это минус.
На самом деле, я просто создаю сам эти события в описании того же фрейма
  procedure OnShow; virtual;
И в событии формы OnShow вызываю рукотворный обработчик фрейма  
  Frame1.OnShow;
 
 
 
Добавлено:

Цитата:
TJvEmbeddedFormPanel (JVC)

Использовать сторонние компоненты, тем более, такие глючные как JEDI - моветон. Профессиональным программерам это делать запрещено

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 05:35 27-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Однако... Почему бы тогда не отмоветонить программистов,
использующим вместо TDBGrid гриды от DevExpress, EhLib, IP4000  
или самоиздат на их основе?  
 
Согласен, что не глючных, не корявых, оптимизированных сторонних библиотек  
почти не бывает, все торопятся делать деньги.
 
С другой стороны, сила Delphi как раз в том, что профессиональные программеры  
МОГУТ использовать сторонние компоненты (ПОСЛЕ ИХ ДОРАБОТКИ до нормального состояния) или могут разрабатывать свои компоненты.
 
Например, я уже 8 лет использую в качестве форм-контейнера  
TcsFormPanel = class(TCustomPanel)
из библиотеки ClassComp.
 
Сразу поменял в нем несколько строк (исходник < 6 Кбайт и никаких зависимостей)  
и усе путем, на фиг фреймы, кругом только формы и маленькие такие контейнеры

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 11:05 27-10-2006
vladk1973



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
oan42
Ладно, флеймить не буду, скажу, что сам использую EhLib
ибо очень профессиональный пакет.
Я просто с предубеждением к JEDI отношусь - накололся там пару раз, и больше не использую
ЗЫ А пост мой был про фреймы - это рулез, что я собственно и объяснил
 

Цитата:
Например, я уже 8 лет использую в качестве форм-контейнера  
TcsFormPanel = class(TCustomPanel)
из библиотеки ClassComp.  

Предполагаю, что TcsFormPanel был реализован еще до появления фреймов, я прав ?

Всего записей: 674 | Зарегистр. 23-03-2005 | Отправлено: 11:32 27-10-2006 | Исправлено: vladk1973, 11:36 27-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скорее всего прав, в 1996 году фреймов в Delphi не замечал.
 
IMHO, технологии встраивания форм на основе TFrame vs TcsFormPanel (и его аналоги):
 
Минусы TFrame:
1) Дополнительный компонент из разряда парадигмообразующих,  
хотя для  достижения основной цели (контейнер формы) существует гораздо более простой способ.
2) Реализация TFrame довольно навороченная, особенно в IDE.
 
Плюсы TFrame:
1) Визуализация на форме-владельце.
2) Может быть контейнером не только как двоюродный  брат формы, но и как некоторый часто встречающийся
набор компонентов с принадлежащей им бизнес-логикой.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 13:12 27-10-2006
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladk1973
спасибо за "распальцовку", действительно кратко, а главное -- вроде понятно...
 
oan42

Цитата:
TcsFormPanel из библиотеки ClassComp

что это, поделись?

Всего записей: 24121 | Зарегистр. 06-12-2002 | Отправлено: 18:52 27-10-2006 | Исправлено: akaGM, 18:53 27-10-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть еще третий подход для форм-контейнеров - TacEmbeddedForm из appcontrols.

Цитата:
The acEmbeddedForm component used to insert the form and all its content to any successor of
TWinControl (i.e: Panels, GroupBoxes, Labels, pages of PageControl etc).
 
This is better than usual frames that comes with Delphi/BCB beginning from v5 since:
1. You can dynamically change the container of the embedded form at run-time (dynamically insert
or remove the form from any successor of TWinControl).
2. Still have all functionality of usual form (some controls can be placed only to form or its
successor).

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 17:20 30-10-2006 | Исправлено: oan42, 12:32 31-10-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » создание интерфейса (пользователя) прикладной программы(GUI)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru