Resources | Menggunakan Grafik dan Suara dalam Program MQL4

Advertisement

Penawaran Terbatas! Paket Data 25GB Hanya Rp 90.000


Dapatkan kuota besar 25GB untuk semua nomor AS, Loop, dan simPATI hanya dengan Rp 90.000, berlaku selama 30 hari! Internet lancar tanpa khawatir kehabisan kuota, cocok untuk streaming, gaming, dan browsing sepuasnya!

Aktifkan sekarang dan nikmati kebebasan internet!

Read More Beli Paket
Advertisement

Program dalam MQL4 memungkinkan bekerja dengan file suara dan grafik:

  • PlaySound() digunakan untuk memutar file suara;
  • ObjectCreate() memungkinkan pembuatan antarmuka pengguna menggunakan objek grafik OBJ_BITMAP dan OBJ_BITMAP_LABEL.

PlaySound()

Contoh penggunaan fungsi PlaySound():

void OrderSendWithAudio() 
{
  double price = Ask;
  int ticket = OrderSend(Symbol(), OP_BUY, 1, price, 3, 0, 0, "My order", 16384, 0, clrGreen);

  if (ticket < 0)
  {
    Print("OrderSend gagal dengan error #", GetLastError());
    PlaySound("timeout.wav");
  }
  else
  {
    Print("OrderSend berhasil dilakukan");
    PlaySound("Ok.wav");
  }
}

File suara Ok.wav dan timeout.wav berada di folder terminal_directory\Sounds. Lokasi folder tersebut dapat diketahui dengan:

string terminal_path = TerminalInfoString(TERMINAL_PATH);

Anda juga bisa memutar file dari subfolder dalam terminal_data_directory\MQL4. Untuk mengetahui lokasinya:

string terminal_data_path = TerminalInfoString(TERMINAL_DATA_PATH);

Contoh memutar file dari folder Files:

PlaySound("\\Files\\Demo.wav");

Gunakan backslash ganda "\\" untuk penulisan path. Untuk menghentikan suara:

PlaySound(NULL);

ObjectCreate()

Contoh Expert Advisor yang membuat label grafis dengan OBJ_BITMAP_LABEL:

string label_name = "currency_label";
string euro = "\\Images\\euro.bmp";
string dollar = "\\Images\\dollar.bmp";

int OnInit() 
{
  if (ObjectFind(0, label_name) < 0) 
  {
    bool created = ObjectCreate(0, label_name, OBJ_BITMAP_LABEL, 0, 0, 0);
    if (created)
    {
      ObjectSetInteger(0, label_name, OBJPROP_CORNER, CORNER_RIGHT_UPPER);
      ObjectSetInteger(0, label_name, OBJPROP_XDISTANCE, 100);
      ObjectSetInteger(0, label_name, OBJPROP_YDISTANCE, 50);
      ResetLastError();
      bool set = ObjectSetString(0, label_name, OBJPROP_BMPFILE, 0, euro);
      if (!set)
        PrintFormat("Gagal memuat gambar dari file %s. Kode error %d", euro, GetLastError());
      ResetLastError();
      set = ObjectSetString(0, label_name, OBJPROP_BMPFILE, 1, dollar);
      if (!set)
        PrintFormat("Gagal memuat gambar dari file %s. Kode error %d", dollar, GetLastError());
      ChartRedraw(0);
    }
    else
    {
      PrintFormat("Gagal membuat objek OBJ_BITMAP_LABEL. Kode error %d", GetLastError());
    }
  }
  return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason) 
{
  ObjectDelete(0, label_name);
}

Objek OBJ_BITMAP_LABEL akan menampilkan dua gambar berbeda tergantung apakah tombol ditekan atau tidak: euro.bmp atau dollar.bmp.

Menambahkan Resource ke dalam File EX4 saat Kompilasi

Gunakan direktif #resource agar file gambar/suara bisa langsung dimasukkan ke dalam file EX4 tanpa harus ditransfer secara terpisah.

#resource path_to_resource_file

File BMP dan WAV akan dikompres otomatis sebelum dimasukkan ke file EX4. Ukuran maksimum file resource: 16 MB.

Pencarian Resource oleh Compiler

Format penulisan:

#resource "<path_to_resource_file>"
  • Jika path dimulai dengan backslash: dicari relatif ke terminal_data_directory\MQL4\
  • Jika tidak: dicari relatif ke lokasi file sumber MQL4

Contoh penulisan yang benar dan salah:

// Benar
#resource "\\Images\\euro.bmp"
#resource "picture.bmp"
#resource "Resource\\map.bmp"

// Salah
#resource ":picture_2.bmp"
#resource "..\\picture_3.bmp"
#resource "\\Files\\Images\\Folder_First\\My_panel\\Labels\\too_long_path.bmp"

Penggunaan Resource

Gunakan tanda :: sebelum nama resource dalam kode.

#resource "\\Images\\euro.bmp"          // Nama resource: Images\euro.bmp
#resource "picture.bmp"                 // Nama resource: picture.bmp
#resource "Resource\\map.bmp"           // Nama resource: Resource\map.bmp
#resource "\\Files\\Demo.wav"           // Nama resource: Files\Demo.wav

// Menggunakan dalam kode
ObjectSetString(0, bitmap_name, OBJPROP_BMPFILE, 0, "::Images\\euro.bmp");
ObjectSetString(0, my_bitmap, OBJPROP_BMPFILE, 0, "::picture.bmp");
PlaySound("::Files\\Demo.wav");
Advertisement

Postingan Terkait

Formulir Kontak

Nama

Email *

Pesan *


Advertisement

vps forex murah

DAFTAR AGEN PULSA
TOOLS OTOMATIS SELLER SHOPEE TOOLS OTOMATIS KONTEN AFFILIATE SHOPEE tools otomatis facebook
DAFTAR AGEN PULSA KOLEKSI PRODUK ARMAILA
Advertisement

Iklan

Close x