Diskussion zum Artikel "Die Betrachtung der CCanvas-Klasse. Wie man transparente Objekte zeichnet" - Seite 2

 
denkir:

Die Frage ist folgende. Was könnte die beste Implementierung für das Bewegen des Kanvas im Diagramm sein? Etwas wie Methode:

"canvas" - erzeugt standard OBJ_BITMAP_LABEL oder OBJ_BITMAP. In der Hilfe gibt es Funktionen, wie man sie auf dem Diagramm platzieren kann.

 //+------------------------------------------------------------------+
//|| Verschiebt das Objekt "Grafikbeschriftung" |||
//+------------------------------------------------------------------+
bool BitmapLabelMove(const long   chart_ID=0,      // Diagramm-ID
                     const string name="BmpLabel", // Tag-Name
                     const int    x=0,             // Koordinate der X-Achse
                     const int    y=0)             // Koordinate der Y-Achse
  {
//--- den Fehlerwert zurücksetzen
   ResetLastError();
//--- das Objekt verschieben
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            ": Die X-Koordinate des Objekts konnte nicht verschoben werden! Fehlercode = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            ": Die Y-Koordinate des Objekts konnte nicht verschoben werden! Fehlercode = ",GetLastError());
      return(false);
     }
//--- erfolgreiche Ausführung
   return(true);
  }

Ich habe die obige Diskussion nicht sofort bemerkt :) - eigentlich das gleiche wie ZORDER, nur X und Y

 
MigVRN:

"Canvas" - erstellt Standard-OBJ_BITMAP_LABEL oder OBJ_BITMAP. Es gibt Funktionen in der Hilfe, um sie auf dem Diagramm zu platzieren.

Ich habe die obige Diskussion nicht sofort bemerkt :) - eigentlich das gleiche wie ZORDER, nur X und Y

Aha, danke, es hat funktioniert... Ich habe es selbst mit ObjectMove versucht...

Ich erstelle ein Panel mit kanvas.... Ich muss es so weit wie möglich auf der Karte verschieben....
 
denkir:

Ja, danke, es hat funktioniert... Ich habe selbst versucht, ObjectMove zu verwenden...

Ich erstelle ein Panel mit Hilfe von Kanvas... Ich muss es so weit wie möglich auf dem Diagramm verschieben...
Und wenn das Panel auf der Grundlage eines Standarddialogs erstellt wird? Dann werden alle im Dialog erstellten und hinzugefügten Elemente zusammen mit dem Dialog verschoben.
 
barabashkakvn:
Was ist, wenn das Panel auf der Grundlage eines Standarddialogs erstellt wird? Dann werden alle im Dialog erstellten und hinzugefügten Elemente zusammen mit dem Dialog gezogen.
Ja, das ist eine praktische Funktion, da stimme ich zu... Das habe ich bis jetzt auch so gemacht... aber es gibt eine Frage, wie man benutzerdefinierte Grafiken zum Panel hinzufügen kann.... im Allgemeinen ist es notwendig, ein Kanvas-ähnliches Steuerelement zu erstellen: public CWndObj. Jetzt denke ich über diese Frage nach...
 
denkir:
Ja, eine praktische Funktion, ich stimme zu..... Das habe ich bis jetzt auch gemacht... aber es gab eine Frage, wie man benutzerdefinierte Grafiken zum Panel hinzufügen kann.... im Allgemeinen ist es notwendig, ein Kanvas-ähnliches Steuerelement zu erstellen: public CWndObj. Jetzt denke ich über diese Frage nach...

Sehen Sie sich das Video aus dem Beitrag.

Nach dem 15. März wird im Quellcode sein

 
denkir:
Ja, eine praktische Funktion, ich stimme zu..... Das habe ich bis jetzt auch gemacht... aber es gab eine Frage, wie man benutzerdefinierte Grafiken zum Panel hinzufügen kann.... im Allgemeinen ist es notwendig, ein Kanvas-ähnliches Steuerelement zu erstellen: public CWndObj. Jetzt denke ich über diese Frage nach...

Was meinen Sie mit"benutzerdefinierten Grafiken":

  • Ich meine, ist es etwas, das Sie als Programmierer zeichnen?
  • Ich meine, es nimmt ein Bild vom Benutzer des Programms und dieses Bild sollte auf dem Canvas angezeigt werden?
 
barabashkakvn:

Was meinen Sie mit "benutzerdefinierten Grafiken"?

  • also etwas, das Sie als Programmierer zeichnen?
  • Ich meine, es nimmt ein Bild vom Benutzer des Programms und dieses Bild sollte auf der Leinwand angezeigt werden?
Ja, ich war vage..... Ich meinte die Fähigkeit, dynamisch verschiedene Figuren mit Hilfe von Methoden der CCanvas-Klasse zu erstellen...
 

Vladimir, ich wollte Sie noch etwas fragen.

Es gibt ein Panel vom Typ CAppDialog. Eines seiner Elemente soll ein grafisches Label vom Typ CBmpButton sein . Gibt es eine Möglichkeit, ein Canvas zu erstellen und es mit dem angegebenen Label zu verknüpfen? Das Ziel ist es, ein steuerbares Panel-Element mit benutzerdefinierten Grafikfunktionen zu haben...?

Vielen Dank!

 
denkir:

Vladimir, ich wollte Sie noch etwas fragen.

Es gibt ein Panel vom Typ CAppDialog. Eines seiner Elemente soll ein grafisches Label vom Typ CBmpButton sein . Gibt es eine Möglichkeit, ein Canvas zu erstellen und es mit dem angegebenen Label zu verknüpfen? Das Ziel ist es, ein steuerbares Panel-Element mit benutzerdefinierten Grafikfunktionen zu haben...?

Danke...

Sie können Leinwände (d.h. mehrere Leinwände) erstellen, ohne sie mit einem Grafikobjekt über die Create-Methode zu verknüpfen, und dann weisen Sie diese Ressourcen dem BmpButton zu. Sie können sogar versuchen, eine Animation zu erstellen. Übrigens möchte ich noch lange über Animationen nachdenken.
 

Vladimir, danke für den Tipp, es hat alles geklappt!

Ja, Leinwände sind sehr mächtig :-)

Wir warten auf interessante Artikel von dir!