Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   R2l, l2r (http://www.expert-advisor.com/forum/showthread.php?t=6388)

MIMO 11.04.19 14:42

R2l, l2r
 
Hallo,

gibt es so etwas wie eine Right-to-Left, Left-to-Right (Wechsel)Sortierfunktion bei Objekten?

Habe mir ein paar Buttons mehrzeilig erstellt, im linken oberen Eck werden sie korrekt angezeigt. L2R. 1,2,3,4,5,6.

Sobald ich sie auf die rechte obere Ecke verschiebe erscheinen sie R2L. 6,5,4,3,2,1. Für Bewohner des Nahen Ostens sicher kein Problem.

Danke für jede Hilfe

Mimo

AVT 13.04.19 10:44

So geht es hier, bitte beachten, daß ich immer links anfange, d.h. meine Standardbuttons sind immer links unten und rechts unten wird geändert:
Code:

// === Button Berechnung
int baseX=20;
int baseY=40;
int ButHeight=20;
int ButWidth=50;
int Butsep=2;
int ButNext=ButWidth+Butsep;


  int i, j;                                          //i=Vorwärts, j=Rückwärts
  if(Corner==CORNER_LEFT_LOWER)                      // Corner=2
      for(i=0; i<7; i++)                              //Vorwärts 0-6
      {
        FuncCreateButton("But"+IntegerToString(i),  //ButtonName
                          baseY,                      //HorizontalPos
                          baseX+i*ButNext,            //VertikalPos
                          IntegerToString(i)          //ButtonText
                        );
        Print(" Corner=",IntegerToString(Corner),
              " i=",IntegerToString(i),
              " xPos=",IntegerToString( baseX+i*ButNext )
              );
      }
  if(Corner==CORNER_RIGHT_LOWER)                    // Corner=3
  {
      for(i=0, j=6; i<7 && j>=0; i++, j--)            //Vorwärts 0-6 und Rückwärts 6-0
      {
        FuncCreateButton("But"+IntegerToString(j),  //ButtonName
                          baseY,                      //HorizontalPos
                          i*ButNext+(baseX+ButWidth), //VertikalPos
                          IntegerToString(j)          //ButtonText
                        );
        Print(" Corner=",IntegerToString(Corner),
              " i=",IntegerToString(i),
              " xPos=",IntegerToString( i*ButNext+(baseX+ButWidth) )
              );
      }
  }

Im 2. Teil (Position unten rechts) (baseX+ButWidth), weil die Breite des Buttons berücksichtigt werden muß.
Wenn bei Dir alles rechts ist, mußt Du das anpassen. Ich hoffe, das hilft Dir. AVT

MIMO 13.04.19 13:59

Super!

Ich danke dir, werde es testen und berichten!

Mimo


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:44 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum