|
2 / 2 / 1
Регистрация: 18.11.2009
Сообщений: 43
|
|
Задание параметров для Anchors22.01.2010, 20:13. Показов 12711. Ответов 22
Метки нет (Все метки)
в TButton есть свойство Anchors, а в нем определены [akLeft, akTop, akRight, akBottom]
Как в коде устанавливать значения для [akLeft, akTop, akRight, akBottom] ?
1
|
|
| 22.01.2010, 20:13 | |
|
Ответы с готовыми решениями:
22
StatusBar + Anchors StatusBar + PageControl (Anchors) Задание параметров для flash-объекта в HTML-файле запуска |
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||||||||||
| 24.01.2010, 00:49 | |||||||||||
Сообщение было отмечено как решение
Решение
Можно так:
5
|
|||||||||||
|
2 / 2 / 1
Регистрация: 18.11.2009
Сообщений: 43
|
|
| 24.01.2010, 03:04 [ТС] | |
|
спасибо)
Если не сложно можешь сказать как эта штука правильно называется, чтобы почитать про нее можно было (A << akRight << akBottom << akTop << akLeft). Как работать с ней теперь понятно, но что это такое, понять не могу)
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||||||
| 24.01.2010, 17:10 | ||||||
Сообщение было отмечено как решение
Решение
DragoDemon,
<< - это оператор, выполняющий арифметический сдвиг разряда в левую сторону. А - в моём примере, это переменная типа TAnchors. akRight, akBottom, akTop, akLeft - константы перечисляемого типа, описанные в Controls.hpp:
2
|
||||||
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
||||||
| 18.04.2010, 19:52 | ||||||
|
MiCr0s0fT, Добрый день! У меня подобная проблема, но с компонентом TTabbedNoteBook. Имеются 4 вкладки. На всех одинаковые элементы, скопированы были с первой вкладки. Анкоры для всех элементов выставлены как нужно. У меня на вкладках StringGrid и кнопки: кнопки должны сдвигаться вправо, сетка должна растягиваться до определённых размеров (Align = AllClient здесь мне не подходит).
При запуске программы, на той вкладке, которая открывается по умолчанию - всё идеально, растягивается и применяется как нужно. Но как только я переключаюсь на другую вкладку - все элементы на ней не применяют свои анкоры! Я пробовал прописывать анкоры в коде, как показано выше - дебаг показывает, что заходит в функцию и применяет анкоры (я так подозреваю) - но ничего не изменяется! Обработку делаю в событии OnChange:
Подскажите, пожалуйста, как можно исправить эту проблему, сроки сдачи горят, а тут внезапно выскочил такой баг Заранее спасибо!
1
|
||||||
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
||||||
| 18.04.2010, 20:37 | ||||||
|
ClearSky, Добрый день.
1. То, что элементы потеряли свойства Anchors - вина компонента TTabbedNoteBook (Устарел он уже морально. Ещё с Windows 3.1 тянется). Взамен ему в RAD Studio реализован компонент TPageControl. Настоятельно рекомендую использовать его. Даже в дизайн-режиме ощутите разницу. 2. Присвоение Anchors не стоит делать при каждом переключении вкладки, зачем вам лишние действия... 3. А решение вашей проблемы описано мною чуть выше. Попробуйте вот так:
2
|
||||||
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 18.04.2010, 20:44 | |
|
MiCr0s0fT, Спасибо за быстрый ответ!
Попробовал ваш способ - но ничего не изменилось - анкоры всё ещё не применяются. Может быть я использую не то событие, и не в том компоненте? )) Вопрос: будет ли этот способ работать с TTabbedNotebook? Почему я не использовал TTabConrol с вкладки Win32: я ставлю на вкладку кнопку - при переключении на все остальные вкладки - она там тоже видна - полная лажа )) Я так понял, что при этом надо использовать дополнительный компонент - TPageControl, о котором вы и говорите - но в нём я не нашёл свойства для задания имён и количества вкладок Может подскажете примером?
1
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 18.04.2010, 20:57 | |
|
ClearSky, только что собрал проект с TTabbedNotebook (справа) и TPageControl (слева).
На каждой странице имеется TStringGrid. Попробуйте растянуть приложение - Anchors сброшены изначально. После нажатия на кнопку "Установить Anchors" - компоненты TStringGrid установят себе Anchors и будут изменять размер пропорционально окно. Проект я прилагаю, скачать можете отсюда: TestAnchorsGrid.rar Проект собран в RAD Studio 2010.
2
|
|
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 18.04.2010, 21:04 | |
|
MiCr0s0fT, Спасибо за пример!
Делаю точно так же, но внимание! Это работает ТОЛЬКО если нажать кнопку Установить Anchors сразу же после запуска приложения! Что же делаю я: я делаю Maximize окну - и потом жму на кнопку Установить Anchors - и всё, анкоры не применяются Может Maximize как-то сбрасывает анкоры?
1
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|||||||||||
| 18.04.2010, 21:21 | |||||||||||
|
ClearSky, вы имеете ввиду
Попробовал так:
Работает и так, и так.
1
|
|||||||||||
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 18.04.2010, 21:28 | |
|
MiCr0s0fT, Я ставлю этот код в событие OnCreate моей формы - при запуске приложения. Пока что форма не развернута на весь экран - растягиваю - анкоры не применены. Затем я её разворачиваю по двойному клику на заголовке окна - окно разворачивается - анкоры не применены. Вынес дополнительно установку анкоров при нажатии на кнопку на форме (в кнопке прописал даже чтобы окно максимизировалось, как у вас в коде) - анкоры не применены. Без понятия, что может быть? Использую C++ Builder 6. На счёт вашего приложения я говорил когда просто запустил ЕХЕ файл, то есть в режиме run вашей программки - там тоже при развёрнутом окне не применялись анкоры.
1
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 18.04.2010, 21:34 | |
|
ClearSky, инициализация формы наступит раньше её создания. Можно обойтись и без OnCreate.
Можно ещё попробовать обдурить всё и всех... Обработайте событие OnResize для Form. И туда вставьте тот же код
1
|
|
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 18.04.2010, 21:57 | |
|
MiCr0s0fT, Я уже и об этом подумал ))) Просто мне показалось, что OnResize как-то тоже сбрасывает анкоры. )) Короче, не работает никак, хоть ты убейся ))))
Может быть поможет эта информация: при запуске проги, у меня стоит окно с вводом логина и пароля - по совместительству оно является главной формой. При верных данных - эта главная форма скрывается (Form->Hide() - и открывается та, с которой я работаю. Может быть как-то это скрытие предыдущей формы тоже влияет на это? ))) Хотя - всё это на самом деле никак на это не может влиять - так как если я устанавливаю у TabbedNoteBook по дефолту открывать вкладку - либо 1, либо 2, либо каку-то другую - на этой вкладке при запуске - всё работает идеально! Мистика, как будто анкоры применяются только для одной вкладки (это объяснилось вашим ответом о недостатке этого компонента) и потом они как-будто Read-Only становятся )))) Может быть есть какой-то AnchorRefresh() метод? Ну или Form->Refresh() как-то использовать? )) Добавлено через 11 минут MiCr0s0fT, Экспериментальным путём было установлено, что все вышеуказанные примеры работают ТОЛЬКО для той вкладки - которая является вкладкой по умолчанию при запуске! Мистика да и только - непонятно почему не применяются анкоры для других вкладок! В голову приходит мысль: при запуске программы пройтись циклом и каждую из них сделать дефолтной, чтобы все акоры применились )))))) Чего только в голову не придёт, когда всё работает не так, как нужно
1
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 18.04.2010, 22:00 | |
|
ClearSky, ой ужас ... Есть более интересное решение: Поставьте RAD Studio 2010 или 2009 (но не 2007).
Не мучайтесь. Данная неполадка - не ваша вина.
1
|
|
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 18.04.2010, 22:06 | |
|
MiCr0s0fT, А проект из C++ Builder 6 туда сможет мигрировать без проблем? Ибо мне его сдавать послезавтра, начинать всё переделывать не вариант
И ещё вопрос: на счёт таблетки к RAD 2010 - можно будет заполучить её, на почту например? )) Я не могу найти, где тут отправлять личные сообщения на форуме, перерыл всё ))
1
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 19.04.2010, 00:22 | |
|
ClearSky, на счёт таблетки - без проблем
![]() По поводу ЛС - справа от ника есть стрелочка вниз, там всплывающее меню ... в нём "отправить личное сообщение" Теперь по поводу миграции к RAD 2010. В RAD Studio многие компоненты получили пополнительные события и методы. При открытии старых проектов происходит автообновление. Изменению сильно подверглась вкладка Internet ... теперь владения перешли к InDy. (если у вас в проекте есть взаимодействие через компоненты TCPClient и подобные - лучше пока не обновляться) В любом случае, ставьте RAD 2010 не удаляя BCB 6
2
|
|
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 19.04.2010, 21:16 | |
|
MiCr0s0fT, Спасибо, разобрался во всём!
Скачал RAD 2010, там таблетка только для Delphi... Есть для C++ Builder у вас? Проблему анкоров решил просто через PageControl компонент, как вы и посоветовали ))) Так что, теперь всё идеально. Запустил RAD - красота, напоминает Visual Studio ))) Надо будет попробовать с ней поработать!
1
|
|
|
2 / 2 / 1
Регистрация: 18.11.2009
Сообщений: 43
|
|
| 21.04.2010, 20:22 [ТС] | |
|
Проблему с этими Анкорами я до сих пор так и не решил=)
вот на примере вашего приложения... если я правильно понял, то правая и левая таблицы должны растягиваться пропорционально, т.е. промежуток между ними должен оставаться неизменным, НО у меня по какой то причине ширина таблиц остается неизменной при растягивание, а промежуток между ними увеличивается Что я делал:
*прилагаю скриншот:
0
|
|
|
7 / 7 / 0
Регистрация: 24.03.2010
Сообщений: 10
|
|
| 22.04.2010, 23:22 | |
|
Насколько я понял, в данном случае - показано растягивание самого компонента StringGrid по высоте, в данном случае, про расстояние между таблицами вроде никто не говорил.
0
|
|
|
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
| 23.04.2010, 17:12 | |
|
DragoDemon, в своём приложении я показывал, как решается проблема с Anchors внутри StringGrid (почитайте предыдущую страницу, там есть вопрос от
ClearSky, или откройте код, посмотрите действие)
0
|
|
| 23.04.2010, 17:12 | |
|
Помогаю со студенческими работами здесь
20
Задание параметров в Simulink(+) Задание начальных параметров Задание параметров сеанса Задание параметров на датчик 4-20 TableLayoutPanel программное задание параметров Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|