Попробуйте сделать полноценное окно. Как виндоус форма. Можно без динамичности, но раз уж Вы ее частично реализовали, думаю получится виндоус-подобное "резиновое" окно.
Реter Konow: Попробуйте сделать полноценное окно. Как виндоус форма. Можно без динамичности, но раз уж Вы ее частично реализовали, думаю получится виндоус-подобное "резиновое" окно.
Прокрутки делались отдельно, их можно применять к определённой конфигурации окон, остальное(события,изменения необходимых свойств) будет сделано автоматически. Подключение их очень простое:
Году эдак около 93-95 упомянутое можно было купить (*кто не в курсе - софт продавался в розницу) в книжном магазине "Дом Тех.Книги" на Ленинском. Даже стоял отдельный монитор где демка прокручивалась,и можно было "попробовать". Это было круто - таблички, кнопочки, чек/радио-боксы, и в графике..
но я тогда купил Zortec-C. Увесистая коробка, с 5 томами документации и сколько-то дискеток :-)
ручек ухвата окон для изменения размеров должно быть 8 - за каждую сторону и каждый угол.
Фактически, окно как сущность не сформировано. Пока еще нет целостности.
По идеи, Вы должны прийти к подобному варианту:
Ну а в целом, Вы конечно, молодец! Не ожидал.))))
Продолжайте.
1. Используются прямоугольники и канвасы в большом количестве с динамикой, может и не моргало если бы всё было на одном канвасе, тут уже ограничения платформы, а рисовать всё на одном канвасе нету желания. Может только если сразу всё на DirectX перевести...
2. Просто добавил один небольшой компонент, который реализует растягивание, на таблице тестировал. А целостности и нету, это просто сборные элементы, и не обязательно графические
Что не ожидали? Растягивание? Так это легко всё делается у меня. Я делаю эти штуки для своего проекта, создавать библиотеку графических элементов управления у меня нету в планах, хотя основа для её создания очень хорошая
#include <Greshnik\\\Windows_engine\\Windows_engine_base.mqh>
//Элемент, который будет изменять размер родительского окна перетаскиванием мышки//По умолчанию окошко будеи распологаться в правом нижнем углуclass cV_resizer
{
cV_object_base *_main;//Основное окноclass My_events: public iE_event_handler
{
public:
cV_object_base *_e_my;
void On_event(sEvent &event);
};
My_events ev;
public:
//Создание таблицыbool Create(
cV_object_base &parent_object,
string name=NULL
);
};
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+void cV_resizer::My_events::On_event(sEvent &event)
{
if(event.id==CHARTEVENT_ON_PROPERTY_CHANGED_)
{
if(event.lparam==vop_position_x)
{
cV_object_base *par=_e_my.Get_parent();
long p=par.Get_property(vop_size_x).data_long;
long pos=_e_my.Get_property(vop_position_x).data_long;
long size=_e_my.Get_property(vop_size_x).data_long;
long d=pos+size-p;
par.Set_property(vop_size_x,p+d);
_e_my.Set_property(vop_position_x,par.Get_property(vop_size_x).data_long-size);
}
else
{
cV_object_base *par=_e_my.Get_parent();
long p=par.Get_property(vop_size_y).data_long;
long pos=_e_my.Get_property(vop_position_y).data_long;
long size=_e_my.Get_property(vop_size_y).data_long;
long d=pos+size-p;
par.Set_property(vop_size_y,p+d);
_e_my.Set_property(vop_position_y,par.Get_property(vop_size_y).data_long-size);
}
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool cV_resizer::Create(cV_object_base &parent_object,string name=NULL)
{
int width=20;
int height=20;
long width_p=parent_object.Get_property(vop_size_x).data_long;
long heigth_p=parent_object.Get_property(vop_size_y).data_long;
_main=new cV_object_base();
_main.Set_property_info(vop_size_x,width);
_main.Set_property_info(vop_size_y,height);
_main.Set_property_info(vop_position_x,width_p-width);
_main.Set_property_info(vop_position_y,heigth_p-height);
_main.Set_property_info(vop_is_movable,true);
_main.Create(parent_object);
_main.Add_event_handler(GetPointer(ev));
_main.Set_property_change_event(vop_position_x);
_main.Set_property_change_event(vop_position_y);
ev._e_my=GetPointer(_main);
returntrue;
}
1. Используются прямоугольники и канвасы в большом количестве с динамикой, может и не моргало если бы всё было на одном канвасе, тут уже ограничения платформы, а рисовать всё на одном канвасе нету желания. Может только если сразу всё на DirectX перевести...
2. Просто добавил один небольшой компонент, который реализует растягивание, на таблице тестировал. А целостности и нету, это просто сборные элементы, и не обязательно графические
Что не ожидали? Растягивание? Так это легко всё делается у меня:
Моргает, потому что меняете размер ВСЕГО канваса, что ресурсо-затратно, однако, если менять область вимимого изображения на канвасе МАКСИМАЛЬНОГО размера, избавитесь от этого неприятного эффекта. Т.е. заранее создаете канвас размером с экран монитора, подключаете к нему изображение (такого же размера), а затем "обрезаете" его. А функции изменения размеров определяют только область видимости канваса, не пересоздавая его заново.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Попробуйте сделать полноценное окно. Как виндоус форма. Можно без динамичности, но раз уж Вы ее частично реализовали, думаю получится виндоус-подобное "резиновое" окно.
Самое сложное будет нарисовать кнопочки :))
Да, я так и понял, что это самое сложное, потому что их нет.))))
Прокрутки делались отдельно, их можно применять к определённой конфигурации окон, остальное(события,изменения необходимых свойств) будет сделано автоматически. Подключение их очень простое:
По поводу сложности создания таблицы: движок очень хороший получился, поэтому создание таблицы, используя его, не так уж сложно.
Да, я так и понял, что это самое сложное, потому что их нет.))))
Демка для вашего монитора. За правый нижний угол можно изменять размер таблицы
Демка для вашего монитора. За правый нижний угол можно изменять размер таблицы
Спс за демку для моего монитора.
И так:
но при изменении размеров:
По идеи, Вы должны прийти к подобному варианту:
Ну а в целом, Вы конечно, молодец! Не ожидал.))))
вспомнил !
я вспомнил что всё это мне напоминает...
демки от GVision (один из потомков TVision).
Году эдак около 93-95 упомянутое можно было купить (*кто не в курсе - софт продавался в розницу) в книжном магазине "Дом Тех.Книги" на Ленинском.
Даже стоял отдельный монитор где демка прокручивалась,и можно было "попробовать". Это было круто - таблички, кнопочки, чек/радио-боксы, и в графике..
но я тогда купил Zortec-C. Увесистая коробка, с 5 томами документации и сколько-то дискеток :-)
приятно вспомнить.
Спс за демку для моего монитора.
И так:
но при изменении размеров:
По идеи, Вы должны прийти к подобному варианту:
Ну а в целом, Вы конечно, молодец! Не ожидал.))))
1. Используются прямоугольники и канвасы в большом количестве с динамикой, может и не моргало если бы всё было на одном канвасе, тут уже ограничения платформы, а рисовать всё на одном канвасе нету желания. Может только если сразу всё на DirectX перевести...
2. Просто добавил один небольшой компонент, который реализует растягивание, на таблице тестировал. А целостности и нету, это просто сборные элементы, и не обязательно графические
Что не ожидали? Растягивание? Так это легко всё делается у меня. Я делаю эти штуки для своего проекта, создавать библиотеку графических элементов управления у меня нету в планах, хотя основа для её создания очень хорошая
1. Используются прямоугольники и канвасы в большом количестве с динамикой, может и не моргало если бы всё было на одном канвасе, тут уже ограничения платформы, а рисовать всё на одном канвасе нету желания. Может только если сразу всё на DirectX перевести...
2. Просто добавил один небольшой компонент, который реализует растягивание, на таблице тестировал. А целостности и нету, это просто сборные элементы, и не обязательно графические
Что не ожидали? Растягивание? Так это легко всё делается у меня: