Помогите начинающему

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Сообщение Attid » 28.01.2008 17:53:51

1. ImageList, MainMenu и их друзья - Задавать иконки числами очень не удобно, в Delphi хотя бы можно выбирать иконки попросматривая их уменьшенные миниатюры. А нельзя ли адресовать иконки по имени? Например каждой иконке назначать какой-то вменяемый строковый идентификатор. А потом для выбора иконок сделать ComboBox с перечислением идентификоторов (в алфавитном порядке)

Добавлено в виш лист, приоритет низкий


2. Выбор цвета - список контстант в инспекторе объектов не отсортирован. Если бы он был отсортирован, то найти соответсвующую константу будет проще. А наличие иконок соответствующих цветов было бы совсем замечательно.


They are ordered by kind. First the named RGB colors (monochrome bitmap,
grayscale, primary colors, complementary colors, dark primary colors, dark
complementary colors, light primary colors, light complementary colors),
then the functional colors and at last the user colors.
If you know the name of a color, enter the first characters until the wanted
item is selected, accept with enter.

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


3. Align, см. выше

в вишлисте

4. padding - см. выше

Use tframecomp.template.framei_* or tframe.framei_*.
боюсь мы друг друга не поняли, но попробуй =)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 28.01.2008 19:36:51

Извините, пока не отвечаю - о-о-очень устал.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 28.01.2008 21:50:57

debi12345 писал(а):За один пискел не воюйте, проектируйте геометрию с запасом - всегда есть вероятность ошибок округления, которые и родят/уберут прокрутку.

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

debi12345 писал(а):Shift/Ctrl+Left/Right - тонкая подгонка размера и позиции независмо от сетки.

Не, ну это-то я знаю... в Delphi тоже есть... всё таже лишняя возня - не мышкой, так клавой.

Attid писал(а):Use tframecomp.template.framei_* or tframe.framei_*.
боюсь мы друг друга не поняли, но попробуй =)

Да, похоже не поняли... скриншот показывал?...
Вот пример того, что я хочу сделать с менюшкой. Казалось бы всё нормально, но есть один недочёт: рамка форкуса не охватывает полностью пункт меню - потому, что задан внешний отсупут, а нужен внутренний, грубо говоря нужно сделать отступ между рамкой фокуса и иконкой. Сейчас едиственый способ решить эту проблему - править иконки и вносить в них прозрачный отступ нужного размера, но это плохое решение.
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение debi12345 » 29.01.2008 08:24:06

shade писал(а):
debi12345 писал(а):За один пискел не воюйте, проектируйте геометрию с запасом - всегда есть вероятность ошибок округления, которые и родят/уберут прокрутку.

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

Ну не знаю... С якорями, спэйсерами и сплиттерами - практически любую раскладку можно сделать. Насчет "align" - Мартин предупреждает "не стоит переоценивать полезность этой фишки". 100% согласен с ним - выбираешь сразу группу выравниваемых компонентов, и назначаешь им якоря и отступ.
Если не секрет - что за проекты такие, что важен каждый пиксел ?

debi12345 писал(а):
Shift/Ctrl+Left/Right - тонкая подгонка размера и позиции независмо от сетки.

Не, ну это-то я знаю... в Delphi тоже есть... всё таже лишняя возня - не мышкой, так клавой.

Это вам, кодерам - возня. Лично для меня код писать - 99% работы, так что эти движения - сродни отдыху.

Attid писал(а):Use tframecomp.template.framei_* or tframe.framei_*.
боюсь мы друг друга не поняли, но попробуй =)

Да, похоже не поняли... скриншот показывал?...

Доконали человека ??? Получайте :

>>> 4. new property of TFtameTemplate - padding see picture
>>
>> Use tframecomp.template.framei_* or tframe.framei_*.
>
> And tframecomp.template.imagedist I forgot.
>
>Trunk 1965 has additional imagedisttop and imagedistbottom.

Сейчас едиственый способ решить эту проблему - править иконки и вносить в них прозрачный отступ нужного размера, но это плохое решение.

