Entschuldigung."TRADE_EVENT_POSITION_OPEN =0x1" x1 ist das erste Bit der Ereignisliste???? Ich meine, in diesem Teil der Ereignisliste können Sie jedes Bit auf diese Weise verfügbar machen?
RannForex-Server - Europe
MetaQuotes-Demo - Europe
FXOpen-MT5 - USA
Alpari-MT5 - Europe
Tickmill-Live - USA
ICMarketsSC-MT5-2 - USA
Darwinex-Live - USA
Ich weiß nicht, ob ich meine Frage im richtigen Thread stelle oder nicht...
Die Essenz der Frage - ich habe ein Panel mit Schaltflächen, Eingabefeldern und Beschriftungen auf Basis von AppDialog aus der Standardbibliothek erstellt.
Der Kunde hat sich darüber beschwert, dass beim Heranzoomen über die Personalisierungseinstellungen von Windows,
nur die Schriftarten auf dem Panel vergrößert werden, aber die Steuerelemente selbst nicht, so dass die Beschriftungen über die Grenzen der Steuerelemente hinausgehen.
Wie kann ich das Problem so lösen, dass nicht nur die Schriftarten, sondern auch die Größe der Bedienelemente und des Bedienfelds selbst skaliert werden?
Natürlich habe ich eine kleine Reserve, und ich kann die Größe der Elemente leicht erhöhen. Wenn ich dann die Bildschirmparameter auf 125%
erhöht, passt alles, aber wenn ich sie auf 150 % erhöhe, passt nichts mehr.
Ich möchte das Problem also radikal lösen, so dass die Elemente des Panels und das Panel selbst auch proportional zum Maßstab wachsen. Wie kann man das machen?
Ich verstehe, dass es notwendig ist, irgendwie, wahrscheinlich durch WIN IP, um diese Skala Figur - 100%, oder 125% oder 150%. Die Frage ist, wie man es in den EA-Code implementieren?
P.S. Zur Klarstellung. Das Programm verwendet die Standardbibliothek MQL5, ist aber in MQL4 geschrieben.
Ich bin im Voraus jedem dankbar, der antworten wird....
Der Kunde beschwerte sich, dass beim Zoomen in durch Windows-Personalisierungseinstellungen,
nur die Schriftarten auf dem Bedienfeld vergrößert werden, aber die Steuerelemente selbst nicht, so dass die Beschriftungen über die Grenzen der Steuerelemente hinausgehen.
Wie kann ich das Problem so lösen, dass nicht nur die Schriftarten, sondern auch die Größe der Bedienelemente und des Bedienfelds selbst skaliert werden?
Natürlich habe ich eine kleine Reserve und ich kann die Größe der Elemente leicht erhöhen, dann, wenn ich die Bildschirm-Parameter auf 125% zu erhöhen.
passt alles, aber wenn ich sie auf 150% erhöhe, dann passt nichts mehr.
Ich möchte das Problem also radikal lösen, so dass die Elemente des Panels und das Panel selbst auch im Verhältnis zur Skalierung wachsen. Wie kann ich das machen?
Ich verstehe, dass es notwendig ist, irgendwie, wahrscheinlich durch WIN IP, um diese Skala Figur - 100%, oder 125% oder 150%. Die Frage ist, wie man es in den EA-Code zu implementieren?
P.S. Zur Klarstellung. Das Programm verwendet die Standardbibliothek MQL5, ist aber in MQL4 geschrieben.
Ich bin im Voraus jedem dankbar, der antworten wird....
Versuchen Sie, die Textgröße zu definieren, bevor Sie Objekte mit TextSetFont() und TextGetSize() erstellen.
Es ist mir gelungen, eine Fahrradkonstruktion zusammenzustellen, die ich in die Praxis umgesetzt habe. Ich werde versuchen, Ihnen kurz zu erzählen.
Es gibt eine solche Arbeit mit einer Datenbank.
// Элемент БД.class DATA
{
private:
staticint Count;
public:
int Num;
DATA() : Num(DATA::Count++) {}
};
staticint DATA::Count = 0;
#define SIZE 5// БД.class A
{
private:
static DATA DataArray[SIZE]; // База данных.static DATA* Data; // Выбранный элемент БД.public:
staticvoid Set( constint Num ) // Выбор элемента и перемешение элементов БД.
{
A::Data = &A::DataArray[Num % SIZE];
::ArrayReverse(A::DataArray); // Перемешение элементов БД.
}
staticint Get() { return(A::Data.Num); } // Получение значения элемента.
};
static DATA A::DataArray[5];
static DATA* A::Data;
Jedes Mal, wenn ein Element aus der Datenbank ausgewählt wird, werden seine Elemente gemischt. Künstlich, aber es ist notwendig, das zu erklären.
Und hier müssen wir das Folgende tun.
voidOnStart()
{
A::Set(2);
Print(A::Get()); // Какое-то значение Value.// Перемешиваем БД.MathSrand((int)TimeLocal());
for (int i = MathRand(); i >= 0; i--)
A::Set(i);
Print(A::Get()); // Что-то образовалось. Print(A::Get()); // Здесь хочется получить Value.
}
Erläuterung des Codes: Sie wählen ein Element zum ersten Mal aus, dann tun Sie es viele Male. Und wir müssen das Element abrufen, das beim ersten Mal ausgewählt wurde.
Wir müssen irgendwie eine DB-Klasse hinzufügen, damit wir dies tun können. Gleichzeitig ist es unmöglich, Zugriff auf den Zeiger auf das Element (DATA*) zu geben.
Code-Erklärung: ein Element zum ersten Mal ausgewählt, dann tat es viele Male. Und wir brauchen, um das Element, das das erste Mal ausgewählt wurde zu erhalten.
Wir müssen irgendwie eine Datenbankklasse hinzufügen, um dies zu ermöglichen. Gleichzeitig ist es unmöglich, Zugriff auf den Zeiger auf das Element (DATA*) zu geben.
Die Lösung ist, der DB-Klasse ein paar Zeilen hinzuzufügen.
// БД.class A
{
// Тело класса до решения задачи.// .....// В БД-класс дописываются эти строки.public:
class POINTER
{
private:
DATA* Data;
public:
POINTER() : Data(A::Data) {}
void Set() const { A::Data = this.Data; }
};
};
Danach sieht OnStart wie folgt aus.
voidOnStart()
{
A::Set(2);
Print(A::Get()); // Какое-то значение Value.
A::POINTER Pointer; // Запоминание элемента без доступа к нему.// Перемешиваем БД.MathSrand((int)TimeLocal());
for (int i = MathRand(); i >= 0; i--)
A::Set(i);
Print(A::Get()); // Что-то образовалось.
Pointer.Set(); // Запомненный элемент становится выбранным в БД.Print(A::Get()); // Здесь хочется получить Value.
}
Dies ist möglich, weil die im Körper der Hauptklasse definierte Klasse Zugriff auf die versteckten statischen Mitglieder dieser Hauptklasse hat.
Ich hoffe, dass dies kein Fehler in der MQL-Sprache ist, sondern ein praktischer Standard (Feature).
In Analogie zu C++. Eine verschachtelte Klasse ist ein Freund für die einschließende Klasse. Es ist dort im Standard beschrieben. Es wäre gut, es auch hier in die Hilfe zu schreiben)
Hinzugefügt.
Diejenigen, die bisher ohne const geschrieben haben, können dies jetzt nicht mehr tun. Sonst gibt es einen Fehler.
Es scheint, dass die Neuerung schwerwiegende Fehler in zuvor geschriebenen Codes verspricht.
Entschuldigung."TRADE_EVENT_POSITION_OPEN =0x1" x1 ist das erste Bit der Ereignisliste???? Ich meine, in diesem Teil der Ereignisliste können Sie jedes Bit auf diese Weise verfügbar machen?
Bitte lassen Sie es mich wissen.
Es gibt zwei Arten von Brokern, die die US/Europäische Zeit umrechnen. Hierdurch verschiebt sich insbesondere der Rollover-Zeitpunkt.
Der Brokertyp kann automatisch ermittelt werden.
Starten Sie die Ergebnisse bei einigen Brokern.
RannForex-Server - Europe MetaQuotes-Demo - Europe FXOpen-MT5 - USA Alpari-MT5 - Europe Tickmill-Live - USA ICMarketsSC-MT5-2 - USA Darwinex-Live - USAHallo!
Ich weiß nicht, ob ich meine Frage im richtigen Thread stelle oder nicht...
Die Essenz der Frage - ich habe ein Panel mit Schaltflächen, Eingabefeldern und Beschriftungen auf Basis von AppDialog aus der Standardbibliothek erstellt.
Der Kunde hat sich darüber beschwert, dass beim Heranzoomen über die Personalisierungseinstellungen von Windows,
nur die Schriftarten auf dem Panel vergrößert werden, aber die Steuerelemente selbst nicht, so dass die Beschriftungen über die Grenzen der Steuerelemente hinausgehen.
Wie kann ich das Problem so lösen, dass nicht nur die Schriftarten, sondern auch die Größe der Bedienelemente und des Bedienfelds selbst skaliert werden?
Natürlich habe ich eine kleine Reserve, und ich kann die Größe der Elemente leicht erhöhen. Wenn ich dann die Bildschirmparameter auf 125%
erhöht, passt alles, aber wenn ich sie auf 150 % erhöhe, passt nichts mehr.
Ich möchte das Problem also radikal lösen, so dass die Elemente des Panels und das Panel selbst auch proportional zum Maßstab wachsen. Wie kann man das machen?
Ich verstehe, dass es notwendig ist, irgendwie, wahrscheinlich durch WIN IP, um diese Skala Figur - 100%, oder 125% oder 150%. Die Frage ist, wie man es in den EA-Code implementieren?
P.S. Zur Klarstellung. Das Programm verwendet die Standardbibliothek MQL5, ist aber in MQL4 geschrieben.
Ich bin im Voraus jedem dankbar, der antworten wird....
Der Kunde beschwerte sich, dass beim Zoomen in durch Windows-Personalisierungseinstellungen,
nur die Schriftarten auf dem Bedienfeld vergrößert werden, aber die Steuerelemente selbst nicht, so dass die Beschriftungen über die Grenzen der Steuerelemente hinausgehen.
Wie kann ich das Problem so lösen, dass nicht nur die Schriftarten, sondern auch die Größe der Bedienelemente und des Bedienfelds selbst skaliert werden?
Natürlich habe ich eine kleine Reserve und ich kann die Größe der Elemente leicht erhöhen, dann, wenn ich die Bildschirm-Parameter auf 125% zu erhöhen.
passt alles, aber wenn ich sie auf 150% erhöhe, dann passt nichts mehr.
Ich möchte das Problem also radikal lösen, so dass die Elemente des Panels und das Panel selbst auch im Verhältnis zur Skalierung wachsen. Wie kann ich das machen?
Ich verstehe, dass es notwendig ist, irgendwie, wahrscheinlich durch WIN IP, um diese Skala Figur - 100%, oder 125% oder 150%. Die Frage ist, wie man es in den EA-Code zu implementieren?
P.S. Zur Klarstellung. Das Programm verwendet die Standardbibliothek MQL5, ist aber in MQL4 geschrieben.
Ich bin im Voraus jedem dankbar, der antworten wird....
Versuchen Sie, die Textgröße zu definieren, bevor Sie Objekte mit TextSetFont() und TextGetSize() erstellen.
Versuchen Sie, die Größe des Textes durch TextSetFont() und TextGetSize() zu definieren, bevor Sie Objekte erstellen
Es ist mir gelungen, eine Fahrradkonstruktion zusammenzustellen, die ich in die Praxis umgesetzt habe. Ich werde versuchen, Ihnen kurz zu erzählen.
Es gibt eine solche Arbeit mit einer Datenbank.
Jedes Mal, wenn ein Element aus der Datenbank ausgewählt wird, werden seine Elemente gemischt. Künstlich, aber es ist notwendig, das zu erklären.
Und hier müssen wir das Folgende tun.
Erläuterung des Codes: Sie wählen ein Element zum ersten Mal aus, dann tun Sie es viele Male. Und wir müssen das Element abrufen, das beim ersten Mal ausgewählt wurde.
Wir müssen irgendwie eine DB-Klasse hinzufügen, damit wir dies tun können. Gleichzeitig ist es unmöglich, Zugriff auf den Zeiger auf das Element (DATA*) zu geben.
Code-Erklärung: ein Element zum ersten Mal ausgewählt, dann tat es viele Male. Und wir brauchen, um das Element, das das erste Mal ausgewählt wurde zu erhalten.
Wir müssen irgendwie eine Datenbankklasse hinzufügen, um dies zu ermöglichen. Gleichzeitig ist es unmöglich, Zugriff auf den Zeiger auf das Element (DATA*) zu geben.
Die Lösung ist, der DB-Klasse ein paar Zeilen hinzuzufügen.
Danach sieht OnStart wie folgt aus.
Dies ist möglich, weil die im Körper der Hauptklasse definierte Klasse Zugriff auf die versteckten statischen Mitglieder dieser Hauptklasse hat.
Klasse, die im Körper einer Hauptklasse definiert ist, hat Zugriff auf die verborgenen statischen Mitglieder dieser Hauptklasse.
Ich hoffe, dies ist kein Fehler der MQL-Sprache, sondern ein praktischer Standard (Feature).
Ich hoffe, dass dies kein Fehler in der MQL-Sprache ist, sondern ein praktischer Standard (Feature).