Diskussion zum Artikel "Graphische Interfaces III: Einfache und multifunktionale Buttons (Chapter 1)" - Seite 3

 
Guten Tag, ich hoffe, Sie können mir helfen.

Ich möchte eine Schaltfläche mit zwei Zuständen bewegen, nachdem ich auf sie geklickt habe. Die Methode ist geschrieben, aber sie funktioniert nicht.

Ich kann aus den Protokollen sehen, dass die Funktion aufgerufen wird, aber die Position der Schaltfläche ändert sich nicht

void CVisButBoard::ChangeButtonPosition(CButtHedge &_button, const int _ShiftX, const int _ShiftY)
  {
      _button.Moving(_ShiftX,_ShiftY);
  
  }


class CSimpleButton : public CElement
  

void CSimpleButton::Moving(const int x,const int y)
  {
//--- Beenden, wenn das Element ausgeblendet ist
   if(!CElement::IsVisible())
      return;
      
  Print("Budem Dvigat? X?",x);    
//--- Speichern von Koordinaten in Elementfeldern
   CElement::X(x+XGap());
   CElement::Y(y+YGap());
//--- Speichern von Koordinaten in Objektfeldern
   m_button.X(x+m_button.XGap());
   m_button.Y(y+m_button.YGap());
//--- Aktualisierung der Koordinaten von grafischen Objekten
   m_button.X_Distance(m_button.X());
   m_button.Y_Distance(m_button.Y());
  }
//+---
 

Guten Tag!

Vielen Dank an den Autor für die Artikel, sehr informativ und interessant. Aber ich habe sie noch nicht alle gelesen und habe eine Frage - ist es möglich, die Schaltflächen nicht "transparent" zu machen, d . h . man kann nicht durch sie scrollen, um das Diagramm mit dem Preis zu sehen. Es stellt sich heraus, dass, wenn sich der Cursor beim Drücken der Schaltfläche ein wenig verschiebt, die Schaltfläche nicht gedrückt wird, weil das Preisdiagramm erfasst wird. Vielen Dank im Voraus für jede Hilfe.

 
Ruslan Piraliyev #:

Guten Tag!

Vielen Dank an den Autor für die Artikel, sehr informativ und interessant. Aber ich habe sie noch nicht alle gelesen und habe eine Frage - ist es möglich, die Schaltflächen nicht "transparent" zu machen, d . h . man kann nicht durch sie scrollen, um das Diagramm mit dem Preis zu sehen. Es stellt sich heraus, dass, wenn sich der Cursor beim Drücken der Schaltfläche ein wenig verschiebt, die Schaltfläche nicht gedrückt wird, weil das Preisdiagramm erfasst wird. Vielen Dank im Voraus für jede Hilfe.

Wenn Sie die Bibliothek nur für Ihre Projekte verwenden wollen, müssen Sie nicht alle Artikel lesen.

Es ist besser, die neueste Version der Bibliothek von hier zu beziehen: https: //www.mql5.com/ru/code/19703.

Und sehen Sie sich Beispiele mit grafischen Oberflächen aus den letzten Artikeln an:

EasyAndFastGUI - библиотека для создания графических интерфейсов
EasyAndFastGUI - библиотека для создания графических интерфейсов
  • www.mql5.com
Библиотека EasyAndFastGUI дает возможность создавать графические интерфейсы для своих MQL-программ.
 
Anatoli Kazharski #:

Wenn Sie die Bibliothek nur für Ihre Projekte nutzen wollen, müssen Sie nicht unbedingt alle Artikel lesen.

Es ist besser, die neueste Version der Bibliothek von hier zu beziehen: https: //www.mql5.com/ru/code/19703

Und sehen Sie sich Beispiele mit grafischen Schnittstellen aus den letzten Artikeln an:

Danke für die Links, ich werde sie mir nach Möglichkeit ansehen. Was ist mit meiner Frage nach der "Transparenz" von grafischen Objekten, durch die der Kurs-Chart scrollt? Ist es möglich, grafische Objekte nicht "transparent" zu machen? Vielleicht haben Sie ja Erfahrung in diesem Bereich und sind darauf gestoßen.

 
Ruslan Piraliyev #:

Vielen Dank für die Links, ich werde sie nach Möglichkeit ausprobieren. Was ist mit meiner Frage zur "Transparenz" von grafischen Objekten, durch die das Preisdiagramm scrollt? Ist es möglich, grafische Objekte nicht "transparent" zu machen? Vielleicht haben Sie ja Erfahrung in diesem Bereich und sind schon darauf gestoßen.

Ich verstehe die Frage nicht. Ich glaube, dass es in den neuesten Versionen kein solches Problem gibt. Probieren Sie es aus.

 
Anatoli Kazharski #:

Ich verstehe die Frage nicht. Ich glaube, dass es in den neuesten Versionen kein solches Problem gibt. Versuchen Sie dies.

Es gibt zum Beispiel eine Schaltfläche "Kaufen". Wenn Sie sie einfach drücken und wieder loslassen, funktioniert sie so, wie sie sollte, aber wenn Sie auf sie zeigen und sie drücken, wird das gesamte Diagramm erfasst (es ist im Hintergrund) und es wird gescrollt, wenn Sie die Maus nach links oder rechts bewegen. Das heißt, wenn es die geringste Verschiebung beim Drücken dieser Schaltfläche gibt (und das passiert), funktioniert die Schaltfläche nicht, weil das Diagramm mit dem Preis erfasst wird. Ich möchte also, dass eine solche Schaltfläche nicht "transparent" ist, damit der Chart mit dem Kurs nicht durch sie hindurchscheint. Zum Beispiel funktionieren die eingebauten MT5-Schaltflächen "Handel mit einem Klick", wie sie sollten.

 
Ruslan Piraliyev #:

Wenn Sie jedoch auf die Schaltfläche zeigen und sie drücken, wird das gesamte Diagramm erfasst (es befindet sich im Hintergrund) und es wird gescrollt, wenn Sie die Maus nach links oder rechts bewegen. Das heißt, wenn es die geringste Verschiebung beim Drücken dieser Schaltfläche gibt (und das passiert), funktioniert die Schaltfläche nicht, weil das Diagramm mit dem Preis erfasst wird. Ich möchte also, dass eine solche Schaltfläche nicht "transparent" ist, damit der Chart mit dem Kurs nicht durch sie hindurchscheint. Zum Beispiel funktionieren die eingebauten MT5-Schaltflächen "Handel mit einem Klick", wie sie sollten.

In der neuesten Version funktioniert es so, wie Sie es brauchen:

EasyAndFastGUI - Bibliothek zur Erstellung grafischer Oberflächen
EasyAndFastGUI - библиотека для создания графических интерфейсов
EasyAndFastGUI - библиотека для создания графических интерфейсов
  • www.mql5.com
Библиотека EasyAndFastGUI дает возможность создавать графические интерфейсы для своих MQL-программ.
 
Anatoli Kazharski #:

Die neueste Version funktioniert so, wie Sie es brauchen:

EasyAndFastGUI - Bibliothek zur Erstellung grafischer Oberflächen

Danke, ich werde es ausprobieren!

 
Anatoli Kazharski #:

Die neueste Version funktioniert so, wie Sie es brauchen:

EasyAndFastGUI - Bibliothek zur Erstellung grafischer Oberflächen

Natürlich haben Sie eine enorme Arbeit auf die Entwicklung und auf die Beschreibung getan, hier ist vor allem Lob. Es ist schwierig, alles auf einmal zu verstehen, aber aus dem, was ich versucht habe, stellt sich heraus, dass Sie eine Schaltfläche auf der Symbolleiste erstellt haben und das Panel mit der Schaltfläche ist wirklich nicht durchscheinen, was Sie brauchen. Vielleicht werde ich in der Zukunft auch zu einer solchen Implementierung kommen, aber ich habe jetzt eine Aufgabe, eine reine Schaltfläche ohne das Formular-Unterlay zu erstellen und dass es nicht durchscheinen. Wenn Sie auf eine Eigenschaft hinweisen oder mir sagen, wie ich es machen soll, wäre ich sehr froh.

 
Ruslan Piraliyev #:

...

Vielleicht komme ich in Zukunft auch zu einer solchen Umsetzung, aber ich habe jetzt die Aufgabe, einen reinen Button ohne die Formularunterlegung zu erstellen und dass er nicht durchscheinend ist.

...

Das ist genau das, was ich nicht habe.