Мартин изначально считал этот способ 1) нормальным и 2) оптимальным. Он же минималист ! Один фиг придется иконки рисовать/редактировать - так лучше заложить в них эти отступы, чем грузить GUI отрисовкой этой мелочевки.
Я чуть по другому делал - назначал в редакторе IMAGELIST height & width чуть больше, чем размер картинок.
Однако доконали, см выше :)
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Attid » 29.01.2008 12:14:39

Если не секрет - что за проекты такие, что важен каждый пиксел ?

тебе не понять "вы не любили" =) там где красоту наводить, люди любят рюшечки, это часть их жизни.
даже где-то было иследование на эту тему, что добавление в програму настроек внешнего вида в корпаративном ПО сьедает в среднем 15 минут рабочего времени пользователя в день на настройки, но повышает эффективность его работы . вот . =)

Доконали человека ??

ну почему сразу доканали, прям он уж плакал. добавили новую фичу для превлечения пользователей.

Лично для меня код писать - 99% работы

не боись будет когда нибуть автодополнение, скорость написания кода выростет :lol:
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 29.01.2008 12:47:35

но повышает эффективность его работы . вот . =)

Ничего удивительного - если прежний интерфейс раздражал ( разновидность "отвлекать" ).
Но роль одного пиксела преувеличена. Считаю, что там, где стал важен один пиксел - там misdesign, и нужно делать отступ пять и больше пикселов.

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

Не в печатании дело (набиваю почти вслепую - быстрее, чем от руки), а в придумывании и реализации алгоритмов. Здесь бывает конкретный затык. Иногда стыдно Мартину тесткэйсы слать - там иногда такие "идеи", чесслово... Например, модуль текстового принтера видели ( в проекте ROZNITSA ) ? Сам ужасаюсь, что наваял - функции с десятком аргументов, каждый из которых - открытый массив или набор. Ха !
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 29.01.2008 21:12:17

debi12345 писал(а):Ну не знаю... С якорями, спэйсерами и сплиттерами - практически любую раскладку можно сделать.

В Delphi я делал любую какую хотел, а в MSE не смог сделать первую потребовавшуюся... вот ваше "практически"...

Вот, что я хочу:
1. поставить ttoolbar, растянуть его на всю ширину и прижать к верху (аля alTop)
2. поставить два грида и сплитер между ними.
3. левый грид должен прижаться к левому и нижнему краю, к ttoolbar (аля alLeft)
4. правый грид должен прижаться к правому и нижнему краю, к ttoolbar (аля alRight)
5. сплитер должен прижаться к обоим гридам, к верхнему и нижнему краю

debi12345 писал(а):Если не секрет - что за проекты такие, что важен каждый пиксел ?

В MSE не зря поддерживаются шаблоны, с их помощью можно реализовать темы/скины для программы.
Допустим, мы делаем файловый менеджер, и делаем раскладку приведенную выше (это только в минимальном виде). Я хочу сохранять параметры tfacecomp, tframecomp в файл темы. Допустим, цвет формы серый, т.к. по идее (которую я не могу реализовать в полной мере из-за бага) сама форма не видна (его рабочая область полностью закрывается дочерними контролами), то нет смыла беспокоиться об её цвете. Дизайнер хочет сделать ttoolbar, не серого цвета, а, допустим, песочного, да и еще с небольшим вертикальным градиентом. Пытается сделать, а справа от ttoolbar полоска серого цвета - дизайн в мусорку, отказывайся от градиента, задавай также цвет формы, тогда ничего не будет заметно - очень гибко, прям простор для фантазии дизайнера тем.

Далее... с гридами... левый грид мы прижали к левому краю, прижать правый в притык мы не можем, т.к. появляется прокрутка... вынуждены (где же ваша хвалёная гибкость) делать отступ справа... раз мы сделали отступ справа прийдется сделать его и слева... у нас будут те же проблемы с отступом в низу... и его далаем...
итого, мы вынуждены (эх как хочеться повторить, но см. выше) три отвратительных никому не нужных отсупа... Зачем? ведь у нас и так есть рамка окна и рамки гридов...

debi12345 писал(а):Мартин изначально считал этот способ 1) нормальным и 2) оптимальным.

Смотря с какой стороны смотреть: с точки зрения размера программы, это несколько лишних килобайт - в зависимости от числа/размера иконок и размера отспупа. Хотя говорить о нескольких килобайтах как-то не удобно, в то время как размер проги с пустой формой уже более 1Мб...

debi12345 писал(а):Один фиг придется иконки рисовать/редактировать - так лучше заложить в них эти отступы, чем грузить GUI отрисовкой этой мелочевки.

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

debi12345 писал(а):> And tframecomp.template.imagedist I forgot.

Во, это решает проблему :D
imho, с margin/padding как очевиднее :roll:
ну да ладно, проехали, главное решение нашлось.

Attid писал(а):даже где-то было иследование на эту тему, что добавление в програму настроек внешнего вида в корпаративном ПО сьедает в среднем 15 минут рабочего времени пользователя в день на настройки, но повышает эффективность его работы . вот . =)

...а сохранение настроек внешнего вида в профиле пользователя, экономит 10 минут в день рабочего времени потраченого на настройки :lol:

debi12345 писал(а):Но роль одного пиксела преувеличена. Считаю, что там, где стал важен один пиксел - там misdesign, и нужно делать отступ пять и больше пикселов.

Попробуй объясни это дизайнеру, который считает, что ты в хлам убил весь его дизайн - мне приходилось верстать дизайн сайта почти в пиксель-в-пискель. Сверстать пиксель-в-пиксель не реально (вобщем, только из-за шрифтов), но более ювелирной работы мне выполнять не приходилось.

Ну а в целом, я не понимаю, почему я мог это сделать в Delphi/Lazarus не задумываясь, а в MSE я вынужден делать отступы, которые я раньше никогда не делал и не вижу смысла делать.

Не порю, я видимо просто делаю что-то не так, что в MSE это нужно делать как-то иначе, не очевидным для делфяшника образом... ведь самом MSEide, в редакторе все контролы в притык и ни отступов, ни лишних полос прокруток...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Attid » 30.01.2008 12:43:33

debi12345
Не в печатании дело (набиваю почти вслепую - быстрее, чем от руки)

вот тут я вашу азиаткую лень не понимаю =)
это ведь и есть работа которую можно сократить, и которую приходится делать.

пример
надо показать несколько одинаковых форм с разными запросами и немного разного вида. есть три пути решения проблемы
1, в лоб. создать 5 форм и сделать то в чем они должны отличаться
дел-создать кучу форм, написать вызов 5 форм
2, (твой) создать форму, насоздовать предков, готово
дел- один раз продумавается форма, 4 раза тыкается мышью по наследникам, меняется запрос, и т.д. ,написать вызов 5 форм
3, (мой) создать форму , в ней же процедуру вызова с параметрами
дел - один раз продумать форму и вызов, 5 раз вызвать с разными параметрами

как видим по кол-ву лени я более ленивый =)
ЗЫ ничего личного , все способы хороши, выполняю предложение мартина по общению :)

shade
...а сохранение настроек внешнего вида в профиле пользователя, экономит 10 минут в день рабочего времени потраченого на настройки Laughing

нет это понятно, =) имелось ввиду среднее, тоесть он может в один день потрпать на это 2 часа, а потом 2 недели не менять.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 30.01.2008 17:43:18

...а сохранение настроек внешнего вида в профиле пользователя, экономит 10 минут в день рабочего времени потраченого на настройки

К слову, MSEgui для автосохранения этих (и не только, и даже рабочих данных) настроек предлагает TSTATFILE. Невероятно полезная фишка, которой Мартин гордится, а я не нее конкретно подсел.

Ну а в целом, я не понимаю, почему я мог это сделать в Delphi/Lazarus не задумываясь, а в MSE я вынужден делать отступы, которые я раньше никогда не делал и не вижу смысла делать.

Понял. Ваша "проблема" - опыт дизайна в Дельфях. Я в дельфях писал 1) мало, 2) для внутреннего употребления и 3) в кратчайший срок - короче, не до внешности было.
Но про "один пиксел" остаюсь при своем - это MISDESIGN, передайте это своему дизайнеру !

