Herşey gönlünce olsun!
OBJ_TEXT nesnesinde metni birden çok satırda görüntülemek mümkün mü? Değilse, neden bu özelliği uygulamıyorsunuz, geliştiricilere soru?
Hatırladığım kadarıyla imkansız, sadece bir döngü ile.
Herşey gönlünce olsun!
OBJ_TEXT nesnesinde metni birden çok satırda görüntülemek mümkün mü? Değilse, neden bu özelliği uygulamıyorsunuz, geliştiricilere soru?
iCanvas sınıfımla Canvas'ı kullanmak daha kolay:
#include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164 void OnStart () { // Значения по умолчанию: // "Courier New" - начальный шрифт с размером 18 // Canvas.TextPosX=20; - начальная координата X // Canvas.TextPosY=100; - начальная координата Y // Canvas.TextColor=clrDarkOrchid; - цвет текста с прозрачностью 1.0 (полностью непрозрачный) // Canvas.StepTextLine = 20; - шаг между строками Canvas.Comm( "В синем небе звезды блещут," ); Canvas.Comm( "В синем море волны хлещут;" ); Canvas.Comm( "Туча по небу идет," ); Canvas.Comm( "Бочка по морю плывет." ); Canvas.TextPosition( 100 , 500 ); // Позиция X и Y. Если целое число то значение в пикселях. Если double, то в процентах от ширины и высоты Canvas.CurentFont( "Arial" , 25 , 30 , clrRed , 0.7 ); // 25 - размер, 30 - расстояние между строками, 0.7 - прозрачность Canvas.Comm( "Словно горькая вдовица," ); Canvas.Comm( "Плачет, бьется в ней царица;" ); Canvas.Comm( "И растет ребенок там" ); Canvas.Comm( "Не по дням, а по часам." ); Canvas.TextPosition( 50.0 , 20.0 ); // Позиция X и Y в процентах от ширины и высоты (тип dounle) Canvas.CurentFont( "Times New Roman" , 40 , 30 , clrBlue ); // 40 - размер, 30 - расстояние между строками, прозрачность - 1.0 (по умолчанию Canvas.Comm( "День прошел, царица вопит..." ); Canvas.Comm( "А дитя волну торопит:" ); Canvas.Comm( "«Ты, волна моя, волна!" ); Canvas.Comm( "Ты гульлива и вольна;" ); Canvas.TextPosY+= 20 ; // увеличиваем Y координату на 20 пикселей Canvas.Comm( "Плещешь ты, куда захочешь," ); Canvas.TextPosX+= 20 ; // увеличиваем X координату на 20 пикселей Canvas.Comm( "Ты морские камни точишь," ); Canvas.TextPosX+= 20 ; // увеличиваем X координату на 20 пикселей Canvas.Comm( "Топишь берег ты земли," ); Canvas.TextPosX+= 20 ; // увеличиваем X координату на 20 пикселей Canvas.Comm( "Подымаешь корабли —" ); Canvas.StepTextLine+= 30 ; // увеличиваем шаг между строками на 30 пикселей Canvas.Comm( "Не губи ты нашу душу:" ); Canvas.Comm( "Выплесни ты нас на сушу!»" ); Canvas.Update(); Sleep ( 20000 ); }
Bunu nesneleri kullanarak ekranda görüntülemek için kod çok daha büyük olacaktır.
iCanvas sınıfımla Canvas'ı kullanmak daha kolay:
Bunu nesneleri kullanarak ekranda görüntülemek için kod çok daha büyük olacaktır.
Bu arkadan vidalanabilir mi? Böylece program karışmaz mı?
Başlangıçta, arka planı istenen renk ve istenen şeffaflıkla doldurmanız yeterlidir:
Canvas.Erase( ColorToARGB ( clrGreen , 150 )); // где 150- прозрачность, меняющаяся от 0 до 255. 0 - абсолютная прозрачность. 255-абсолютная непрозрачность
Başlangıçta, arka planı istenen renk ve istenen şeffaflıkla doldurmanız yeterlidir:
Çözüm için teşekkürler. Peki ya ölçeklendirme? Örneğin, grafiği fiyata göre genişletmeye veya daraltmaya başlarsam metin birbiriyle örtüşür mü?
Yoksa bu metin bir etiket gibi mi olacak?
Çözüm için teşekkürler. Peki ya ölçeklendirme? Örneğin, grafiği fiyata göre genişletmeye veya daraltmaya başlarsam metin birbiriyle örtüşür mü?
Yoksa bu metin bir etiket gibi mi olacak?
Bunu yapmak için, metnin başlangıcının koordinatlarını piksel olarak değil, fiyat ve zaman olarak kaydetmeniz gerekir. Ve her seferinde onları CHARTEVENT_CHART_CHANGE olayında iCanvas sınıfının işlevleri aracılığıyla yeniden çizin:
double Y( double Price); double X( datetime Time );
Başlangıçta, arka planı istenen renk ve istenen şeffaflıkla doldurmanız yeterlidir:
Çok teşekkürler! Bu günlerden birini deneyeceğim.
Bunu yapmak için, metnin başlangıcının koordinatlarını piksel olarak değil, fiyat ve zaman olarak kaydetmeniz gerekir. Ve her seferinde onları CHARTEVENT_CHART_CHANGE olayında iCanvas sınıfının işlevleri aracılığıyla yeniden çizin:
Normal bir metin nesnesiyle aynı olacaktır. Her durumda, çözümünüzü başka amaçlar için kullanacağım, teşekkürler!
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Herşey gönlünce olsun!
OBJ_TEXT nesnesinde metni birden çok satırda görüntülemek mümkün mü? Değilse, neden bu özelliği uygulamıyorsunuz, geliştiricilere soru?