Diskussion zum Artikel "Grafische Interfaces X: Neue Möglichkeiten der Tabellendarstellung (build 9)" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Mach es bitte mit der neuen Build6,7,8 oder 9.
Verwenden Sie MetaTrader 5. Die Version MetaTrader 4 wird nicht mehr unterstützt und ich kann Ihnen keinen Rat geben.
Ist unten OK?
//| Создаёт общую площадь |
//+------------------------------------------------------------------+
bool CColorPicker::CreateArea(void)
{
//--- Формирование имени объекта
string name=CElementBase::ProgramName()+"_color_picker_bg_"+(string)CElementBase::Id();
//--- Координаты
int x=CElementBase::X();
int y=CElementBase::Y();
//--- Создать объект
if(!m_area.Create(m_chart_id,name,m_subwin,x,y,m_x_size,m_y_size))
return(false);
//--- Свойства
m_area.BackColor(m_area_color);
m_area.Color(m_area_border_color);
m_area.BorderType(BORDER_FLAT);
m_area.Corner(m_corner);
m_area.Selectable(false);
m_area.Z_Order(m_area_zorder);
m_area.Tooltip("\n");
//--- Координаты
m_canvas.X(x);
m_canvas.Y(y);
//--- Размеры
m_canvas.XSize(m_x_size);
m_canvas.YSize(m_y_size);
//--- Отступы от крайней точки
m_area.XGap(CElement::CalculateXGap(x));
m_area.YGap(CElement::CalculateYGap(y));
//--- Сохраним указатель объекта
CElementBase::AddToArray(m_area);
return(true);
}
Vielen Dank für Ihre Antwort. (n.b. Ich fragte, ob es mit neuen Build funktioniert)
Ist unten OK?
//| Создаёт общую площадь |
//+------------------------------------------------------------------+
bool CColorPicker::CreateArea(void)
{
//--- Формирование имени объекта
string name=CElementBase::ProgramName()+"_color_picker_bg_"+(string)CElementBase::Id();
//--- Координаты
int x=CElementBase::X();
int y=CElementBase::Y();
//--- Создать объект
if(!m_area.Create(m_chart_id,name,m_subwin,x,y,m_x_size,m_y_size))
return(false);
//--- Свойства
m_area.BackColor(m_area_color);
m_area.Color(m_area_border_color);
m_area.BorderType(BORDER_FLAT);
m_area.Corner(m_corner);
m_area.Selectable(false);
m_area.Z_Order(m_area_zorder);
m_area.Tooltip("\n");
//--- Координаты
m_canvas.X(x);
m_canvas.Y(y);
//--- Размеры
m_canvas.XSize(m_x_size);
m_canvas.YSize(m_y_size);
//--- Отступы от крайней точки
m_area.XGap(CElement::CalculateXGap(x));
m_area.YGap(CElement::CalculateYGap(y));
//--- Сохраним указатель объекта
CElementBase::AddToArray(m_area);
return(true);
}
Zum Beispiel müssen Sie:
In WndEvents.mqh im öffentlichen Bereich eine neue Methode erstellen:
bool CreateColorPicker(CColorPicker &color_picker, CWindow &wnd_pointer, int wnd_index,int x,int y);
//|| Erzeugt eine Farbpalette zur Auswahl einer Farbe
//+------------------------------------------------------------------+
bool CWndEvents::CreateColorPicker(CColorPicker &color_picker, CWindow &wnd_pointer, int wnd_index, int x, int y)
{
//--- Neuberechnung der Koordinaten
int x_gap=x-wnd_pointer.X();
int y_gap=y-wnd_pointer.Y();
//--- Speichern des Fensterzeigers
color_picker.WindowPointer(wnd_pointer);
//--- Erstellen eines Elements
if(!color_picker.CreateColorPicker(m_chart_id,m_subwin,x_gap,y_gap))
return(false);
//--- Hinzufügen eines Zeigers auf das Element in der Basis
CWndContainer::AddToElementsArray(wnd_index,color_picker);
return(true);
}
//+------------------------------------------------------------------+
Und in CProgram.mqh, erstellen Sie Ihren ColorPicker:
x=m_window_main.X2()+1;
y=m_window_main.Y();
if(!CreateColorPicker(m_color_picker,m_window_main,m_window_main_index,x,y))
return(false);
...
Ich weiß, dass Sie nicht unterstützen MQL4 Version, aber ich denke, dass MQL4 ist nicht ein Grund.
Die neuesten Versionen der Bibliothek, Objekt-Koordinaten-Berechnung war anders. Sie müssen entweder die neuen Regeln verwenden , geben Sie Koordinaten des Objekts, oder in ihre eigenen Methoden , um die Koordinaten in der üblichen Sie neu zu berechnen .
......
Könnten Sie es bitte im W_DIALOG-Fenster überprüfen?
ColorPicker in dieser Bibliothek ist ein sehr leistungsfähiges Werkzeug für die Feinabstimmung von benutzerdefinierten Farben, aber ich frage mich, ob eine einfache Farbtabelle für den täglichen Gebrauch praktischer wäre.
Vielen Dank für die Anleitung. Ich habe die Koordinatenberechnung überprüft und geändert . ColorPicker funktioniert gut in meiner Umgebung aber nur wenn es im Hauptfenster (W_MAIN) angezeigt wird.
Könnten Sie es bitte im W_DIALOG-Fenster überprüfen?
ColorPicker in dieser Bibliothek ist ein sehr leistungsfähiges Werkzeug für die Feinabstimmung von benutzerdefinierten Farben, aber ich frage mich, ob eine einfache Farbtabelle für den täglichen Gebrauch praktischer wäre.
Vielen Dank für Ihre Arbeit!!! Ist das Sortieren nach Spalten und das Löschen von Zeilen in dieser Version möglich?
Vielen Dank für Ihre Arbeit!!! Ist es in dieser Version möglich, nach Spalten zu sortieren und Zeilen zu löschen?
Guten Tag! Ich habe die folgende Frage: Es gibt ein Eingabefeld SpinEdit:
Es gibt einen Eventhandler:
Und auch nach der Funktion NormalizeDouble erhalte ich solche Werte, wenn ich auf das Inkrement/Dekrement rechts neben dem Eingabefeld klicke:
Bei der Eingabe über die Tastatur ist alles korrekt.
Was kann der Grund sein?