OBJ_TEXT nesnesinde metni birden çok satırda görüntülemek mümkün mü? - sayfa 5

 
Nikolai Semko :

işte başka bir sorun.
Tuvali oluşturan koda erişiminiz yoksa tuval kaynağına erişiminiz yoktur. Bitmap nesnelerinin listesini görebilirsiniz, ancak kaynakların listesini göremezsiniz. Kaynağın adını bilmiyorsanız, onu yalnızca seçim veya numaralandırma yoluyla öğrenebilirsiniz ve bu, pratik uygulamanın kapsamı dışındadır.
Tanımak için bir dizi nokta nasıl elde edilir? Sadece bir ekran görüntüsü aracılığıyla, bu da saçma.
Yoksa yanılıyor muyum?

Kod doğal olarak benim, yani açık kaynak. Ben sadece ekranda bir tarih varsa, o zaman neden başka bir yere saklasın, eğer alabilirsen ... diye düşündüm. ha ha ha "güzel" dedi.

Peki, bir metin alanından nasıl bir dize alabileceğiniz ve dizenin bir kısmını oradan nasıl çekeceğiniz gibi bir şey. Ama ne yazık ki, hayır değil.

 
Andrey Barinov :

Bitmap özelliği, kaynağa giden yolu içerir. Programlı olarak yapılabilir mi bilmiyorum.


Bu kadar. Sonuçta, soru resimden değil, kaynaktan almaktı. Ve sonra aradığımı kaybettim. Hangi özelliklerin elde edilebileceğini deneyeceğim


Hiçbir şey benim için çalışmıyor ...

   string resource = "\\Scripts\\Test\\Canvas\\00.ex5::aaa" ;     // получили путь к ресурсу созданному другим скриптом

//  if(ObjectGetString(0, "aaa", OBJPROP_BMPFILE, 0, resource))
   if ( ObjectSetString ( 0 , "aaa" , OBJPROP_BMPFILE , 0 , resource))   // работает любая строка, хоть эта, хоть закомментированная выше
   {
     Print ( ObjectGetString ( 0 , "aaa" , OBJPROP_NAME ));             // имя есть
     Print ( ObjectGetString ( 0 , "aaa" , OBJPROP_BMPFILE ));           // путь к ресурсу есть
     Print ( ObjectGetString ( 0 , "aaa" , OBJPROP_TEXT ));             // текста нету.....
     Print ( ObjectGetInteger ( 0 , "aaa" , OBJPROP_XDISTANCE ));       // это значение тоже есть
   }

Ve nasıl bir dizi alacağımı bulamıyorum. bir ihtimal var mı???

 
Alexey Viktorov :

Bu kadar. Sonuçta, soru resimden değil, kaynaktan almaktı. Ve sonra aradığımı kaybettim. Hangi özelliklerin elde edilebileceğini deneyeceğim


Hiçbir şey benim için çalışmıyor ...

Ve nasıl bir dizi alacağımı bulamıyorum. bir ihtimal var mı???

Bence ResourceReadImage() yardımcı olmalı veya bunun gibi bir şey

 
Alexey Viktorov :

Kod doğal olarak benim, yani açık kaynak. Ben sadece ekranda bir tarih varsa, o zaman neden başka bir yere saklasın, eğer alabilirsen ... diye düşündüm. ha ha ha "güzel" dedi.

Peki, bir metin alanından nasıl bir dize alabileceğiniz ve dizenin bir kısmını oradan nasıl çekeceğiniz gibi bir şey. Ama ne yazık ki, hayır değil.

iyi yaparsın :)
Bilimsel bir saat için pilleri olan bir bavul, yaratıcı olmasına rağmen gerçekten en iyi çözüm değil.
 
Andrey Barinov :
Bence ResourceReadImage() yardımcı olmalı ya da bunun gibi bir şey

Buldum ama hiçbir şey alamadım. Bir diziyi dizgeye çevirmeye çalıştım ama dizi türleri uyuşmuyor. Ne kadar bükülmüş nikrom çalışmaz. Belki yanlış bir şey yapıyorum. ama henüz yeni bir fikir yok.

 
Alexey Viktorov :

Buldum ama hiçbir şey alamadım. Bir diziyi dizgeye çevirmeye çalıştım ama dizi türleri uyuşmuyor. Ne kadar bükülmüş olursa olsun nikrom çalışmaz. Belki yanlış bir şey yapıyorum. ama henüz yeni bir fikir yok.

Piksel renk verileri bir dizgeye nasıl çevrilir? Ve en önemlisi neden?
Bir raster görüntü alın ve sonra onu tanımaya çalışabilirsiniz, ancak bu ayrı bir bilimdir :)
 
Nikolai Semko :
iyi yaparsın :)
Bilimsel bir saat için pilleri olan bir bavul, yaratıcı olmasına rağmen gerçekten en iyi çözüm değil.

Nikolai, ancak bu kullanım için zorunlu olan bir çözüm değil. Sonuçta, karikatürleriniz aynı seriden, güzeller, ancak ticarette kullanma imkanı yok.

 
Andrey Barinov :
Piksel renk verileri bir dizgeye nasıl çevrilir? Ve en önemlisi neden?
Bir raster görüntü alın ve sonra onu tanımaya çalışabilirsiniz, ancak bu ayrı bir bilimdir :)

Ah.., peki, bu... bilmiyorum.)))

Genel olarak, muhtemelen bu fikirden vazgeçiyorum. Muhtemelen gerçekten o operadan değil.

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2017.10.31 08:11

 // Сохранение Bitmap-объекта в bmp/gif/png-файле (прозрачность не учитывается)
bool BitmapObjectToFile( const long chartID, const string ObjName, const string FileName, const bool FullImage = false )
{  
   const ENUM_OBJECT Type = ( ENUM_OBJECT ) ObjectGetInteger (chartID, ObjName, OBJPROP_TYPE );  
   bool Res = (Type == OBJ_BITMAP_LABEL ) || (Type == OBJ_BITMAP );
             
   if (Res)
  {
     const string Name = __FUNCTION__ + ( string ) MathRand ();

     ObjectCreate (chartID, Name, OBJ_CHART , 0 , 0 , 0 );
     ObjectSetInteger (chartID, Name, OBJPROP_XDISTANCE , - 1 e3);
    
     const long chart = ObjectGetInteger (chartID, Name, OBJPROP_CHART_ID );
        
    Res = ChartSetInteger (chart, CHART_SHOW , false ) && ObjectCreate (chart, Name, OBJ_BITMAP_LABEL , 0 , 0 , 0 ) &&
           ObjectSetString (chart, Name, OBJPROP_BMPFILE , ObjectGetString (chartID, ObjName, OBJPROP_BMPFILE )) &&
          (FullImage || ( ObjectSetInteger (chart, Name, OBJPROP_XSIZE , ObjectGetInteger (chartID, ObjName, OBJPROP_XSIZE )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_YSIZE , ObjectGetInteger (chartID, ObjName, OBJPROP_YSIZE )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_XOFFSET , ObjectGetInteger (chartID, ObjName, OBJPROP_XOFFSET )) &&
                         ObjectSetInteger (chart, Name, OBJPROP_YOFFSET , ObjectGetInteger (chartID, ObjName, OBJPROP_YOFFSET )))) &&
                         ChartScreenShot (chart, FileName, ( int ) ObjectGetInteger (chart, Name, OBJPROP_XSIZE ),
                                                          ( int ) ObjectGetInteger (chart, Name, OBJPROP_YSIZE ));
     ObjectDelete (chartID, Name);
  }                    

   return (Res);
}


Başvuru

 // Сохраняет в png-файлах все Bitmap-объекты текущего чарта
void OnStart ()
{  
   for ( int i = ObjectsTotal ( 0 ) - 1 ; i >= 0 ; i--)
  {
     const string Name = ObjectName ( 0 , i);
    
     BitmapObjectToFile ( 0 , Name, ( string ) ChartID () + "\\" + Name + ".png" );    
  }      
}


Tehdit BMP-> GIF/PNG dosya dönüştürücüsü de uygulanmaktadır.

 
Alexey Viktorov :

Yeni soru: Kanvastaki kaynaktaki metni okumak mümkün müdür?

Örneğin bu satırlar veya bunlardan herhangi biri.

Amaç: Kanvas yardımı ile tarih içeren bir dize var. İşte tarih ve okunması arzu edilir.

Veya eski kanıtlanmış yöntemlerden birini, GV, dosya, grafik veya başka bir şey uygulayın.

ResourceReadImage kullanarak bir kaynaktan veri okuyabilirsiniz, ancak bunu yapmak için ResourceCreate kullanarak oraya yazmanız gerekir. ResourceCreate işlevi yalnızca uint türünde bir veri dizisini kabul eder ve farklı türde bir veri dizisi yazmamız gerekirse, union kullanmamız gerekir. İçinde farklı türlerde birkaç dizi bildirin. Bundan sonra, dizeler dahil olmak üzere herhangi bir veriyi kaynakta saklayabiliriz. Bir dizgiyi char tipine dönüştürmek için StringToCharArray kullanın ve tam tersi - CharArrayToString. Bu nedenle, mesele tuvalde değil, birleşimler kullanılarak her türlü verinin yazılabileceği bir kaynakta.