Discussione sull’articolo "Studiare la classe CCanvas. Come disegnare oggetti trasparenti" - pagina 2

 
denkir:

La domanda è questa. Quale potrebbe essere la migliore implementazione per spostare il kanvas nel grafico? Qualcosa come il metodo:

"canvas" - crea OBJ_BITMAP_LABEL o OBJ_BITMAP standard . Nella guida ci sono funzioni su come posizionarli sul grafico.

 //+------------------------------------------------------------------+
//|Sposta l'oggetto "Etichetta grafica" |
//+------------------------------------------------------------------+
bool BitmapLabelMove(const long   chart_ID=0,      // ID del grafico
                     const string name="BmpLabel", // nome del tag
                     const int    x=0,             // Coordinata dell'asse X
                     const int    y=0)             // Coordinata dell'asse Y
  {
//--- ripristinare il valore dell'errore
   ResetLastError();
//--- spostare l'oggetto
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            ": fallito lo spostamento della coordinata X dell'oggetto! Codice errore = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            ": fallito lo spostamento della coordinata Y dell'oggetto! Codice errore = ",GetLastError());
      return(false);
     }
//--- esecuzione riuscita
   return(true);
  }

Non ho notato subito la discussione precedente :) - in realtà è lo stesso di ZORDER, solo X e Y

 
MigVRN:

"canvas" - crea OBJ_BITMAP_LABEL o OBJ_BITMAP standard . Nella guida sono presenti funzioni per posizionarli sul grafico.

Non avevo notato subito la discussione precedente :) - in realtà è lo stesso di ZORDER, solo X e Y

Aha, grazie, ha funzionato... Ho provato anch'io a usare ObjectMove...

Sto creando un pannello usando kanvas.... Ho bisogno di spostarlo il più possibile sul grafico....
 
denkir:

Sì, grazie, ha funzionato... Ho provato io stesso a usare ObjectMove...

Sto creando un pannello con l'aiuto di kanvas... Devo spostarlo il più possibile sul grafico...
E se il pannello viene creato sulla base di un dialogo standard? Allora tutti gli elementi creati nella finestra di dialogo e aggiunti ad essa saranno trascinati insieme alla finestra.
 
barabashkakvn:
E se il pannello viene creato sulla base di un dialogo standard? Allora tutti gli elementi creati nel dialogo e aggiunti ad esso saranno trascinati insieme al dialogo.
Sì, è una funzione utile, sono d'accordo... L'ho fatto fino ad ora... ma c'è una domanda su come aggiungere grafica personalizzata al pannello.... in generale è necessario creare un controllo simile a un kanvas: public CWndObj. Ora sto pensando a questa domanda...
 
denkir:
Sì, una funzione utile, sono d'accordo..... L'ho fatto fino ad ora... ma c'era una domanda su come aggiungere una grafica personalizzata al pannello.... in generale è necessario creare un controllo simile a un kanvas: public CWndObj. Ora sto pensando a questa domanda...

Guardare il video del post.

Dopo il 15 marzo sarà nel codice sorgente

 
denkir:
Sì, una funzione utile, sono d'accordo..... L'ho fatto fino ad ora... ma c'era una domanda su come aggiungere una grafica personalizzata al pannello.... in generale è necessario creare un controllo simile a un kanvas: public CWndObj. Ora sto pensando a questa domanda...

Cosa intendi per"grafica personalizzata":

  • Intendo dire che è qualcosa che si disegna come programmatore?
  • Intendo dire che prende un'immagine dall'utente del programma e questa immagine dovrebbe essere visualizzata sulla tela?
 
barabashkakvn:

Cosa intendi per "grafica personalizzata"?

  • come se fosse qualcosa che si disegna come programmatore?
  • Cioè, prende un'immagine dall'utente del programma e questa immagine deve essere visualizzata sulla tela?
Sì, sono stato vago..... Intendevo la possibilità di creare dinamicamente figure diverse tramite i metodi della classe CCanvas...
 

Vladimir, volevo chiederti un'altra cosa.

Esiste un pannello di tipo CAppDialog. Che uno dei suoi elementi sia un'etichetta grafica di tipo CBmpButton. Quindi, c'è un modo per creare una tela e collegarla all'etichetta specificata? L'obiettivo è avere un elemento di pannello controllabile con capacità grafiche personalizzate...?

Grazie.

 
denkir:

Vladimir, volevo chiederti un'altra cosa.

Esiste un pannello di tipo CAppDialog. Che uno dei suoi elementi sia un'etichetta grafica di tipo CBmpButton. Quindi, c'è un modo per creare una tela e collegarla all'etichetta specificata? L'obiettivo è avere un elemento di pannello controllabile con capacità grafiche personalizzate...?

Grazie...

Puoi creare tele (cioè tele multiple) senza collegarle a un oggetto grafico tramite il metodo Create, e poi assegnare queste risorse al BmpButton. Si può anche provare a creare un'animazione. A proposito, voglio pensare all'animazione per molto tempo.
 

Vladimir, grazie per il suggerimento, è andato tutto bene!

Sì, le tele sono molto potenti :-)

Aspettiamo i tuoi articoli interessanti!