2 / 2 / 0
Регистрация: 04.06.2012
Сообщений: 27
|
|
1 | |
Нарисовать на форме линию, желательно не програмно15.06.2012, 17:49. Показов 10797. Ответов 8
Метки нет (Все метки)
0
|
15.06.2012, 17:49 | |
Ответы с готовыми решениями:
8
Как нарисовать на форме линию? Как нарисовать линию в форме? Как нарисовать линию на форме? Нарисовать линию не на форме, а поверх контрола!!! |
200 / 98 / 2
Регистрация: 24.09.2011
Сообщений: 261
|
|
17.06.2012, 01:51 | 3 |
вроде с помощью WinAPI можно на форме рисовать
1
|
17.06.2012, 02:31 | 4 |
2
|
Модератор
|
|
17.06.2012, 09:54 | 5 |
Сообщение было отмечено как решение
Решение
WinAPI - это тоже программный путь... Grid-ы надо регистрировать. Я предлагаю, хотя и программный, но "облегченный" вариант - программное создание сетки из Labl-лов.
4
|
4 / 4 / 1
Регистрация: 21.05.2012
Сообщений: 12
|
|
18.06.2012, 14:12 | 7 |
Сообщение было отмечено как решение
Решение
Если вы хотите нарисовать линию на форме, то значит, что вы, уже, применяете редактор VBA. Используйте элемент управления Frame Control, либо LabelControl, вставив в окно формы UserForm. Они наименее громоздкие с точки зрения потребления оперативной памяти. Воспользуйтесь окном свойств для настройки данных элементов. Следует установить соответствующее значение свойства Height (если нужна верстикальная линия) или Width (если горизонтальная), чтобы установить необходимую толщину линии. Также нужно установить свойства Caption для указанных элементов равными пустой строке "".
Дополнительно для элемента управления Frame установите свойство SpecialEffect к fmSpecialEffectFlat, тогда рамка исчезнет и вы сможете воспользоваться свойством BackColor для установки необходимого цвета этого элемента, который будет теперь являться линией, если соотношение размеров его ширины к высоте значительно (>> 10). Если необходима пунктирная или линия по образцу, то создайте соотвествующую картинку в формате BMP, GIF, JPG, ICO, CUR, WMF, EMF или DIB и установите на нее ссылку через свойство Picture. Если воспользуетесь свойством Label, то достаточно установить свойство BorderStyle = fmBorderStyleSingle, а свойство Height или Width установить равным 1. Тогда вы получите тонкую линию. Чтобы получить толстую линию или линию по образцу используйте свойства BackColor или Picture, как и описано выше для Frame Control. Кроме того, у элемента Label имеется свойство BackStyle, которое позволяет установить прозрачность (frmBackStyleReansparent) для цвета на вставленной картинке Picture, который совпадает с цветом BackColor элемента Label. Это дает некоторые преимущества при отображении данного элемента. С помощью данных элементов управления можно отобразить в окне UserForm горизонтальные или вертикальные линии. Для наклонных линий с некоторой натяжкой можно использовать элемент Label, как описано выше, установив путь для его свойства Picture к файлу изображения, содержащему картинку наклонной линии и воспользовавшись свойством BackStyle для установки прозрачности фона на этой картике. Альтернативным способом является использование WinAPI, но это уже для знатоков программирования. К тому же и для этого способа имеются некоторые проблемы, связанные с восстановлением изображения в окне формы, если оно было частично или полностью перекрыто другим окном, так как нарисованные вами линии с применением WinAPI исчезнут и возникнет необходимость их перерисовки. Короче, эспериментируйте!
3
|
2 / 2 / 0
Регистрация: 04.06.2012
Сообщений: 27
|
|
18.06.2012, 16:33 [ТС] | 8 |
Большое спасибо всем, кто отвечал. О большинстве способов, описанных сдесь, я уже знал. Просто казалось что должна же быть просто кнопка "нарисовать линию". Прошу прощения если зря потратил ваше время
0
|
4 / 4 / 1
Регистрация: 21.05.2012
Сообщений: 12
|
|
18.06.2012, 22:46 | 9 |
В моем предыдущем сообщении в 3 абзаце была пара опечаток. Вот исправленный текст этого абзаца:
Если воспользуетесь элементом управления Label, то достаточно установить свойство BorderStyle = fmBorderStyleSingle, а свойство Height или Width установить равным 1. Тогда вы получите тонкую линию. Чтобы получить толстую линию или линию по образцу используйте свойства BackColor или Picture, как и описано выше для Frame Control. Кроме того, у элемента Label имеется свойство BackStyle, которое позволяет установить прозрачность (frmBackStyleTransparent) для цвета на вставленной картинке Picture, который совпадает с цветом BackColor элемента Label. Это дает некоторые преимущества при отображении данного элемента.
1
|
18.06.2012, 22:46 | |
18.06.2012, 22:46 | |
Помогаю со студенческими работами здесь
9
Ошибка синтаксиса при попытке нарисовать линию на форме Как нарисовать линию на форме, перекрывающую так же и контроллы на ней? Рисуем програмно линию Нарисовать на label изображение програмно Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |