Versuchen Sie, ein vollwertiges Fenster zu erstellen. Wie ein Windows-Formular. Man kann es auch ohne Dynamik machen, aber da Sie es teilweise implementiert haben, denke ich, dass Sie ein Windows-ähnliches "Gummifenster" erhalten werden.
Реter Konow: Versuchen Sie, ein vollwertiges Fenster zu erstellen. Wie ein Windows-Formular. Es geht auch ohne Dynamik, aber da Sie sie teilweise implementiert haben, werden Sie wohl ein Windows-ähnliches "Gummifenster" erhalten.
Der schwierigste Teil wird das Zeichnen der Knöpfe sein :))
Die Scrolls wurden separat erstellt, sie können auf eine bestimmte Fensterkonfiguration angewendet werden, der Rest (Ereignisse, Änderungen der erforderlichen Eigenschaften) wird automatisch durchgeführt. Die Verbindung zwischen ihnen ist sehr einfach:
Was dieSchwierigkeit , eine Tabelle zu erstellen, angeht: Die Engine ist sehr gut gelungen, so dass die Erstellung einer Tabelle mit ihr nicht so schwierig ist.
Ich habe mich daran erinnert, woran mich das alles erinnert...
Demos von GVision (einem der Nachfahren von TVision).
Etwa 93-95 konnte man die oben erwähnten Demos (*wer weiß das nicht - die Software wurde im Einzelhandel verkauft) in der Buchhandlung "House of Tech Books" in der Leninsky Straße kaufen. Es gab sogar einen separaten Monitor, auf dem die Demo lief, und man konnte sie "ausprobieren". Es war cool - die Schilder, die Knöpfe, die Kontroll-/Radioboxen und die Grafiken...
aber dann habe ich einen Zortec-C gekauft. Ein gewichtiger Karton mit 5 Bänden Dokumentation und einigen Disketten :-)
Der "gummiartige" Fenstermechanismus wird zunächst eingeführt,
aber wenn Sie die Größe ändern:
Die Fenster dürfen nicht blinken,
Es sollten 8 Fenstergriffe für die Größenänderung vorhanden sein - für jede Seite und jede Ecke.
Das Fenster als Ganzes wird nämlich nicht gebildet. Es gibt noch keine Integrität.
Mit der Idee sollten Sie zu einer ähnlichen Option kommen:
Also, im Großen und Ganzen haben Sie sich gut geschlagen! Das hatte ich nicht erwartet. ))))
Weiter.
1. verwendet Rechtecke und kanvasses in großer Zahl mit Dynamik, vielleicht nicht blinken, wenn alles auf einem kanvass war, gibt es bereits Einschränkungen der Plattform, und zeichnen Sie alles auf einem kanvass ist nicht wünschenswert. Vielleicht nur, um alles auf einmal mit DirectX zu übersetzen...
2. Ich habe gerade eine kleine Komponente hinzugefügt, die die Streckung implementiert. Und es gibt keine Integrität, es sind nur zusammengesetzte Elemente, die nicht unbedingt grafisch sind.
Was haben Sie nicht erwartet? Dehnen? So einfach ist das für mich. Ich mache diese Dinge für mein Projekt, ich habe nicht vor, eine Bibliothek mit grafischen Steuerelementen zu erstellen, obwohl die Basis für ihre Erstellung sehr gut ist
#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. Rechtecke und Kanvas werden in großen Mengen mit Dynamics verwendet, vielleicht würde es nicht auffallen, wenn alles auf einem Kanvas wäre, aber es gibt bereits Plattformbeschränkungen, und alles auf einem Kanvas zu zeichnen ist nicht wünschenswert. Vielleicht nur, um alles auf einmal mit DirectX zu übersetzen...
2. Ich habe gerade eine kleine Komponente hinzugefügt, die die Streckung implementiert. Und es gibt keine Integrität, es sind nur zusammengesetzte Elemente, die nicht unbedingt grafisch sind.
Was haben Sie nicht erwartet? Stretching? So einfach ist das für mich:
Es blinkt, weil Sie die Größe ALLER Leinwände ändern, was Ressourcen verbraucht, aber wenn Sie den Bereich des sichtbaren Bildes auf einer Leinwand mit MAXIMALER Größe ändern, wird dieser unangenehme Effekt beseitigt. Das heißt, Sie erstellen im Voraus eine Leinwand in der Größe des Bildschirms, verbinden das Bild mit dieser Leinwand (in derselben Größe) und "beschneiden" es dann. Und die Funktionen zur Größenänderung definieren nur den sichtbaren Bereich der Leinwand, ohne ihn neu zu erstellen.
Versuchen Sie, ein vollwertiges Fenster zu erstellen. Wie ein Windows-Formular. Es geht auch ohne Dynamik, aber da Sie sie teilweise implementiert haben, werden Sie wohl ein Windows-ähnliches "Gummifenster" erhalten.
Der schwierigste Teil wird das Zeichnen der Knöpfe sein :))
Ja, ich dachte mir, dass das der schwierigste Teil ist, weil es keine gibt. ))))
Die Scrolls wurden separat erstellt, sie können auf eine bestimmte Fensterkonfiguration angewendet werden, der Rest (Ereignisse, Änderungen der erforderlichen Eigenschaften) wird automatisch durchgeführt. Die Verbindung zwischen ihnen ist sehr einfach:
Was dieSchwierigkeit , eine Tabelle zu erstellen, angeht: Die Engine ist sehr gut gelungen, so dass die Erstellung einer Tabelle mit ihr nicht so schwierig ist.
Ja, ich dachte mir, das ist der schwierigste Teil, weil es keine gibt. ))))
Eine Demo für Ihren Monitor. Für die untere rechte Ecke können Sie die Größe der Tabelle ändern
Eine Demo für Ihren Monitor. Für die untere rechte Ecke können Sie die Größe der Tabelle ändern
Danke für die Demo für meinen Monitor.
Und so:
aber wenn Sie die Größe ändern:
Mit der Idee sollten Sie zu einer ähnlichen Option kommen:
Im Großen und Ganzen haben Sie sich gut geschlagen! Das hatte ich nicht erwartet. ))))
Ich habe mich erinnert!
Ich habe mich daran erinnert, woran mich das alles erinnert...
Demos von GVision (einem der Nachfahren von TVision).
Etwa 93-95 konnte man die oben erwähnten Demos (*wer weiß das nicht - die Software wurde im Einzelhandel verkauft) in der Buchhandlung "House of Tech Books" in der Leninsky Straße kaufen.
Es gab sogar einen separaten Monitor, auf dem die Demo lief, und man konnte sie "ausprobieren". Es war cool - die Schilder, die Knöpfe, die Kontroll-/Radioboxen und die Grafiken...
aber dann habe ich einen Zortec-C gekauft. Ein gewichtiger Karton mit 5 Bänden Dokumentation und einigen Disketten :-)
schön zu erinnern.
Danke für die Demo für meinen Monitor.
Und so:
aber wenn Sie die Größe ändern:
Mit der Idee sollten Sie zu einer ähnlichen Option kommen:
Also, im Großen und Ganzen haben Sie sich gut geschlagen! Das hatte ich nicht erwartet. ))))
1. verwendet Rechtecke und kanvasses in großer Zahl mit Dynamik, vielleicht nicht blinken, wenn alles auf einem kanvass war, gibt es bereits Einschränkungen der Plattform, und zeichnen Sie alles auf einem kanvass ist nicht wünschenswert. Vielleicht nur, um alles auf einmal mit DirectX zu übersetzen...
2. Ich habe gerade eine kleine Komponente hinzugefügt, die die Streckung implementiert. Und es gibt keine Integrität, es sind nur zusammengesetzte Elemente, die nicht unbedingt grafisch sind.
Was haben Sie nicht erwartet? Dehnen? So einfach ist das für mich. Ich mache diese Dinge für mein Projekt, ich habe nicht vor, eine Bibliothek mit grafischen Steuerelementen zu erstellen, obwohl die Basis für ihre Erstellung sehr gut ist
1. Rechtecke und Kanvas werden in großen Mengen mit Dynamics verwendet, vielleicht würde es nicht auffallen, wenn alles auf einem Kanvas wäre, aber es gibt bereits Plattformbeschränkungen, und alles auf einem Kanvas zu zeichnen ist nicht wünschenswert. Vielleicht nur, um alles auf einmal mit DirectX zu übersetzen...
2. Ich habe gerade eine kleine Komponente hinzugefügt, die die Streckung implementiert. Und es gibt keine Integrität, es sind nur zusammengesetzte Elemente, die nicht unbedingt grafisch sind.
Was haben Sie nicht erwartet? Stretching? So einfach ist das für mich: