Помогите начинающему
Модератор: Модераторы
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
1. В Delphi/Lazarus у каждого визуального компонента есть свойство Align, что-то не найду аналога в MSE... Я понимаю, что можно зафиксировать нужные размеры с помощью anchors, но ручками задавать начальные размеры не очень удобно.
2. Можно ли как-то в TDrawGrid сделать так, чтобы последний столбец растягивался и занимал всю оставшуюся область, т.е. чтобы справа не оставалось пустого пространства, т.е. суммарная ширина всех столбцов должна быть равной TDrawGrid.ClientWidth При этом пользователь должен иметь возможность изменять ширину всех остальных столбцов. Пробовал указать co_fixwidth и co_proportional, но это не совсем то, что нужно...
3. Можно ли как-то задать отступы между границей элемента меню и текстом? А то по умолчанию текст прям в притык к границе - смотриться как-то не красиво. А в главном меню, вообще все элемнты всливаются и визуально выглядят как идин большой элемент. Они должны быть как-то визуально друг от друга отделяться.
PS: задавать для каждого элемента меню компонент TImageList не очень-то удобно, а вручную указывать индекс картинки ещё более не удобно.
2. Можно ли как-то в TDrawGrid сделать так, чтобы последний столбец растягивался и занимал всю оставшуюся область, т.е. чтобы справа не оставалось пустого пространства, т.е. суммарная ширина всех столбцов должна быть равной TDrawGrid.ClientWidth При этом пользователь должен иметь возможность изменять ширину всех остальных столбцов. Пробовал указать co_fixwidth и co_proportional, но это не совсем то, что нужно...
3. Можно ли как-то задать отступы между границей элемента меню и текстом? А то по умолчанию текст прям в притык к границе - смотриться как-то не красиво. А в главном меню, вообще все элемнты всливаются и визуально выглядят как идин большой элемент. Они должны быть как-то визуально друг от друга отделяться.
PS: задавать для каждого элемента меню компонент TImageList не очень-то удобно, а вручную указывать индекс картинки ещё более не удобно.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
1. В Delphi/Lazarus у каждого визуального компонента есть свойство Align...
В 99% реальных задач, anchors и bounds_*min/max - рулят. В комбинации с TSpacer/TSplitter - вполне заменяют LayoutManagement (увидеть в действии можно в проекте ROZNITSA в PUBLIC.BINARIES).
Кстати, если сбросить оппозитные якоря - виджет растягивается на весь соответствующий размер контейнера.
2. Можно ли как-то в TDrawGrid сделать так, чтобы последний столбец растягивался и занимал всю оставшуюся область...
co_fill - причем не обязательно последний столбец.
co_proportional - когда хочется расширять при максимизации контейнера.
3. Можно ли как-то задать отступы между границей элемента меню и текстом? ...
Да, нужно уронить на форму TFtameTemplate, в нем назначить отступы - и потом этот шаблон назначить меню ( его подменю, элементам,...)
PS: задавать для каждого элемента меню компонент TImageList не очень-то удобно, а вручную указывать индекс картинки ещё более не удобно.
Да уж - проблема
Хотя само головное меню имеет свойство imagelist. Разве оно не наследуются в субменю ?
Можете передать просьбу Мартину?
В модуле msecommport изменить\добавить:
1- возможность установки baudrate как custom - т.е. любой.
2-добавить параметр Databits (5,6,7,8 )
Аргумент- уж больно нужно для работы с нестандартными утройствами.
К примеру- на данный момент, мне необходима работа со следующими параметрами:
baudrate := 100
stopbits := 1
databits:=5
И еще, подкинте кто ни будь, реально работающий код для постоянного слежения за портом в ассинхронном режиме (типа терминала).
И в догонку, есть ли аналог Tmaskedit
В модуле msecommport изменить\добавить:
1- возможность установки baudrate как custom - т.е. любой.
2-добавить параметр Databits (5,6,7,8 )
Аргумент- уж больно нужно для работы с нестандартными утройствами.
К примеру- на данный момент, мне необходима работа со следующими параметрами:
baudrate := 100
stopbits := 1
databits:=5
И еще, подкинте кто ни будь, реально работающий код для постоянного слежения за портом в ассинхронном режиме (типа терминала).
И в догонку, есть ли аналог Tmaskedit
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
debi12345 писал(а):В 99% реальных задач, anchors и bounds_*min/max - рулят. В комбинации с TSpacer/TSplitter - вполне заменяют LayoutManagement (увидеть в действии можно в проекте ROZNITSA в PUBLIC.BINARIES).
Кстати, если сбросить оппозитные якоря - виджет растягивается на весь соответствующий размер контейнера.
75% написаного не понял. Да, я не спорю что anchors достаточно. Но Align просто удобно - указал alTop и контрол сам приянулся к верху. А тут нужно ручками, ручками... помоему это как-то не очень согласуется с вашей идеологией "запредельных ленивцев"... или я супер-пупер запредельный ленивец?... В крайнем случае можно было бы не делать свойства, а в дизайнтайме в контекстном сделать подменю "расположение" с пунктами "прижать к верху", "прижать к низу", "растянуть" и т.п. + не помешала бы возможность выделить несколько элементов и выровнять их по верхнему/нижнему/правому/левому краю... как это можно сделать в Delphi.
debi12345 писал(а):co_fill - причем не обязательно последний столбец.
О, почти то, что нужно, я бы даже сказал так и пойдет, но... меняя ширину других столбцов можно так расширить столбец, что сумарная ширина столбцов будет больше ClientWidth и появиться горизонтальный ScrollBar, допустим я хотел бы запретить такой исход события...
debi12345 писал(а):Да, нужно уронить на форму TFtameTemplate, в нем назначить отступы - и потом этот шаблон назначить меню ( его подменю, элементам,...)
Почти добился нужного эффекта... Я так понял нужно заклинать свойство framei - но оно задает внешний отступ (в CSS это margin), думаю было логичным также влиять на внутренний отступ (в CSS это padding), т.е. между границей и текстом, а не границей и окружающими элементами. Осталось только иконки как-то отжать от края - можно конечно сами иконки подредактировать - но может есть какое-то более я прямое решение?

debi12345 писал(а):Да уж - проблемаБыл бы счастлив, если бы вся "работа" в этом заключалась. Это же отдых от ненавистного кодирования !
Для меня это самая скучная часть работы...
debi12345 писал(а):Хотя само головное меню имеет свойство imagelist. Разве оно не наследуются в субменю ?
Похоже что не наследуется... баг?... MSE 1.6
https://mseide-msegui.svn.sourceforge.n ... elease_1_6
Feature request
1. ImageList, MainMenu и их друзья - Задавать иконки числами очень не удобно, в Delphi хотя бы можно выбирать иконки попросматривая их уменьшенные миниатюры. А нельзя ли адресовать иконки по имени? Например каждой иконке назначать какой-то вменяемый строковый идентификатор. А потом для выбора иконок сделать ComboBox с перечислением идентификоторов (в алфавитном порядке)
2. Выбор цвета - список контстант в инспекторе объектов не отсортирован. Если бы он был отсортирован, то найти соответсвующую константу будет проще. А наличие иконок соответствующих цветов было бы совсем замечательно.
3. Align, см. выше
4. padding - см. выше
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
swa1 писал(а):Можете передать просьбу Мартину?
В модуле msecommport изменить\добавить:
1- возможность установки baudrate как custom - т.е. любой.
2-добавить параметр Databits (5,6,7,8 )
Аргумент- уж больно нужно для работы с нестандартными утройствами.
К примеру- на данный момент, мне необходима работа со следующими параметрами:
baudrate := 100
stopbits := 1
databits:=5
И еще, подкинте кто ни будь, реально работающий код для постоянного слежения за портом в ассинхронном режиме (типа терминала).
================
> Word-by-word transpation:
> ------------------------
>
> The "msecommport" unit - to extend to have :
>
> 1- ability to set arbitarry bit rate
> 2 -parameter "databits" (5,6,7,8 )
>
> Needed to work with non-standard devices, for example, me need the
> following parameters :
>
> baudrate := 100
> stopbits := 1
> databits:=5
>
I don't think this is supported by the usual UART's and the API.
> And please, someone, give some really working code to monitor on serial
> port in async mode ( like a terminal ).
Hm, I didn't know that one really uses this components, they are merely
thought for my internal use in order to implement my serial control
protocols. One can use trs232.readstring in order to read pending text.
For terminal applications tpipereader and tterminal are better suited, see
MSEide target console for an example. Eventually it is possible to use
trs232.handle to connect a tpipereader (not tested).
Martin
===============
То есть стандартные UART-микрухи на китайских материнках не имеют режима произвольного бодрэйта ? Так ?
Насчет маскедита... Скажу из своего опыта (начиная с VisualBasic) - не мучайтесь с этим компонентом ! Я пытался его слепить, а потом понял, что легче и разумнее и функциональнее - проверять вводимый текст через регулярные выражения (в них же отсеивать символы, имитирующие "маску" ).
debi12345 писал(а):I don't think this is supported by the usual UART's and the API.
debi12345 писал(а):То есть стандартные UART-микрухи на китайских материнках не имеют режима произвольного бодрэйта ? Так ?
Об этом многие говорят, но в реалии я использую скорости 100,200,250 и 500....Причем используется это уже в работе. (программа написана под delphi и работает, для com используется библиотека Async)
Т.е. ОЧЕНЬ БОЛЬШОЙ ПОЖАЛУЙСТА.
И по поводу databits тоже.
Далее
Для чего нужны:
taction или tnoguiaction?
tthreadcomp - это что то вроде гуевского thread ?
tpipereadercomp - ???
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Об этом многие говорят, но в реалии я использую скорости 100,200,250 и 500....Причем используется это уже в работе. (программа написана под delphi и работает, для com используется библиотека Async)
Т.е. ОЧЕНЬ БОЛЬШОЙ ПОЖАЛУЙСТА.
И по поводу databits тоже.
=============
Думаю, от вас потребуется алгоритм программирования UART-ов на такие битрэйты.
Т.е. ОЧЕНЬ БОЛЬШОЙ ПОЖАЛУЙСТА.
И по поводу databits тоже.
=============
Думаю, от вас потребуется алгоритм программирования UART-ов на такие битрэйты.
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
И всё таки я не понимаю как можно в MSE обходиться без Align, просветите.
Создаю пустой проект из шалобна default
По умолчанию создается формочка размерами 403x280
Я бросаю на формочку ttoolbar и хочу добиться положения которое он принял бы в Lazarus, если указать alTop: я перемещаю его влево и вверх, чтобы Left, Top равнялись 0, т.к. контрол выравнивается по сетке, это проблем не вызывает. Но ведь его ещё нужно прижать к правому краю - привязыка к сетке мешает... Ну да ладно, размер формы 403 (bounds.cx = 403), ttoolbar без рамки, потому его ширина тоже должна быть 403. Устанавливаю 403 - компонет визуально стоит на нужном месте, но у форму появляется горизонтальная прокрутка, ставлю 402, заметен зазор в 1 пиксель (особенно, если сделать фон для ttoolbar отличным от фона самой формы) прокрутка как была, так и осталась, ставлю 401 - прокрутка исчезла, зазор в 2 пикселя...
Баг?... или есть какое-то (не очевидное?) решение...
Аналогичные проблемы возникнут, когда нужно будет прижать (в притык! а не с зазором) две панели к границам окна и поставить между ними tspliter... Прижать панели к сплитеру не составляет труда - сам делает, а как к границам окна? как боросться с полосами прокрутки.
Создаю пустой проект из шалобна default
По умолчанию создается формочка размерами 403x280
Я бросаю на формочку ttoolbar и хочу добиться положения которое он принял бы в Lazarus, если указать alTop: я перемещаю его влево и вверх, чтобы Left, Top равнялись 0, т.к. контрол выравнивается по сетке, это проблем не вызывает. Но ведь его ещё нужно прижать к правому краю - привязыка к сетке мешает... Ну да ладно, размер формы 403 (bounds.cx = 403), ttoolbar без рамки, потому его ширина тоже должна быть 403. Устанавливаю 403 - компонет визуально стоит на нужном месте, но у форму появляется горизонтальная прокрутка, ставлю 402, заметен зазор в 1 пиксель (особенно, если сделать фон для ttoolbar отличным от фона самой формы) прокрутка как была, так и осталась, ставлю 401 - прокрутка исчезла, зазор в 2 пикселя...
Баг?... или есть какое-то (не очевидное?) решение...
Аналогичные проблемы возникнут, когда нужно будет прижать (в притык! а не с зазором) две панели к границам окна и поставить между ними tspliter... Прижать панели к сплитеру не составляет труда - сам делает, а как к границам окна? как боросться с полосами прокрутки.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Shift/Ctrl+Left/Right - тонкая подгонка размера и позиции независмо от сетки.
Вырубленные верхний и нижний якоря = растягивание на всю высоту контейнера. Аналогично для горизонтали.
За один пискел не воюйте, проектируйте геометрию с запасом - всегда есть вероятность ошибок округления, которые и родят/уберут прокрутку.
Вырубленные верхний и нижний якоря = растягивание на всю высоту контейнера. Аналогично для горизонтали.
За один пискел не воюйте, проектируйте геометрию с запасом - всегда есть вероятность ошибок округления, которые и родят/уберут прокрутку.
debi12345 писал(а):Думаю, от вас потребуется алгоритм программирования UART-ов на такие битрэйты.
Зачем?....Может вполне достаточно ввести в msecommport
что бы скорость можно было выставить не только через селектор, а и вписать ручками.... А то все берется только из commbaudratety. Пусть сделают, а я попробую сам.
Attid писал(а):я под МСЕ юзаю для компорта synaser
А вот это как раз и есть вторая часть... Synaser у меня заработал на любой скорости и любыми настройками (в гранях разумного).
Но...Я никак не могу заставить работать его в потоках (разбор в топике о com портах)....Т.К. Потоки в FPC -Глючные (Attid - почти цитирую вас). А тут смотрю вроде, что то свое организовал Мартин с этими потоками, нитями + еще несколько положительных сторон для той програмки, что лепится.
Хотя опять же в linux не потоки, а процессы вроде...Это как одно и тоже или нет?
Attid писал(а):коммпонент для работы с именовыными каналами.
Не совсем понял, для чего...Как использовать...А лучше что почитать?
tthreadcomp - чой то у меня никак не работает. Я то и в дельфи долго книжки и статьи читал, а тут без примеров и доки.... совсем тоска.
