Библиотеки: EasyAndFastGUI - библиотека для создания графических интерфейсов - страница 8
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Компиляция ExampleEAF.mq5 помогла.
Я полагал, что мне нужно компилировать библиотеку, когда я хочу создавать с ее помощью собственные вещи.
Тем не менее, спасибо большое!
О, и я натыкался на эту строку кода в верхней части большинства файлов библиотек:
class CWindow;Является ли создание "поддельного класса" каким-то трюком, чтобы избежать кошмара #include? Как впоследствии компилятор может связать правильный класс, который действительно используется?
Сначала бы довести до ума то что имеется... Ведь там ещё полно недоработок.
У меня вот есть замечания по архитектуре. Задаваемые свойства объектов и отображаемая картинка живут своими жизнями, независимо друг от друга. И требуется обязательный вызов Update(), иначе они так и останутся жить в параллельных реальностях. Считаю, это неправильно, учитывая что у нас событийная модель. Ручное обновление (перерисовка) не должно быть обязательным условием. Оно лишь позволяет отобразить изменения немедленно, но все изменения в любом случае должны быть отображены. Для этого должно отсылаться сообщение (событие) на перерисовку данного объекта, которое будет обработано позднее.
Т.е. примерно так:
Анатолий, подскажите, пожалуйста. С помощью ChangeWindowWidth меняю ширину окна таким образом, что оно выходит за пределы текущего чарта. После этого при попытке передвинуть это окно, оно автоматически прилипает к левому краю чарта. Как отключить это? Не могу найти место в коде.
Анатолий, подскажите, пожалуйста. С помощью ChangeWindowWidth меняю ширину окна таким образом, что оно выходит за пределы текущего чарта. После этого при попытке передвинуть это окно, оно автоматически прилипает к левому краю чарта. Как отключить это? Не могу найти место в коде.
Нужно переписывать метод CWindow::UpdateWindowXY(). Он сейчас реализован таким образом, что края окна не могут выйти за пределы графика при перемещении окна.
Кстати, по поводу изменения ширины окна
m_window1.ChangeWindowWidth(NEW_WIDTH); m_window1.Update(true);В МТ5 все нормально, а вот в МТ4 вот такое
После клика на заголовке кнопки перемещаются на положеное место. Не подскажите, в какую сторону смотреть? Где реализовано перемещение этих кнопок?
Кстати, по поводу изменения ширины окна
В МТ5 все нормально, а вот в МТ4 вот такое
После клика на заголовке кнопки перемещаются на положеное место. Не подскажите, в какую сторону смотреть? Где реализовано перемещение этих кнопок?
Посмотрите метод Moving().
Попробуйте через указатели получить доступ к кнопкам окна и вызовите этот метод.
Да, требуется либо пропорциональное увеличение ширины всех столбцов, либо только последнего столбца. Второе предпочтительней.
Но в текущей версии даже самостоятельно это реализовать проблематично, т.к. я не нашёл в вашем классе метод для получения текущей ширины столбца, а все поля приватные. В общем, как минимум этот метод необходимо добавить.
Вот так можно попробовать уже сейчас реализовать то, что Вам нужно:
Посмотрите метод Moving().
Попробуйте через указатели получить доступ к кнопкам окна и вызовите этот метод.
Да, то что надо :) Спасибо!
Казалось, уже все облазил, а самое очевидное пропустил :)
Вот так можно попробовать уже сейчас реализовать то, что Вам нужно:
Это ж просто фиксированная ширина столбца. А речь шла о динамическом изменении ширины столбцов, исходя из их предыдущей ширины. Впрочем я уже допилил класс, добавив туда метод int ColumnWidth(int i)
Добрый день.
Проблема посерьезнее :)
Создаем динамический объект, например лейбл
А вот чем удалять?
Удаляю так
Но после удаления вылет, ругается на неправильный доступ к указателю.
На сколько я разобрался, CWndContainer::AddToElementsArray добавляет объект в общие массивы, но Delete() не удаляет его от туда, и окно пытается обращаться к объекту. А другого похожего на Delete() не нахожу.
Как правильно удалить объект?