traderider forex ไทย

ขอตัวอย่างโค๊ดในการสร้าง CheckGroup ใน panel ให้หน่อยครับ... ^___^

  • 11 replies
  • 923 views

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

*

ออฟไลน์ gaothun

  • **
  • 90
  • 0
ผมต้องการสร้าง check group ใน panel แต่ไม่รู้ทำอย่างไรครับ ไม่รู้จะเริ่มอย่างไร จึงอยากได้โค๊ด มาศึกษา สักชุดครับผม

ไม่อยากได้ใน class นะครับ อยากได้ใน panel รบกวนท่านด้วยครับผม

 (TH)** (TH)** (TH)**

Share Topic.

Follow Me.


traderider forex ไทย
traderider forex ไทย
traderider forex ไทย
*

ออฟไลน์ gaothun

  • **
  • 90
  • 0
ผมต้องการสร้าง check group ใน panel แต่ไม่รู้ทำอย่างไรครับ ไม่รู้จะเริ่มอย่างไร จึงอยากได้โค๊ด มาศึกษา สักชุดครับผม

ไม่อยากได้ใน class นะครับ อยากได้ใน panel รบกวนท่านด้วยครับผม

 (TH)** (TH)** (TH)**

ผมเริ่มต้นโดยการ include panel กับ checkgroup แล้วตั้งค่าตัวแปรครับ
#include <Controls\Panel.mqh>
CPanel P1;

#include <Controls\CheckGroup.mqh>
CCheckGroup CG1,CG2;


void Panel()//หลังจากนั้นก็สร้าง panel และจะสร้าง checkgroup แต่ไม่เห็นเกิดอะไรขึ้นเลยครับ ไม่รู้เขาต้องทำอย่างไรครับ เขียนได้เท่านี้ครับ
{
   int y = -20;
   P1.Create(0,"P1",0,0,0,200,550);
   P1.Shift(40,40);
   P1.ColorBackground(clrMidnightBlue);
   P1.BorderType(BORDER_RAISED);


   CG1.Create(0,"CG1",0,0,0,0,0);
   CG1.AddItem("DDDD",0);
   CG1.ColorBackground(clrAliceBlue);
   CG1.Shift(40,60);
} // แต่มันไม่เห็นมีอะไรเกิดขึ้นเลยครับ
 
ตรง CG1.????? ผมต้องทำอย่างไรครับ

*

ออฟไลน์ iRuler

  • *
  • 1,225
  • 39
พรุ่งนี้สายๆ ผมช่วยดูนะ (TH)**

*

ออฟไลน์ iRuler

  • *
  • 1,225
  • 39
ผมต้องการสร้าง check group ใน panel แต่ไม่รู้ทำอย่างไรครับ ไม่รู้จะเริ่มอย่างไร จึงอยากได้โค๊ด มาศึกษา สักชุดครับผม

ไม่อยากได้ใน class นะครับ อยากได้ใน panel รบกวนท่านด้วยครับผม

 (TH)** (TH)** (TH)**

ผมเริ่มต้นโดยการ include panel กับ checkgroup แล้วตั้งค่าตัวแปรครับ
#include <Controls\Panel.mqh>
CPanel P1;

#include <Controls\CheckGroup.mqh>
CCheckGroup CG1,CG2;


void Panel()//หลังจากนั้นก็สร้าง panel และจะสร้าง checkgroup แต่ไม่เห็นเกิดอะไรขึ้นเลยครับ ไม่รู้เขาต้องทำอย่างไรครับ เขียนได้เท่านี้ครับ
{
   int y = -20;
   P1.Create(0,"P1",0,0,0,200,550);
   P1.Shift(40,40);
   P1.ColorBackground(clrMidnightBlue);
   P1.BorderType(BORDER_RAISED);


   CG1.Create(0,"CG1",0,0,0,0,0);
   CG1.AddItem("DDDD",0);
   CG1.ColorBackground(clrAliceBlue);
   CG1.Shift(40,60);
} // แต่มันไม่เห็นมีอะไรเกิดขึ้นเลยครับ
 
ตรง CG1.????? ผมต้องทำอย่างไรครับ


https://www.mql5.com/en/docs/standardlibrary/controls/ccheckgroup

มีตัวอย่างเรียบร้อย ดัดแปลงได้เลยครับ

 (TH)**

*

ออฟไลน์ iRuler

  • *
  • 1,225
  • 39
โค๊ด
#include <Controls\Panel.mqh>
#include <Controls\CheckGroup.mqh>

CPanel   panel;
CCheckGroup cbg;

void CreatePanel(void)
  {
   panel.Create(0,"P1",0,0,0,200,550);
   panel.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT);
   panel.Alignment(WND_ALIGN_CLIENT,0,0,0,0);
   panel.ColorBackground(CONTROLS_DIALOG_COLOR_BG);
   panel.BorderType(BORDER_RAISED);
   panel.Shift(40,40);
  }
void CreateCheckgroup()
  {
   cbg.Create(0,"CheckGroup",0,5,5,100,200);
   cbg.ColorBackground(CONTROLS_DIALOG_COLOR_BG);
   cbg.BorderType(BORDER_FLAT);
   cbg.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT);
   cbg.Shift(40,40);
   
   for(int i=0;i<5;i++)
      cbg.AddItem("Item "+IntegerToString(i),i);
  }
int OnInit()
  {
   CreatePanel();
   CreateCheckgroup();

   return(INIT_SUCCEEDED);
  }
void OnDeinit(const int reason)
  {
   panel.Destroy(reason);
   cbg.Destroy(reason);
  }

*

ออฟไลน์ gaothun

  • **
  • 90
  • 0
 (TH)** (TH)** (TH)**

ขอบคุณท่านมากมากครับ ผมนำไปต่อยอดได้แล้วครับ แต่ดันสงสัยออีกว่า ผมจะดึงค่า ตัวที่มัน ติ๊กในกล่องออกมาใช้งานได้อย่างไรครับ

ใช่คำสั่ง Check หรือเปล่าครับ แล้วมันใช้ยังงัยครับ ในวงเล็บไม่รู้ใส่อะไรครับ


cbg.Check(???,???)

« แก้ไขครั้งสุดท้าย: 21, กรกฎาคม 2019, 06:42:18 PM โดย gaothun »

*

ออฟไลน์ gaothun

  • **
  • 90
  • 0
คิดว่าน่าจะเป็นคำสั่ง

cbg.Value() ครับ แต่ไม่รู้ทำอย่างไรครับ

*

ออฟไลน์ forcebewithyou

  • ****
  • 2,311
  • 75
  • Green PIPs Be With You

ผมเคยแต่ทำแต่แค่ปุ่มกดปุ่มเดี่ยวเพื่อสั่งใช้งาน

ลองดูตัวอย่างในอันนี้ครับน่าจะช่วยได้

https://www.mql5.com/en/articles/313
https://www.mql5.com/en/articles/2171
https://www.mql5.com/en/forum/62821

*

ออฟไลน์ iRuler

  • *
  • 1,225
  • 39
(TH)** (TH)** (TH)**

ขอบคุณท่านมากมากครับ ผมนำไปต่อยอดได้แล้วครับ แต่ดันสงสัยออีกว่า ผมจะดึงค่า ตัวที่มัน ติ๊กในกล่องออกมาใช้งานได้อย่างไรครับ

ใช่คำสั่ง Check หรือเปล่าครับ แล้วมันใช้ยังงัยครับ ในวงเล็บไม่รู้ใส่อะไรครับ


cbg.Check(???,???)



Value() ครับ
https://www.mql5.com/en/docs/standardlibrary/controls/ccheckgroup/ccheckgroupvalue

ซึ่งน่าจะเรียกใช้ใน OnChartEvent() ครับ

 (TH)**

*

ออฟไลน์ gaothun

  • **
  • 90
  • 0
ผมได้ทำตัวติ๊กกรุ๊ป ออกมาใน panel ครับ ผลปรากฏตามรูปครับ มันมีปัญหาดังนี้ครับ
-  ตัวติ๊ก มันสามารถติ๊กได้ทั้งสามหัวข้อพร้อมกันได้เลย แต่ผมต้องการให้ติ๊กแล้วเลือกหัวข้อเดียว
-  ผมไม่สามารถดึงค่าหัวข้อที่ติ๊กออกมาเพื่อใช้งานได้ครับ เช่น ติ๊ก Tp1 มีค่าเท่ากับ 1 , ติ๊ก tp2 มีค่าเท่ากับ 2


//+------------------------------------------------------------------+
//|                                                     Panel V1.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#include <Controls\Panel.mqh>
CPanel   panel;
#include <Controls\RadioGroup.mqh>
CRadioGroup cbg;
#include <Controls\Label.mqh>
CLabel L1,L2,L3,L4;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
extern int     Position_Comment     = 1000;
extern color   ColorBG              = clrDarkBlue;
int OnInit()
  {
//---
   CreatePanel();
   CreateCheckgroup();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   CreatePanel();
   
  }
//+------------------------------------------------------------------+
void CreatePanel(void)
  {
   panel.Create(0,"P1",0,0,0,150,150);
   panel.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT);
   panel.Alignment(WND_ALIGN_CLIENT,0,0,0,0);
   panel.ColorBackground(ColorBG);
   panel.BorderType(BORDER_RAISED);
   panel.Shift(Position_Comment+40,20);

   L1.Create(0,"L1",0,0,0,0,0);
   L1.Shift(Position_Comment+45,22);
   L1.Text("Panel V1");
   L1.Color(clrWhite);
   L1.FontSize(10);
   
   L2.Create(0,"L2",0,0,0,0,0);
   L2.Shift(Position_Comment+40,30);
   L2.Text(" ____________________");
   L2.Color(clrWhite);

   L3.Create(0,"L3",0,0,0,0,0);
   L3.Shift(Position_Comment+45,70);
   L3.Text("TakeProfit : ");
   L3.Color(clrWhite);
   L3.FontSize(10);

   L4.Create(0,"L4",0,0,0,0,0);
   L4.Shift(Position_Comment+120,70);
   L4.Text(IntegerToString(cbg.Value()));
   L4.Color(clrWhite);
   L4.FontSize(10);
  }
void CreateCheckgroup(void)
  {
   cbg.Create(0,"CheckGroup",0,5,5,100,60);
   cbg.ColorBackground(CONTROLS_DIALOG_COLOR_BG);
   cbg.BorderType(BORDER_FLAT);
   cbg.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT);
   cbg.Shift(Position_Comment+45,100);
   cbg.AddItem("TP : 1 ",1<<1);
   cbg.AddItem("TP : 2 ",1<<2);
   cbg.AddItem("TP : 3 ",1<<3);
  }

*

ออฟไลน์ iRuler

  • *
  • 1,225
  • 39
ไปหาอ่านมา ดูเหมือนว่ามันจะต้องเอาใส่ CAppDialog นะครับ เพราะต้องใช้ EVENT_MAP_BEGIN
ใช้ OnChartEvent ลองแล้วไม่ work


 (TH)**

*

ออฟไลน์ gaothun

  • **
  • 90
  • 0
ผมได้ทำตัวติ๊กกรุ๊ป ออกมาใน panel ครับ ผลปรากฏตามรูปครับ มันมีปัญหาดังนี้ครับ
-  ตัวติ๊ก มันสามารถติ๊กได้ทั้งสามหัวข้อพร้อมกันได้เลย แต่ผมต้องการให้ติ๊กแล้วเลือกหัวข้อเดียว
-  ผมไม่สามารถดึงค่าหัวข้อที่ติ๊กออกมาเพื่อใช้งานได้ครับ เช่น ติ๊ก Tp1 มีค่าเท่ากับ 1 , ติ๊ก tp2 มีค่าเท่ากับ 2


//+------------------------------------------------------------------+
//|                                                     Panel V1.mq4 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#include <Controls\Panel.mqh>
CPanel   panel;
#include <Controls\RadioGroup.mqh>
CRadioGroup cbg;
#include <Controls\Label.mqh>
CLabel L1,L2,L3,L4;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
extern int     Position_Comment     = 1000;
extern color   ColorBG              = clrDarkBlue;
int OnInit()
  {
//---
   CreatePanel();
   CreateCheckgroup();
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   CreatePanel();
   
  }
//+------------------------------------------------------------------+
void CreatePanel(void)
  {
   panel.Create(0,"P1",0,0,0,150,150);
   panel.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT);
   panel.Alignment(WND_ALIGN_CLIENT,0,0,0,0);
   panel.ColorBackground(ColorBG);
   panel.BorderType(BORDER_RAISED);
   panel.Shift(Position_Comment+40,20);

   L1.Create(0,"L1",0,0,0,0,0);
   L1.Shift(Position_Comment+45,22);
   L1.Text("Panel V1");
   L1.Color(clrWhite);
   L1.FontSize(10);
   
   L2.Create(0,"L2",0,0,0,0,0);
   L2.Shift(Position_Comment+40,30);
   L2.Text(" ____________________");
   L2.Color(clrWhite);

   L3.Create(0,"L3",0,0,0,0,0);
   L3.Shift(Position_Comment+45,70);
   L3.Text("TakeProfit : ");
   L3.Color(clrWhite);
   L3.FontSize(10);

   L4.Create(0,"L4",0,0,0,0,0);
   L4.Shift(Position_Comment+120,70);
   L4.Text(IntegerToString(cbg.Value()));
   L4.Color(clrWhite);
   L4.FontSize(10);
  }
void CreateCheckgroup(void)
  {
   cbg.Create(0,"CheckGroup",0,5,5,100,60);
   cbg.ColorBackground(CONTROLS_DIALOG_COLOR_BG);
   cbg.BorderType(BORDER_FLAT);
   cbg.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT);
   cbg.Shift(Position_Comment+45,100);
   cbg.AddItem("TP : 1 ",1<<1);
   cbg.AddItem("TP : 2 ",1<<2);
   cbg.AddItem("TP : 3 ",1<<3);
  }

ท่านครับ เราสามารถกำหนดให้ panel ชิดด้านขวาได้อย่างไรครับ ที่ใช้คำสั่งแบบ CORNER_RIGHT_UPPER โดยไม่ต้องกำหนดตำแหน่ง ใน shift

Tags:
 

เครื่องมือเทรด Forex

ข่าว Forex กราฟ Forex EURUSD GBPUSD GBPJPY ตารางข่าว Forex

เครื่องมือเทรดทองคำ

ราคาทอง วันนี้ ราคาทอง ย้อนหลัง SPDR ล่าสุด กราฟราคาทองคำ วิเคราะห์ ราคาทอง ข่าว ราคาทองคำ ข่าว ราคาน้ำมัน

โบรคเกอร์ Forex

XM Exness FBS Nordfx Pepperstone Land-FX Admiral Markets

Tickmill