В Delphi я делал любую какую хотел, а в MSE не смог сделать первую потребовавшуюся... вот ваше "практически"..

См. выше о силе привычки. Я, будучи не отягощен грузом, в ROZNITSA и позлее лэйаут слепил ( даже с кнопками на автоцентрующемся сплиттере !!! ) - и как-то все легко получилось.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Attid » 30.01.2008 19:21:13

См. выше о силе привычки. Я, будучи не отягощен грузом, в ROZNITSA и позлее лэйаут слепил ( даже с кнопками на автоцентрующемся сплиттере !!! ) - и как-то все легко получилось.


вот и предложи как бы сделал хотябы и с пикселем, я сначало подумал, а что тут может быть сложного наверно в 10 кликов сделаю, в 10 не получилось, перевел вопрос мартину :roll:

дело даже не в дельфине, во всех гуи редакторах это 5-10 кликов кроме мсе.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 30.01.2008 20:59:57

По части нестандартного COM-порта - Мартин говорит, что сделало и можно тестировать.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение shade » 30.01.2008 21:06:01

debi12345 писал(а):Но про "один пиксел" остаюсь при своем - это MISDESIGN, передайте это своему дизайнеру !

Каждый должен заниматься своим делом: кодер - кодить, а дизайнер - дизайнить
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение debi12345 » 30.01.2008 21:08:08

вот и предложи как бы сделал хотябы и с пикселем, я сначало подумал, а что тут может быть сложного наверно в 10 кликов сделаю, в 10 не получилось, перевел вопрос мартину Rolling Eyes

дело даже не в дельфине, во всех гуи редакторах это 5-10 кликов кроме мсе.

Хорош придираться :) Меня тоже иногда злит, что все само собой не делается - а приходится мышой водить, драгоценные калории тратить. Но стоит сравнить затраты время на мышевождение и на кодирование (не путать с печатанием !) - сразу совесть просыпается. Призвание MSE* - свести к минимуму кодирование ( опять - не печатание! ) и отладку.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение debi12345 » 30.01.2008 22:30:28

Народ - кажется, появилась поддержка скинов...
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Attid » 31.01.2008 12:45:18

shade писал(а):Вот, что я хочу:
1. поставить ttoolbar, растянуть его на всю ширину и прижать к верху (аля alTop)
2. поставить два грида и сплитер между ними.
3. левый грид должен прижаться к левому и нижнему краю, к ttoolbar (аля alLeft)
4. правый грид должен прижаться к правому и нижнему краю, к ttoolbar (аля alRight)
5. сплитер должен прижаться к обоим гридам, к верхнему и нижнему краю



> for sample we want to create FileManager
>
> how simple do it ?
>
> 1. add ttoolbar, stretch at form width, press to the top (like align
> alTop at delphi\lazarus)
Move the toolbar on top (bounds_y:=0), anchors:= [an_top].

> 2. put the two grids and spliter between them.

> 3. left grid must pull to left and bottom form and to bottom of ttoolbar
> (like alLeft)
anchors:= [an_top,an_left,an_bottom].

> 4. right grid must pull to right and bottom of form and bottom of ttoolbar
> (like alRight)
anchors:= [an_top,an_right,an_bottom].

> 5. splitter must pull to two grid
>
tsplitter1.anchors:= [an_left,an_top,an_bottom].
linkleft:= gridleft, linkright:= gridright;

Set the sizes and positions of the widgets with the mouse, do fine
adjustments with Ctrl+Arrow*. For vertical adjustments select
leftgrid+splitter+rightgrid.

> at delphi it 5 click of mouse
>
I know. :-)
I didn't use the align approach in MSEgui because I always had problems in
Delphi with it in more complicated layouts. With the anchor approach there
is some more work with simple layouts but more flexibility and less work
for more complicated ones. For me the align approach is too restricted.
Hint: In order to save splitter and form position and size place a tstatfile
on the form and select it in the statfile property of the splitter and the
form, three mouse clicks. ;-)
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Пред.След.

Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru