ฟอรั่มของบล็อก http://pssix.blogspot.com


สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

Share

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 22/07/15, 12:12 pm

em218  แฮ่ๆสวัสดีครับผมไม่ได้มาซะนานนน  

ผมเขียน code ให้โต้ตอบกับ GUI แล้ว
ทีนี้อยากทราบวิธีดึง ค่าจาก ComboBox มาเก็บไว้ที่ตัวแปรแล้วนำไปใช้งานอย่างไรครับ
คิดแนวทางการเขียนไม่ออกเลย ด้านล่างเป็น code ทั้งหมดที่ผมทำและเอาของคนอื่นๆมาแก้นิดหน่อยครับ

จะเขียน code อย่างไรให้เก็บค่าของรางวัลที่เราเลือกไว้โดยกดปุ่ม [คลิ๊กเพื่อเลือกรางวัล]  em234

ป.ล แว่ฟมาแก้ไขลบ code ออก ทำไว้ใช้คนเดียวและศึกษาเท่านั้น ^^


แก้ไขล่าสุดโดย test_music เมื่อ 24/07/15, 12:21 pm, ทั้งหมด 2 ครั้ง

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by thunmor on 22/07/15, 03:05 pm

การดึงค่าจากGUI ใช้คำสั่ง GUICtrlRead ครับ
เช่น $value = GUICtrlRead ( $Combo1 ) จะเก็บค่าจากCombo1 ลงในตัวแปรชื่อvalue

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 22/07/15, 03:07 pm

ขอบคุณมากครับทดสอบแป๋บนึง

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 23/07/15, 01:26 pm

ไปทดลองเขียนแล้ว งงครับ มี code ตัวอย่างไหมครับผม em234

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by thunmor on 23/07/15, 02:59 pm

อันนี้ตัวอย่างแบบง่ายๆ ลองค่อยๆทำความเข้าใจดูครับ
Code:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("ทดสอบ", 228, 109, 398, 213)
$Combo1 = GUICtrlCreateCombo("", 24, 16, 177, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData($Combo1, "ตัวเลือก1|ตัวเลือก2|ตัวเลือก3|ตัวเลือก4|ตัวเลือก5")
$Button1 = GUICtrlCreateButton("อ่านค่า", 80, 56, 73, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
      Case $Button1
         test()

   EndSwitch
WEnd

Func test()
   $value = GUICtrlRead ( $Combo1 ) ;เก็บค่าจากCombo1 ลงในตัวแปรชื่อvalue
   MsgBox ( 0, "ค่าในคัวแปรชื่อvalueคือ", $value ) ;แสดงผลค่าที่เก็บในตัวแปรชื่อvalueในMsgBox


   MsgBox ( 0, "อ่านจากGUIชื่อCombo1โดยตรง", GUICtrlRead ( $Combo1 ) ) ;หรือจะอ่านค่าจากGUIโดยตรงโดยไม่ต้องเก็บลงตัวแปรก็ได้เช่นกัน
EndFunc

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 23/07/15, 11:37 pm

โอ้ววขอบคุณ ท่าน thunmor มากครับ ขอนำไปทดสอบก่อนนะถ้าไม่ง่วงก่อนจะนำผลทดสอบมาบอกครับ
ป.ล ถ้าผมจะเก็บค่า อาร์เรย แบบ 2 มิติ เขียนแบบไหนได้บ้างครับขอตัวอย่าง อาร์เรย 2 มิติทีนะครับ
dim = coloritem[3][3] =[]  <----ตรงส่วนนี้ผมเขียนแล้วมันเออเร่อ เลยงง -.-/

ป.ล2 BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL <--- ความหมายมันคืออะไรครับ

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by thunmor on 24/07/15, 08:48 am

$CBS_DROPDOWN จะแสดง list box เมื่อผู้ใช้คลิกไอค่อนรูปลูกศรลงท้ายedit control
ถ้าแก้สคริปเป็น BitOR("",$CBS_AUTOHSCROLL) list boxจะหายไป

$CBS_AUTOHSCROLL เอาไว้ขยายช่องพิมพ์ข้อความตรงedit control ถ้าพิมพ์อักษรจนล้นช่องมันจะช่วยขยายช่องพิมพ์ออกไปทำให้พิมพ์อักษรเพิ่มได้เรื่อยๆ
ถ้าแก้สคริปเป็น BitOR($CBS_DROPDOWN,"") เมื่อพิมพ์ข้อความล้นช่องจนเต็ม จะพิมพ์เพิ่มไม่ได้อีก

อันนี้ตัวอย่างArray2มิติ
Code:
;ประกาศตัวแปรชื่อcoloritemเป็นArray2มิติ โดยไม่ได้กำหนดค่าใดๆในตัวแปร(ว่างปล่าวทุกหน่วย)
Dim $coloritem[3][3]

;ประกาศตัวแปรชื่อcoloritemเป็นArray2มิติ พร้อมทั้งกำหนดค่าในตัวแปร(บางหน่วย)
Dim $coloritem[3][3] = [["แถว1 คอลัม1", "", "แถว1 คอลัม3"],[], ["แถว3 คอลัม1", "แถว3 คอลัม2"]]

;หรือจะกำหนดค่าในตัวแปรในภายหลัง ทีละหน่วยแบบนี้ก็ได้
$coloritem[0][1] = "แถว1 คอลัม2"

$coloritem[1][0] = "แถว2 คอลัม1"
$coloritem[1][1] = "แถว2 คอลัม2"
$coloritem[1][2] = "แถว2 คอลัม3"

$coloritem[2][2] = "แถว3 คอลัม3"
ทั้งหมดที่ผมบอกมามีให้อ่านในHelpหมดกด F1 หาดูเองก็ได้ครับ

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 24/07/15, 10:59 pm

ทดสอบรันแล้วผ่านฉลุย บางทีผมกด F1 อ่านแล้ว งงเลยโพสถามครับ Eng ไม่แข็งแรงง แถมแปลด้วย อากู๋ งงมาก-*-/
ตอนนี้มางงเรื่องการดึงค่า อาร์เรย มาใช้แทนละครับ -*-

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by thunmor on 25/07/15, 12:12 am

การเอาค่าจากArrayมาใช้ก็ทำแบบเดียวกับตัวแปรธรรมดา แค่ต้องอ้างหน่วยที่ต้องการใช้เพิ่มขึ้นใน []

ตัวอย่าง
Code:
;ประกาศตัวแปรชื่อcoloritemเป็นArray2มิติ พร้อมทั้งกำหนดค่าในตัวแปร(บางหน่วย)
Dim $coloritem[3][3] = [["แถว1 คอลัม1", "", "แถว1 คอลัม3"],[],["แถว3 คอลัม1", "แถว3 คอลัม2"]]
;กำหนดค่าในตัวแปรในภายหลังทีละหน่วยจนครบ
$coloritem[0][1] = "แถว1 คอลัม2"
$coloritem[1][0] = "แถว2 คอลัม1"
$coloritem[1][1] = "แถว2 คอลัม2"
$coloritem[1][2] = "แถว2 คอลัม3"
$coloritem[2][2] = "แถว3 คอลัม3"

; ตัวอย่างการดึงค่าในArrayมาใช้แสดงใน MsgBox
MsgBox ( 0, "$coloritem[0][0]", $coloritem[0][0] )
MsgBox ( 0, "$coloritem[0][1]", $coloritem[0][1] )
MsgBox ( 0, "$coloritem[0][2]", $coloritem[0][2] )
MsgBox ( 0, "$coloritem[1][0]", $coloritem[1][0] )
MsgBox ( 0, "$coloritem[1][1]", $coloritem[1][1] )
MsgBox ( 0, "$coloritem[1][2]", $coloritem[1][2] )
MsgBox ( 0, "$coloritem[2][0]", $coloritem[2][0] )
MsgBox ( 0, "$coloritem[2][1]", $coloritem[2][1] )
MsgBox ( 0, "$coloritem[2][2]", $coloritem[2][2] )

; ถ้าต้องการจัดการกับArrayจำนวนมาก สามารถใช้loopช่วยเช่นตัวอย่างนี้
For $i = 0 To UBound($coloritem, 1) - 1
   For $j = 0 To UBound($coloritem, 2) - 1
      MsgBox(0, "$coloritem" & "[" & $i & "][" & $j & "]", $coloritem[$i][$j])
   Next
Next
ลองอ่านบทความของAdmin ดูครับ
[You must be registered and logged in to see this link.]

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 26/07/15, 09:26 am

ขอบคุณครับ เรื่องอาร์เรยผมอ่านแล้วงงๆแต่พอเข้าใจครับ
เดี๋ยวว่างๆผมลองเขียน code แล้วจะนำมาขอคำแนะนำครับท่าน thumor

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 27/07/15, 01:51 pm

จาก code ผมจะเขียนยังไงให้ตัวแปร $coloritem เก็บค่าลงตัวแปร($ColorHex)หลังจากกดปุ่ม  [คลิ๊กเพื่อเลือกรางวัล]
ผมตั้งใจไว้ว่าหลังจากกดปุ่มแล้วจะนำค่าจากตัวแปร $ColorHex ไปใช้อ้างอิงกับการเช็ครางวัลที่เลือกไว้อ่ะครับ

กดเลยนะ:

ขอลบ Code นะ em232


แก้ไขล่าสุดโดย test_music เมื่อ 28/07/15, 09:17 am, ทั้งหมด 1 ครั้ง

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by thunmor on 27/07/15, 04:51 pm

คือ...ต้องการCopyค่าจาก$coloritem ไปยังตัวแปรใหม่โดยประกาศเป็นชื่อ$ColorHex ใช่ไหมครับ
ผมไม่แนใจว่าใช่สิ่งที่ต้องการหรือปล่าว


แก้ไขล่าสุดโดย thunmor เมื่อ 02/08/15, 10:09 am, ทั้งหมด 1 ครั้ง

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 27/07/15, 08:39 pm

อ๋อๆไม่ใช่ครับ
คือ ผมอยากเวลาผมกด $ConfirmItem= GUICtrlCreateButton("คลิ๊กเพื่อเลือกรางวัล", 260 ,9 ,110 ,25)
แล้วให้ค่า $coloritem เก็บค่าสีตรงกับของรางวัลที่เลือกน่ะครับ
เช่น ผมเลือก
2 Aura Wing of Bones 5 ชิ้น มันก็จะเก็บไว้ในตัวแปร  $item
ที่นี้ผมอยากให้ มันเก็บค่า $coloritem[2] = 0x000002 ไปไว้ตัวแปร $ColorHex น่ะครับ
ผมแค่อยากให้ค่าสีมันตรงกับของรางวัลน่ะครับ เพือผมจะได้นำไปใช้อีกทีนึงครับผม

thunmor
PSsix Member
PSsix Member


จำนวนข้อความ : 26
ความนิยม : 22
เข้าร่วมเมื่อ : 06/08/2012

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by thunmor on 27/07/15, 11:45 pm

ถ้าแบบนั้นทำได้หลายวิธีครับ จะใช้ if...ElseIf.... ธรรมดาก็ได้ แต่สคริปจะยาวเป็น15กว่าบรรทัด
อีกวิธีที่แนะนำคือใช้loopช่วย สคริปแค่3บรรทัดเท่านั้น
Code:
 For $i = 0 To UBound($DetialItem) - 1
       If $Item = $DetialItem[$i] Then $ColorHex = $coloritem[$i]
   Next
อย่าลืมประกาศ $ColorHex เป็น Global ด้วยนะ


แก้ไขล่าสุดโดย thunmor เมื่อ 02/08/15, 10:12 am, ทั้งหมด 1 ครั้ง

test_music
PSsix Member Class II
PSsix Member Class II


จำนวนข้อความ : 41
ความนิยม : 7
เข้าร่วมเมื่อ : 05/08/2013

Re: สวัสดีครับสอบถามเรื่องการนำค่าจาก comboBox มาใช้งานทีนาาา

ตั้งหัวข้อ by test_music on 28/07/15, 09:21 am

ว้าวววได้เรียบร้อยครับผม ขอบคุณท่าน thunmor มากๆครับ
ว่าแต่แนวคิดยังไงครับ ผมไม่ชำนาญหลายๆเรื่องเลยแฮ๊ะ
ป.ล เซิร์ฟเกมส์ยังไม่เปิดอดทำต่อ T^T

    เวลาขณะนี้ 26/09/17, 06:03 pm