wenn es möglich ist, mehr solcher Funktionen hinzufügen:
Geben Sie bei der Angabe des Datentyps der Zelle an, wie viele Zeichen nach dem Dezimalkomma gezeichnet werden sollen:
...
Jetzt können Sie auch die Anzahl der Dezimalstellen angeben:
//+------------------------------------------------------------------+//| Füllt das Array um die angegebenen Indizes//+------------------------------------------------------------------+void CTable::SetValue(constuint column_index,constuint row_index,conststring value="",constuint digits=0,constbool redraw=false)
{
//--- Prüfung auf Bereichsüberschreitungif(!CheckOutOfRange(column_index,row_index))
return;
//--- Den Wert in ein Array setzen:// Zeichenfolgeif(m_columns[column_index].m_data_type==TYPE_STRING)
m_columns[column_index].m_rows[row_index].m_full_text=value;
//--- Realelseif(m_columns[column_index].m_data_type==TYPE_DOUBLE)
{
m_columns[column_index].m_rows[row_index].m_digits=digits;
double type_value=::StringToDouble(value);
m_columns[column_index].m_rows[row_index].m_full_text=::DoubleToString(type_value,digits);
}
//--- Zeitelseif(m_columns[column_index].m_data_type==TYPE_DATETIME)
{
datetime type_value=::StringToTime(value);
m_columns[column_index].m_rows[row_index].m_full_text=::TimeToString(type_value);
}
//--- Jeder andere Typ wird als String gesetztelse
m_columns[column_index].m_rows[row_index].m_full_text=value;
//--- Den Text anpassen und speichern, wenn er nicht in die Zelle passt
m_columns[column_index].m_rows[row_index].m_short_text=CorrectingText(column_index,row_index);
//--- Neuzeichnen der Zelle, falls angegebenif(redraw)
RedrawCell(column_index,row_index);
}
Andrii Djola: Ich bin auch auf dieses Problem gestoßen, wenn ich die Funktion Rebuild aufrufe, werden die Bilder auf den Schaltflächen nicht gezeichnet
Das liegt daran, dass in der Methode CTable::Rebuilding() alle Zellen gelöscht und neue angelegt werden. Daher müssen nach dem Neuaufbau der Tabelle alle Zellen wieder mit Daten gefüllt werden.
Andrii Djola:
Ja, aber wenn man einen Wert mit einem Kommain das Eingabefeldeingibt , dann wird alles nach dem Komma verworfen, ich musste es ein bisschen ändern!
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Ja.
In der Tat, ja. Ich erinnere mich an etwas Ähnliches... Jetzt muss ich mich nur noch daran erinnern, was ich geändert habe :)
Ich glaube, ich habe dies hinzugefügt. Keys.mqh
...
Ich glaube, ich habe dies hinzugefügt. Keys.mqh
Habe es dem letzten Update für die Bibliothek hinzugefügt. Wird im nächsten Artikel als Appendix verfügbar sein.
Darüber hinaus gibt es einige Aktualisierungen für Tabellen in der Klasse CTable.
Die neueste Version dieser Klasse kann in diesem Artikel heruntergeladen werden: Visualisierung von Optimierungsergebnissen nach ausgewählten Kriterien
Etwas später wird die neueste Version der Bibliothek, die sich in der Codebasis befindet, hinzugefügt: EasyAndFast
Zum letzten Update für die Bibliothek hinzugefügt. Wird im nächsten Artikel als Anhang verfügbar sein.
Darüber hinaus gibt es einige Aktualisierungen für Tabellen in der Klasse CTable.
Die neueste Version dieser Klasse kann in diesem Artikel heruntergeladen werden: Visualisierung von Optimierungsergebnissen nach ausgewählten Kriterien
Wenig später wird die neueste Version der Bibliothek, die sich in der Codebasis befindet, hinzugefügt: EasyAndFast
Wenn es möglich ist, fügen Sie bitte diese Funktion hinzu:
Geben Sie bei der Angabe des Datentyps der Zelle an, wie viele Zeichen nach dem Dezimalpunkt zu zeichnen sind:
Beispiel: m_table.DataType(column,TYPE_DOUBLE,2);
oder geben Sie die Anzahl der Zeichen in einer separaten Funktion an
Beispiel: m_table.DataDigits(Spalte,2);
wenn es möglich ist, mehr solcher Funktionen hinzufügen:
Geben Sie bei der Angabe des Datentyps der Zelle an, wie viele Zeichen nach dem Dezimalkomma gezeichnet werden sollen:
...
Jetzt können Sie auch die Anzahl der Dezimalstellen angeben:
Jetzt können Sie auch die Anzahl der Dezimalstellen angeben:
Ja, aber wenn man einen Dezimalpunkt in das Eingabefeld eingibt, dann wird alles nach dem Dezimalpunkt verworfen, ich musste es ein bisschen ändern!
aber Sie haben eine großartige Arbeit geleistet!!!!
Ich bin auch auf dieses Problem gestoßen, wenn ich die Funktion Rebuild aufrufe, werden die Bilder auf den Schaltflächen nicht gezeichnet
Das liegt daran, dass in der Methode CTable::Rebuilding() alle Zellen gelöscht und neue angelegt werden. Daher müssen nach dem Neuaufbau der Tabelle alle Zellen wieder mit Daten gefüllt werden.
Andrii Djola:
Ja, aber wenn man einen Wert mit einem Kommain das Eingabefeldeingibt , dann wird alles nach dem Komma verworfen, ich musste es ein bisschen ändern!
Zeigen Sie mir im Detail, was Sie meinen.
Ich fülle sie mit der gleichen Funktion, mit der ich die Tabelle erstellt habe, aber es werden keine Bilder gezeichnet.
Zeigen Sie mir, was Sie tun und wie Sie es tun. Ohne es zu sehen, ist es schwierig, etwas vorzuschlagen.
Zeigen Sie mir, was Sie tun und wie Sie es tun. Ohne es zu sehen, ist es schwer, Ihnen etwas zu sagen.
Ich habe diesen Code gelöscht, aber wenn ich ihn reproduzieren kann, werde ich ihn hier posten!