Resources | Menggunakan Grafik dan Suara dalam Program MQL4

Advertisement
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