Tuval harika! - sayfa 6

 
Vladimir Karputov :

canvas.Rectangle bir nesne değil, bir grup piksel çizme komutudur. Bir atış gibi - bir mermi uçtu ve adını hatırla. Geribildirim yok.

Bağlantı olmadığı için teşekkürler - anlaşıldı

217 defa izledim şimdi açıldı ama çözümünü görmedim.

OnTick()'te tuval ve çerçeve renklerini değiştirmenin canlı bir örneğine ihtiyacınız var.

Teşekkür ederim!

 
Vitaly Muzichenko :

Bağlantı olmadığı için teşekkürler - anlaşıldı

217 defa izledim şimdi açıldı ama çözümünü görmedim.

OnTick()'te tuval ve çerçeve renklerini değiştirmenin canlı bir örneğine ihtiyacınız var.

Teşekkür ederim!

Koduma dayanarak, tuvalin rengini değiştirmeye ve bir çerçeve çizmeye takıldım.

 //+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   static long counter= 0 ;
   counter++;
   if (counter% 40 == 0 )
     {
      m_canvas.Erase( ColorToARGB ( clrBlue , 210 ));
      m_canvas.Rectangle( 10 , 10 ,m_canvas.Width()- 10 ,m_canvas.Height()- 10 , ColorToARGB ( clrRed , 255 ));
      m_canvas.Update();
       return ;
     }
   if (counter% 20 == 0 )
     {
      m_canvas.Erase( ColorToARGB ( clrRed , 210 ));
      m_canvas.Rectangle( 10 , 10 ,m_canvas.Width()- 10 ,m_canvas.Height()- 10 , ColorToARGB ( clrBlue , 255 ));
      m_canvas.Update();
       return ;
     }
  }


Renkleri saydamlıkla kullandığım için tuvali oluştururken " COLOR_FORMAT_ARGB_NORMALIZE " belirttim:

 //--- create canvas
   if (!m_canvas.CreateBitmapLabel( "SampleCanvas" , 5 , 15 , 700 , 300 , COLOR_FORMAT_ARGB_NORMALIZE ))
Dosyalar:
 
Vladimir Karputov :

Koduma dayanarak, tuvalin rengini değiştirmeye ve bir çerçeve çizmeye takıldım.


Renkleri saydamlıkla kullandığım için tuvali oluştururken " COLOR_FORMAT_ARGB_NORMALIZE " belirttim:

Şimdi bir göz atacağım, teşekkürler!

Ne elde etmeyi umuyordum - Uzun zaman önce aldım, bu bir çerçeve ve bir seçim ile zar zor şeffaf bir tuval, ancak şimdi çalışmayan renkleri değiştirmem gerekiyor.


 
Vitaly Muzichenko :

Şimdi bir göz atacağım, teşekkürler!

Ne elde etmeyi umuyordum - Uzun zaman önce aldım, bu bir çerçeve ve bir seçim ile zar zor şeffaf bir tuval, ancak şimdi çalışmayan renkleri değiştirmem gerekiyor.


Muhtemelen sorun ENUM_COLOR_FORMAT'ta (tuvali oluştururken) ve rengi alma yönteminde.

 
Vitaly Muzichenko :

OnInit'te bir tuval oluşturuyorum

Ardından, OnTick'teki rengi 10:00'da griye değiştirmeniz ve 11:00'de tekrar orijinal durumuna döndürmeniz gerekir.

Çalışmıyor:

Soru:

Tuval ve çerçeve rengi nasıl değiştirilir - nesne adlarına bağlanma yok mu?

Teşekkür ederim!

İçimde çiçeklerle karar verdiğine dair bir his var.

Bu satırın anlamı nedir:

 ObjectSetInteger ( 0 , "CanvasExamlple" , OBJPROP_COLOR , clrNONE );

COLOR_FORMAT_ARGB_NORMALIZE biçimiyle tuvali arka plan rengiyle doldurmanız gerekmez, yalnızca sıfırla doldurmanız yeterlidir:

canvas.Erase( 0 );

çünkü bu, tuvalin tamamen şeffaf olduğu anlamına gelir.

Renk gösterimini 16. formda kullanmak da uygundur:

Örneğin:

0x00000000 - tamamen şeffaf siyah

0xFF000000 - opak siyah

0xFFFFFFFF - opak beyaz

0xFFFF0000 - opak kırmızı

0xFF00FF00 - opak yeşil

0xFF0000FF - opak mavi

0x8000FF00 - yarı saydam yeşil

0x80FFFFFF - yarı saydam siyah

0xFF808080 - gri

vb.

 
Vladimir Karputov :

Muhtemelen sorun ENUM_COLOR_FORMAT'ta (tuvali oluştururken) ve rengi alma yönteminde.

Sorun çözüldü.

Terminali kapatırken, koddaki tuvali silmek için bir tuvalim yoktu, bu yüzden başlattığımda zaten grafikteydi, bu yüzden başlatılmadı ve özellik değişiklikleri nerede yapılacağını bilmiyordu uygulamak.

Herkese teşekkürler!

 
Nikolai Semko :

İçimde çiçeklerle karar verdiğine dair bir his var.

Bu satırın anlamı nedir:

 ObjectSetInteger ( 0 , "CanvasExamlple" , OBJPROP_COLOR , clrNONE );

Çizginin anlamı, onsuz bu resmi elde etmemizdir.


Bir ip varsa, o zaman her şey doğru, seçtiğim renkle güzel bir çerçeve


 
Vitaly Muzichenko :

Sorun çözüldü.

Terminali kapatırken kodumda bir tuval yoktu , bu yüzden başlattığımda zaten grafikteydi, bu yüzden başlatılmadı ve özellik değişiklikleri nereye uygulanacağını bilmiyordu.

Herkese teşekkürler!

Hmm, bu gerçekten doğru, köpeğin nerede olduğunu hemen tahmin edemezsiniz :)

 

Raster ölçeklemeli komut dosyası demosu

Ex5 dosyası, kaynak olarak oldukça büyük bir BMP dosyası içerir.


Dosyalar:
TestScaling.ex5  784 kb
 
Nikolai Semko :

Raster ölçeklemeli komut dosyası demosu

Hayır, gerçekten etkileyici.

Ancak, Canvas'ın tüm bu özelliklerini kullanacak bazı YARARLI losyon yapmanız gerekir.

Başarılarınızın CGA adaptörünün kaderine maruz kalmaması için - çağdaşlar tarafından yanlış anlaşılan ve hafife alınan mükemmel bir grafik adaptörü.

Ben kendim her zaman CGA'yı düşündüm - sekiz bitlik Commodore 64 veya Sinclair Spectrum grafiklerine "ne kadar az şey" kaybeder. Ve son zamanlarda, sadece düşük popülerlik nedeniyle - neredeyse hiç kimsenin bu kartın tüm zengin özelliklerini kullanmadığı ortaya çıktı. Ve üzerinde sekiz bitlik ev bilgisayarlarıyla rekabet edebilecek neredeyse hiçbir oyun yoktu.

IBM, CGA yeteneklerini popüler hale getirseydi, bu demo 1981'de ortaya çıksaydı, CGA çok daha popüler olurdu ve belki de EGA daha sonra ortaya çıkacaktı:


Bu renk zenginliğine bakıyorum ve bunun 16K video belleği normal bir ev televizyonuna bağlı eski bir CGA adaptöründe mümkün olduğuna inanamıyorum (bir RGB monitör bunun için tamamen uygun değil, fikir buydu. geliştiricilerin - RGB monitörde daha iyi metin, ancak aynı zamanda zayıf bir renk grafik paleti, ancak kompozit girişli bir ev TV'sinde zayıf okunabilen metinle zengin grafik olanakları)