GUISetAccelerators

Programlama dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
darendeli
Byte4
Byte4
Mesajlar: 183
Kayıt: 06 Haz 2016, 16:55

GUISetAccelerators

Mesaj gönderen darendeli »

2 Farkli Liste Var 2 Listeyede Ayrı Enter ile Ekleme Delete ile Silme Tusu Yapmak için Ugrastım Yapamadım Hata Nerde Acaba
2 liste icinde Aynı Tusları Nasıl KullanaBiliriz...

Kod: Tümünü seç

$KayisiSil =GUICtrlCreateDummy()
$KayisiEkle =GUICtrlCreateDummy()
Dim $EkleSil2 [2][2] = [["{DELETE}",$KayisiSil],["{ENTER}",$KayisiEkle]]
GUISetAccelerators($EkleSil2)

$BaharatSil =GUICtrlCreateDummy()
$BaharatEkle =GUICtrlCreateDummy()
Dim $EkleSil [2][2] = [["{DELETE}",$BaharatSil],["{ENTER}",$BaharatEkle]]
GUISetAccelerators($EkleSil)
Program Yazmanın En Güzel Yanı Birilerinin Bu Programlardan Faydalandığını Görmektir..
anxious
Byte3
Byte3
Mesajlar: 106
Kayıt: 11 Mar 2015, 07:56

Re: GUISetAccelerators

Mesaj gönderen anxious »

Autoit List konusunda pek iyi değilimdir ama Yanlışım varsa umarım bluelife düzeltir :)

Kod: Tümünü seç

#include <GUIConstantsEx.au3>
#include <Misc.au3>
#include <GUIListBox.au3>
#include <WinAPI.au3>

Global $dll = DllOpen("user32.dll")
$Form1 = GUICreate("Test", 500, 500)
$hList = GUICtrlCreateList("", 10, 10, 480, 480)
GUICtrlSetData($hList, "Kayısı|Baharat|Malatya|Darende")
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			DllClose($dll)
			Exit
	EndSwitch
	
	If _IsPressed("0D", $dll) Then ;0D Enter
		_WinAPI_ShowMsg("Seçilen: " & _GUICtrlListBox_GetCurSel($hList))
		$GetCurSel = _GUICtrlListBox_GetCurSel($hList)
		_GUICtrlListBox_BeginUpdate($hList)
		_GUICtrlListBox_AddString($hList, $GetCurSel)
		_GUICtrlListBox_InsertString($hList, "test", 3)
		_GUICtrlListBox_UpdateHScroll($hList)
		_GUICtrlListBox_EndUpdate($hList)
        EndIf

    If _IsPressed("2E", $dll) Then; 2E delete
        Local $indice = _GUICtrlListBox_GetCurSel($hList)
        Local $SoruMessageBox = MsgBox(36, "", "Silmek istediğinizden Emin misiniz?")
        Select
            Case $SoruMessageBox = 6 ;Yes
                _GUICtrlListBox_DeleteString($hList, $indice)
            ;Case $SoruMessageBox = 7 ;No
                ;Exit
		EndSelect
    EndIf
WEnd
DllClose($dll)
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 215
Kayıt: 29 Ağu 2014, 20:42

Re: GUISetAccelerators

Mesaj gönderen BlueLife »

Merhaba arkadaşlar. Kısaca guideki seçili listeye göre (GetFocus ile) işlem yaptırabilirsiniz. Aşağıdaki basit örneği incelersiniz.
Çalışmalarınızda başarılar, kolay gelsin...

Kod: Tümünü seç

Opt("GUIOnEventMode", 1)
Global $Form1 = GUICreate("Test", 500, 300)
GUISetOnEvent(-3, "_GUI_EXIT")

Global $hList1 = GUICtrlCreateList("", 0, 0, 250, 250)
GUICtrlSetData($hList1, "Kayısı|Baharat|Malatya|Darende")

Global $hList2 = GUICtrlCreateList("", 250, 0, 250, 250)
GUICtrlSetData($hList2, "Elma|Kiraz|Merhaba|Sordum")

Global $GuiKeys[2][2] = [["{DELETE}",GUICtrlCreateDummy()],["{ENTER}",GUICtrlCreateDummy()]]
GUICtrlSetOnEvent($GuiKeys[0][1], "_GUI_KEY_DEL")
GUICtrlSetOnEvent($GuiKeys[1][1], "_GUI_KEY_ENTER")
GUISetAccelerators($GuiKeys)

Local $GuiButton1 = GUICtrlCreateButton("Button", 10, 260, 100, 25)
GUICtrlSetOnEvent($GuiButton1, "_GUI_BUTTON1")

GUISetState(@SW_SHOW)
While 1
	Sleep(100)
WEnd

Func _GUI_BUTTON1()
	MsgBox(64,"Button",GUICtrlRead($hList1) & @crlf & GUICtrlRead($hList2))
EndFunc

Func _GUI_KEY_DEL()
	Switch __WinAPI_GetFocus()
		Case GUICtrlGetHandle($hList1)
			MsgBox(64,"DEL",GUICtrlRead($hList1))
		Case GUICtrlGetHandle($hList2)
			MsgBox(64,"DEL",GUICtrlRead($hList2))
	EndSwitch
EndFunc

Func _GUI_KEY_ENTER()
	Switch __WinAPI_GetFocus()
		Case GUICtrlGetHandle($hList1)
			MsgBox(64,"ENTER",GUICtrlRead($hList1))
		Case GUICtrlGetHandle($hList2)
			MsgBox(64,"ENTER",GUICtrlRead($hList2))
	EndSwitch
EndFunc

Func _GUI_EXIT()
	Exit
EndFunc

Func __WinAPI_GetFocus()
	Local $aResult = DllCall("user32.dll", "hwnd", "GetFocus")
	If @error Then Return SetError(@error, @extended, 0)
	Return $aResult[0]
EndFunc   ;==>__WinAPI_GetFocus
darendeli
Byte4
Byte4
Mesajlar: 183
Kayıt: 06 Haz 2016, 16:55

Re: GUISetAccelerators

Mesaj gönderen darendeli »

Yapmak istedigim Program Bu Baharatı Ekliyor Kayısıda Probrem oluyor Gui
GuisetonEventsiz Olmazmı Programı Ona Göre Düzenlemek Gerekiyor

Kod: Tümünü seç

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Language=1055
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <GUIEdit.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
;#include "_UskinLibrary.au3"


;_Uskin_LoadDLL()
;_Uskin_Init(@ScriptDir&"\Safari.msstyles")

$GizliDosya1 = (@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
$GizliDosya2 = (@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")

$gui = GUICreate("Darendeli ~ MALATYA ~ ŞİFA PAZARI", 515, 550)
GUICtrlSetFont(-1, 14, 800)
$Label1 = GUICtrlCreateLabel("Antep Yöresi Kilo~Gram Fiyat Listesi", 50, 5, 353, 22)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$Group1 = GUICtrlCreateGroup("", 1, 22, 781, 45)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$input = GUICtrlCreateInput("", 5, 40, 80, 20)
_GUICtrlEdit_SetCueBanner(-1, "Kilo Fiyat", True)
$input2 = GUICtrlCreateInput("", 100, 40, 120, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram Fiyat", True)
$input3 = GUICtrlCreateInput("", 230, 40, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram", True)
$input4 = GUICtrlCreateInput("", 375, 40, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Baharat ADI", True)
$Checkbox1 = GUICtrlCreateCheckbox("", 440, 4, 12, 17)
GUICtrlSetTip(-1,"Baharat Kilo~Gram Satış Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşunu Aktif Eder.")
 $buton2 = GUICtrlCreateButton("Gizle", 460, 2, 50, 25)
 GUICtrlSetTip(-1,"Baharat Kilo~Gram Satış Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşudur.")
GUICtrlSetState(-1, $GUI_DISABLE)
$list = _GUICtrlListView_Create($gui, "", 1, 65,510, 195)
_GUICtrlListView_SetExtendedListViewStyle($list, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE))
_GUICtrlListView_InsertColumn($list, 0, "SIRA")
_GUICtrlListView_InsertColumn($list, 1, "Kilo Fiyat")
_GUICtrlListView_InsertColumn($list, 2, "         Satış Gram Fiyat         ")
_GUICtrlListView_InsertColumn($list, 3, "             Satış Gram             ")
_GUICtrlListView_InsertColumn($list, 4, "Baharat ADI")
If(FileExists(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")) Then
	$read_section = IniReadSectionNames(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
	If Not @error Then
	For $i = 1 To $read_section[0]
		$read = IniReadSection(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", $read_section[$i])
		_GUICtrlListView_AddItem($list, $i)
		_GUICtrlListView_AddSubItem($list, ($i -1), $read_section[$i], 1)
		For $i3 = 1 To $read[0][0]
			If($read[$i3][0] == "SatisGram") Then _GUICtrlListView_AddSubItem($list, ($i -1), $read[$i3][1], 2)
			If($read[$i3][0] == "SatisGramFiyat") Then _GUICtrlListView_AddSubItem($list, ($i -1), $read[$i3][1], 3)
			If($read[$i3][0] == "KiloFiyat") Then _GUICtrlListView_AddSubItem($list, ($i -1), $read[$i3][1], 4)
		Next
	Next
 EndIf
EndIf

_center_list($list)
_list_column_size($gui, $list)

$Label2 = GUICtrlCreateLabel("Malatya Yöresi Kilo~Gram Fiyat Listesi", 50, 270, 353, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$Group1 = GUICtrlCreateGroup("", 1, 287, 781, 45)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$input5 = GUICtrlCreateInput("", 5, 305, 80, 20)
_GUICtrlEdit_SetCueBanner(-1, "Kilo Fiyat", True)
$input6 = GUICtrlCreateInput("", 100, 305, 120, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram Fiyat", True)
$input7 = GUICtrlCreateInput("", 230, 305, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram", True)
$input8 = GUICtrlCreateInput("", 375, 305, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Kuruyemiş ADI", True)
$Checkbox2 = GUICtrlCreateCheckbox("", 440, 270, 12, 17)
GUICtrlSetTip(-1,"Kayısı KuruYemiş Kilo~Gram Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşunu Aktif Eder.")
$buton3 = GUICtrlCreateButton("Gizle", 460, 267, 50, 25)
GUICtrlSetTip(-1,"Kayısı KuruYemiş Kilo~Gram Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşudur.")
GUICtrlSetState(-1, $GUI_DISABLE)
$list1 = _GUICtrlListView_Create($gui, "", 1, 330,510, 195)
_GUICtrlListView_SetExtendedListViewStyle($list1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE))
_GUICtrlListView_InsertColumn($list1, 0, "SIRA")
_GUICtrlListView_InsertColumn($list1, 1, "Kilo Fiyat")
_GUICtrlListView_InsertColumn($list1, 2, "         Satış Gram Fiyat         ")
_GUICtrlListView_InsertColumn($list1, 3, "             Satış Gram             ")
_GUICtrlListView_InsertColumn($list1, 4, "Kuruyemiş ADI")
If(FileExists(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")) Then
	$read_section = IniReadSectionNames(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")
	If Not @error Then
	For $i = 1 To $read_section[0]
		$read = IniReadSection(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", $read_section[$i])
		_GUICtrlListView_AddItem($list1, $i)
		_GUICtrlListView_AddSubItem($list1, ($i -1), $read_section[$i], 1)
		For $i3 = 1 To $read[0][0]
			If($read[$i3][0] == "SatisGram") Then _GUICtrlListView_AddSubItem($list1, ($i -1), $read[$i3][1], 2)
			If($read[$i3][0] == "SatisGramFiyat") Then _GUICtrlListView_AddSubItem($list1, ($i -1), $read[$i3][1], 3)
			If($read[$i3][0] == "KiloFiyat") Then _GUICtrlListView_AddSubItem($list1, ($i -1), $read[$i3][1], 4)
		Next
	Next
 EndIf
EndIf

_center_list ($list1)
_list_column_size ($gui, $list1)


$KayisiSil =GUICtrlCreateDummy()
$KayisiEkle =GUICtrlCreateDummy()
Dim $EkleSil2 [2][2] = [["{DELETE}",$KayisiSil],["{ENTER}",$KayisiEkle]]
GUISetAccelerators($EkleSil2)

$BaharatSil =GUICtrlCreateDummy()
$BaharatEkle =GUICtrlCreateDummy()
Dim $EkleSil [2][2] = [["{DELETE}",$BaharatSil],["{ENTER}",$BaharatEkle]]
GUISetAccelerators($EkleSil)

GUISetState()



While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $BaharatEkle
			IniWrite(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", GUICtrlRead($input), "SatisGram", GUICtrlRead($input2))
			IniWrite(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", GUICtrlRead($input), "SatisGramFiyat", GUICtrlRead($input3))
			IniWrite(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", GUICtrlRead($input), "KiloFiyat", GUICtrlRead($input4))
			$count = _GUICtrlListView_GetItemCount($list)
			_GUICtrlListView_AddItem($list, $count+1)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input), 1)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input2), 2)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input3), 3)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input4), 4)
			_list_column_size($gui, $list)
			GUICtrlSetData($input, "")
			GUICtrlSetData($input2, "")
			GUICtrlSetData($input3, "")
			GUICtrlSetData($input4, "")

		Case $KayisiEkle
			IniWrite(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", GUICtrlRead($input5), "SatisGram", GUICtrlRead($input6))
			IniWrite(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", GUICtrlRead($input5), "SatisGramFiyat", GUICtrlRead($input7))
			IniWrite(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", GUICtrlRead($input5), "KiloFiyat", GUICtrlRead($input8))
			$count = _GUICtrlListView_GetItemCount($list1)
			_GUICtrlListView_AddItem($list1, $count+1)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input5), 1)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input6), 2)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input7), 3)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input8), 4)
		    _list_column_size ($gui, $list1)
			GUICtrlSetData($input5, "")
			GUICtrlSetData($input6, "")
			GUICtrlSetData($input7, "")
			GUICtrlSetData($input8, "")

           Case $buton2

            If GUICtrlRead($buton2) = "Gizle" Then
				_DosyaGizle($GizliDosya1)
				GUICtrlSetData($buton2, "Göster")
			Else
				_DosyaGoster($GizliDosya1)
				GUICtrlSetData($buton2, "Gizle")
			EndIf

           Case $buton3

            If GUICtrlRead($buton3) = "Gizle" Then
				_DosyaGizle2($GizliDosya2)
				GUICtrlSetData($buton3, "Göster")
			Else
				_DosyaGoster2($GizliDosya2)
				GUICtrlSetData($buton3, "Gizle")
			EndIf

            Case $CheckBox1
           If GUICtrlRead($CheckBox1) = $GUI_CHECKED Then GUICtrlSetState($buton2, $GUI_ENABLE)
            If GUICtrlRead($CheckBox1) = $GUI_UNCHECKED Then GUICtrlSetState($buton2, $GUI_DISABLE)

            Case $CheckBox2
           If GUICtrlRead($CheckBox2) = $GUI_CHECKED Then GUICtrlSetState($buton3, $GUI_ENABLE)
            If GUICtrlRead($CheckBox2) = $GUI_UNCHECKED Then GUICtrlSetState($buton3, $GUI_DISABLE)



        Case $BaharatSil
			ConfigRemData()

        Case $KayisiSil
			ConfigRemData2()

	EndSwitch
WEnd


Func ConfigRemData()
	DeleteSelectedItems()
;~     _GUICtrlListView_DeleteItemsSelected($list)
EndFunc   ;==>ConfigRemData

Func DeleteSelectedItems()
	Local $SelectedItems = _GUICtrlListView_GetSelectedIndices($list,True)
	For $i = 1 To $SelectedItems[0]
		IniDelete(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3",_GUICtrlListView_GetItemText($list,$SelectedItems[$i],1))
		_GUICtrlListView_DeleteItem($list,$SelectedItems[$i])
    Next
	Local $icerik = FileReadToArray(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
	If @error Then;dosya boş olunca hata vereceği için bu kod bloğuna alıyorum
		FileDelete(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
	EndIf
EndFunc


Func ConfigRemData2()
	DeleteSelectedItems2()
;~     _GUICtrlListView_DeleteItemsSelected($list)
EndFunc   ;==>ConfigRemData

Func DeleteSelectedItems2()
	Local $SelectedItems = _GUICtrlListView_GetSelectedIndices($list1,True)
	For $i = 1 To $SelectedItems[0]
		IniDelete(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3",_GUICtrlListView_GetItemText($list1,$SelectedItems[$i],1))
		_GUICtrlListView_DeleteItem($list1,$SelectedItems[$i])
    Next
	Local $icerik = FileReadToArray(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")
	If @error Then;dosya boş olunca hata vereceği için bu kod bloğuna alıyorum
		FileDelete(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")
	EndIf
EndFunc

Func _center_list($list_handle)
	For $i = 0 To _GUICtrlListView_GetColumnCount($list_handle) - 1
		_GUICtrlListView_JustifyColumn($list_handle, $i, 2)
	Next
EndFunc   ;==>_center_list
Func _list_column_size($gui_handle, $list_handle)
	$iScroll_Allowance = 0
	_GUICtrlListView_EnsureVisible($list_handle, _GUICtrlListView_GetItemCount($list_handle))
	If _GUICtrlListView_GetTopIndex($list_handle) > 0 Then
		$iScroll_Allowance = 17
	EndIf
	_GUICtrlListView_EnsureVisible($list_handle, 0)
	$iLV_Width = $iScroll_Allowance
	For $i = 0 To _GUICtrlListView_GetColumnCount($list_handle) - 1
		_GUICtrlListView_SetColumnWidth($list_handle, $i, $LVSCW_AUTOSIZE_USEHEADER)
		$iHeader_Width = _GUICtrlListView_GetColumnWidth($list_handle, $i)
		_GUICtrlListView_SetColumnWidth($list_handle, $i, $LVSCW_AUTOSIZE)
		$iData_Width = _GUICtrlListView_GetColumnWidth($list_handle, $i)
		If $iHeader_Width > $iData_Width Then
			_GUICtrlListView_SetColumnWidth($list_handle, $i, $iHeader_Width)
			$iLV_Width += $iHeader_Width
		Else
			$iLV_Width += $iData_Width
		EndIf
	Next
	;ControlMove($gui_handle, "", $list_handle, Default, Default, $iLV_Width)
	;WinMove($gui_handle, "", Default, Default, $iLV_Width + 30)
EndFunc   ;==>_list_column_size






Func _DosyaGizle($GizliDosya1)
    FileSetAttrib($GizliDosya1,"+H")
EndFunc

Func _DosyaGoster($GizliDosya1)
    FileSetAttrib($GizliDosya1,"-H")
EndFunc


Func _DosyaGizle2($GizliDosya2)
    FileSetAttrib($GizliDosya2,"+H")
EndFunc

Func _DosyaGoster2($GizliDosya2)
    FileSetAttrib($GizliDosya2,"-H")
EndFunc




Program Yazmanın En Güzel Yanı Birilerinin Bu Programlardan Faydalandığını Görmektir..
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 215
Kayıt: 29 Ağu 2014, 20:42

Re: GUISetAccelerators

Mesaj gönderen BlueLife »

@darendeli

Daha önce verdiğim örneği diğer şekil ile vereyim sen buna göre kendi çalışmanı ayarlarsın. Bir gui elemanında bir adet GUISetAccelerators ayarla.
Aşağıdakini incelersin. Kolay gelsin...

Kod: Tümünü seç

Global $Form1 = GUICreate("Test", 500, 300)
Global $hList1 = GUICtrlCreateListView("SIRA1|SIRA2|SIRA3", 0, 0, 250, 250)
GUICtrlCreateListViewItem("Kayısı|Baharat|Dünya",$hList1)

Global $hList2 = GUICtrlCreateListView("SIRA1|SIRA2|SIRA3", 250, 0, 250, 250)
GUICtrlCreateListViewItem("Elma|Kiraz|Merhaba",$hList2)

Global $GuiKeys[2][2] = [["{DELETE}",GUICtrlCreateDummy()],["{ENTER}",GUICtrlCreateDummy()]]
GUISetAccelerators($GuiKeys)

Local $GuiButton1 = GUICtrlCreateButton("Button", 10, 260, 100, 25)
GUISetState(@SW_SHOW)

Local $CTRL_ID
While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit
		Case $GuiButton1
			MsgBox(64,"Button",GUICtrlRead(GUICtrlRead($hList1)) & @crlf & GUICtrlRead(GUICtrlRead($hList2)))
		Case $GuiKeys[0][1]
			Switch __WinAPI_GetFocus()
				Case GUICtrlGetHandle($hList1)
					$CTRL_ID = GUICtrlRead($hList1)
					MsgBox(64,"DEL",GUICtrlRead($CTRL_ID))
				Case GUICtrlGetHandle($hList2)
					$CTRL_ID = GUICtrlRead($hList2)
					MsgBox(64,"DEL",GUICtrlRead($CTRL_ID))
			EndSwitch
		Case $GuiKeys[1][1]
			Switch __WinAPI_GetFocus()
				Case GUICtrlGetHandle($hList1)
					$CTRL_ID = GUICtrlRead($hList1)
					MsgBox(64,"ENTER",GUICtrlRead($CTRL_ID))
				Case GUICtrlGetHandle($hList2)
					$CTRL_ID = GUICtrlRead($hList2)
					MsgBox(64,"ENTER",GUICtrlRead($CTRL_ID))
			EndSwitch
	EndSwitch
WEnd

Func __WinAPI_GetFocus()
	Local $aResult = DllCall("user32.dll", "hwnd", "GetFocus")
	If @error Then Return SetError(@error, @extended, 0)
	Return $aResult[0]
EndFunc   ;==>__WinAPI_GetFocus
darendeli
Byte4
Byte4
Mesajlar: 183
Kayıt: 06 Haz 2016, 16:55

Re: GUISetAccelerators

Mesaj gönderen darendeli »

Sizin Örnekle Denemeler Yaptım Fakat Olmuyor...
sizin ornekte Liste içinde olan Kayıtlı Yazılara Enter Yapıyor...
Ben İnputlara Girilen Degerleri Listeye Aktaracagım..
Yada Kayıtlı olan Bilgiyi Silecegim..
Ayrı Keyler ile Yapıyorum Fakat 1 Keyi 2 islemde Kullanmayı Ögrenmek istiyorum...
Aktarma işlemini Gerceklestiremedim...
Gönderdigim Program üzerinden Gösterirseniz Cok Makbule Geçer...
Program Yazmanın En Güzel Yanı Birilerinin Bu Programlardan Faydalandığını Görmektir..
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 215
Kayıt: 29 Ağu 2014, 20:42

Re: GUISetAccelerators

Mesaj gönderen BlueLife »

@darendeli

Kodlarında düzeltme yapmadım. Sadece istediğin örnek için ekleme yapıyorum. Incelersin.
Kolay gelsin...

Kod: Tümünü seç

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#AutoIt3Wrapper_Res_Language=1055
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <GUIEdit.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
;#include "_UskinLibrary.au3"


;_Uskin_LoadDLL()
;_Uskin_Init(@ScriptDir&"\Safari.msstyles")

$GizliDosya1 = (@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
$GizliDosya2 = (@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")

$gui = GUICreate("Darendeli ~ MALATYA ~ ŞİFA PAZARI", 515, 550)
GUICtrlSetFont(-1, 14, 800)
$Label1 = GUICtrlCreateLabel("Antep Yöresi Kilo~Gram Fiyat Listesi", 50, 5, 353, 22)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$Group1 = GUICtrlCreateGroup("", 1, 22, 781, 45)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$input = GUICtrlCreateInput("", 5, 40, 80, 20)
_GUICtrlEdit_SetCueBanner(-1, "Kilo Fiyat", True)
$input2 = GUICtrlCreateInput("", 100, 40, 120, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram Fiyat", True)
$input3 = GUICtrlCreateInput("", 230, 40, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram", True)
$input4 = GUICtrlCreateInput("", 375, 40, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Baharat ADI", True)
$Checkbox1 = GUICtrlCreateCheckbox("", 440, 4, 12, 17)
GUICtrlSetTip(-1,"Baharat Kilo~Gram Satış Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşunu Aktif Eder.")
 $buton2 = GUICtrlCreateButton("Gizle", 460, 2, 50, 25)
 GUICtrlSetTip(-1,"Baharat Kilo~Gram Satış Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşudur.")
GUICtrlSetState(-1, $GUI_DISABLE)
$list = _GUICtrlListView_Create($gui, "", 1, 65,510, 195)
_GUICtrlListView_SetExtendedListViewStyle($list, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE))
_GUICtrlListView_InsertColumn($list, 0, "SIRA")
_GUICtrlListView_InsertColumn($list, 1, "Kilo Fiyat")
_GUICtrlListView_InsertColumn($list, 2, "         Satış Gram Fiyat         ")
_GUICtrlListView_InsertColumn($list, 3, "             Satış Gram             ")
_GUICtrlListView_InsertColumn($list, 4, "Baharat ADI")
If(FileExists(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")) Then
	$read_section = IniReadSectionNames(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
	If Not @error Then
	For $i = 1 To $read_section[0]
		$read = IniReadSection(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", $read_section[$i])
		_GUICtrlListView_AddItem($list, $i)
		_GUICtrlListView_AddSubItem($list, ($i -1), $read_section[$i], 1)
		For $i3 = 1 To $read[0][0]
			If($read[$i3][0] == "SatisGram") Then _GUICtrlListView_AddSubItem($list, ($i -1), $read[$i3][1], 2)
			If($read[$i3][0] == "SatisGramFiyat") Then _GUICtrlListView_AddSubItem($list, ($i -1), $read[$i3][1], 3)
			If($read[$i3][0] == "KiloFiyat") Then _GUICtrlListView_AddSubItem($list, ($i -1), $read[$i3][1], 4)
		Next
	Next
 EndIf
EndIf

_center_list($list)
_list_column_size($gui, $list)

$Label2 = GUICtrlCreateLabel("Malatya Yöresi Kilo~Gram Fiyat Listesi", 50, 270, 353, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0x000000)
$Group1 = GUICtrlCreateGroup("", 1, 287, 781, 45)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$input5 = GUICtrlCreateInput("", 5, 305, 80, 20)
_GUICtrlEdit_SetCueBanner(-1, "Kilo Fiyat", True)
$input6 = GUICtrlCreateInput("", 100, 305, 120, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram Fiyat", True)
$input7 = GUICtrlCreateInput("", 230, 305, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Satış Gram", True)
$input8 = GUICtrlCreateInput("", 375, 305, 130, 20)
_GUICtrlEdit_SetCueBanner(-1, "Kuruyemiş ADI", True)
$Checkbox2 = GUICtrlCreateCheckbox("", 440, 270, 12, 17)
GUICtrlSetTip(-1,"Kayısı KuruYemiş Kilo~Gram Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşunu Aktif Eder.")
$buton3 = GUICtrlCreateButton("Gizle", 460, 267, 50, 25)
GUICtrlSetTip(-1,"Kayısı KuruYemiş Kilo~Gram Fiyat Listesi Kayıtlarınızı Gizleme ve Gösterme Tuşudur.")
GUICtrlSetState(-1, $GUI_DISABLE)
$list1 = _GUICtrlListView_Create($gui, "", 1, 330,510, 195)
_GUICtrlListView_SetExtendedListViewStyle($list1, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES, $WS_EX_CLIENTEDGE))
_GUICtrlListView_InsertColumn($list1, 0, "SIRA")
_GUICtrlListView_InsertColumn($list1, 1, "Kilo Fiyat")
_GUICtrlListView_InsertColumn($list1, 2, "         Satış Gram Fiyat         ")
_GUICtrlListView_InsertColumn($list1, 3, "             Satış Gram             ")
_GUICtrlListView_InsertColumn($list1, 4, "Kuruyemiş ADI")
If(FileExists(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")) Then
	$read_section = IniReadSectionNames(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")
	If Not @error Then
	For $i = 1 To $read_section[0]
		$read = IniReadSection(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", $read_section[$i])
		_GUICtrlListView_AddItem($list1, $i)
		_GUICtrlListView_AddSubItem($list1, ($i -1), $read_section[$i], 1)
		For $i3 = 1 To $read[0][0]
			If($read[$i3][0] == "SatisGram") Then _GUICtrlListView_AddSubItem($list1, ($i -1), $read[$i3][1], 2)
			If($read[$i3][0] == "SatisGramFiyat") Then _GUICtrlListView_AddSubItem($list1, ($i -1), $read[$i3][1], 3)
			If($read[$i3][0] == "KiloFiyat") Then _GUICtrlListView_AddSubItem($list1, ($i -1), $read[$i3][1], 4)
		Next
	Next
 EndIf
EndIf

_center_list ($list1)
_list_column_size ($gui, $list1)


Global $LISTEDEN_SIL = GUICtrlCreateDummy()
Global $LISTEYE_EKLE = GUICtrlCreateDummy()
Global $GuiKeys[2][2] = [["{DELETE}",$LISTEDEN_SIL],["{ENTER}",$LISTEYE_EKLE]]
GUISetAccelerators($GuiKeys)


GUISetState()

Global $INPUT_HWND_1[4] = [GUICtrlGetHandle($input),GUICtrlGetHandle($input2),GUICtrlGetHandle($input3),GUICtrlGetHandle($input4)]
Global $INPUT_HWND_2[4] = [GUICtrlGetHandle($input5),GUICtrlGetHandle($input6),GUICtrlGetHandle($input7),GUICtrlGetHandle($input8)]
Global $INPUT_READ[4]
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
           Case $buton2

            If GUICtrlRead($buton2) = "Gizle" Then
				_DosyaGizle($GizliDosya1)
				GUICtrlSetData($buton2, "Göster")
			Else
				_DosyaGoster($GizliDosya1)
				GUICtrlSetData($buton2, "Gizle")
			EndIf

           Case $buton3

            If GUICtrlRead($buton3) = "Gizle" Then
				_DosyaGizle2($GizliDosya2)
				GUICtrlSetData($buton3, "Göster")
			Else
				_DosyaGoster2($GizliDosya2)
				GUICtrlSetData($buton3, "Gizle")
			EndIf

            Case $CheckBox1
           If GUICtrlRead($CheckBox1) = $GUI_CHECKED Then GUICtrlSetState($buton2, $GUI_ENABLE)
            If GUICtrlRead($CheckBox1) = $GUI_UNCHECKED Then GUICtrlSetState($buton2, $GUI_DISABLE)

            Case $CheckBox2
           If GUICtrlRead($CheckBox2) = $GUI_CHECKED Then GUICtrlSetState($buton3, $GUI_ENABLE)
            If GUICtrlRead($CheckBox2) = $GUI_UNCHECKED Then GUICtrlSetState($buton3, $GUI_DISABLE)

Case $LISTEYE_EKLE
	Switch __WinAPI_GetFocus()
		Case $INPUT_HWND_1[0],$INPUT_HWND_1[1],$INPUT_HWND_1[2],$INPUT_HWND_1[3]
			MsgBox(64,"ENTER","Liste 1")

			;Iputlarda bilgi varmı diye kontrol ettir. Basit Bir örnek
			$INPUT_READ[0] = StringStripWS(GUICtrlRead($input),3)
			$INPUT_READ[1] = StringStripWS(GUICtrlRead($input2),3)
			$INPUT_READ[2] = StringStripWS(GUICtrlRead($input3),3)
			$INPUT_READ[3] = StringStripWS(GUICtrlRead($input4),3)

			If StringLen($INPUT_READ[0]) = 0 Then
				GUICtrlSetState($input,256)
				ContinueLoop
			ElseIf StringLen($INPUT_READ[1]) = 0 Then
				GUICtrlSetState($input2,256)
				ContinueLoop
			ElseIf StringLen($INPUT_READ[2]) = 0 Then
				GUICtrlSetState($input3,256)
				ContinueLoop
			ElseIf StringLen($INPUT_READ[3]) = 0 Then
				GUICtrlSetState($input4,256)
				ContinueLoop
			EndIf
			; --------------------------

			IniWrite(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", GUICtrlRead($input), "SatisGram", GUICtrlRead($input2))
			IniWrite(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", GUICtrlRead($input), "SatisGramFiyat", GUICtrlRead($input3))
			IniWrite(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3", GUICtrlRead($input), "KiloFiyat", GUICtrlRead($input4))
			$count = _GUICtrlListView_GetItemCount($list)
			_GUICtrlListView_AddItem($list, $count+1)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input), 1)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input2), 2)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input3), 3)
			_GUICtrlListView_AddSubItem($list, $count, GUICtrlRead($input4), 4)
			_list_column_size($gui, $list)
			GUICtrlSetData($input, "")
			GUICtrlSetData($input2, "")
			GUICtrlSetData($input3, "")
			GUICtrlSetData($input4, "")

	Case $INPUT_HWND_2[0],$INPUT_HWND_2[1],$INPUT_HWND_2[2],$INPUT_HWND_2[3]
		MsgBox(64,"ENTER","Liste 2")
			IniWrite(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", GUICtrlRead($input5), "SatisGram", GUICtrlRead($input6))
			IniWrite(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", GUICtrlRead($input5), "SatisGramFiyat", GUICtrlRead($input7))
			IniWrite(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3", GUICtrlRead($input5), "KiloFiyat", GUICtrlRead($input8))
			$count = _GUICtrlListView_GetItemCount($list1)
			_GUICtrlListView_AddItem($list1, $count+1)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input5), 1)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input6), 2)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input7), 3)
			_GUICtrlListView_AddSubItem($list1, $count, GUICtrlRead($input8), 4)
		    _list_column_size ($gui, $list1)
			GUICtrlSetData($input5, "")
			GUICtrlSetData($input6, "")
			GUICtrlSetData($input7, "")
			GUICtrlSetData($input8, "")
	EndSwitch

	Case $LISTEDEN_SIL
			Switch __WinAPI_GetFocus()
				Case $list
					ConfigRemData()
					MsgBox(64,"DEL","Liste 1")
				Case $list1
					ConfigRemData2()
					MsgBox(64,"DEL","Liste 2")
			EndSwitch
	EndSwitch
WEnd


Func ConfigRemData()
	DeleteSelectedItems()
;~     _GUICtrlListView_DeleteItemsSelected($list)
EndFunc   ;==>ConfigRemData

Func DeleteSelectedItems()
	Local $SelectedItems = _GUICtrlListView_GetSelectedIndices($list,True)
	For $i = 1 To $SelectedItems[0]
		IniDelete(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3",_GUICtrlListView_GetItemText($list,$SelectedItems[$i],1))
		_GUICtrlListView_DeleteItem($list,$SelectedItems[$i])
    Next
	Local $icerik = FileReadToArray(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
	If @error Then;dosya boş olunca hata vereceği için bu kod bloğuna alıyorum
		FileDelete(@ScriptDir & "\Baharat Kilo~Gram Satış Fiyat Listesi.au3")
	EndIf
EndFunc


Func ConfigRemData2()
	DeleteSelectedItems2()
;~     _GUICtrlListView_DeleteItemsSelected($list)
EndFunc   ;==>ConfigRemData

Func DeleteSelectedItems2()
	Local $SelectedItems = _GUICtrlListView_GetSelectedIndices($list1,True)
	For $i = 1 To $SelectedItems[0]
		IniDelete(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3",_GUICtrlListView_GetItemText($list1,$SelectedItems[$i],1))
		_GUICtrlListView_DeleteItem($list1,$SelectedItems[$i])
    Next
	Local $icerik = FileReadToArray(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")
	If @error Then;dosya boş olunca hata vereceği için bu kod bloğuna alıyorum
		FileDelete(@ScriptDir & "\Kayısı KuruYemiş Kilo~Gram Fiyat Listesi.au3")
	EndIf
EndFunc

Func _center_list($list_handle)
	For $i = 0 To _GUICtrlListView_GetColumnCount($list_handle) - 1
		_GUICtrlListView_JustifyColumn($list_handle, $i, 2)
	Next
EndFunc   ;==>_center_list
Func _list_column_size($gui_handle, $list_handle)
	$iScroll_Allowance = 0
	_GUICtrlListView_EnsureVisible($list_handle, _GUICtrlListView_GetItemCount($list_handle))
	If _GUICtrlListView_GetTopIndex($list_handle) > 0 Then
		$iScroll_Allowance = 17
	EndIf
	_GUICtrlListView_EnsureVisible($list_handle, 0)
	$iLV_Width = $iScroll_Allowance
	For $i = 0 To _GUICtrlListView_GetColumnCount($list_handle) - 1
		_GUICtrlListView_SetColumnWidth($list_handle, $i, $LVSCW_AUTOSIZE_USEHEADER)
		$iHeader_Width = _GUICtrlListView_GetColumnWidth($list_handle, $i)
		_GUICtrlListView_SetColumnWidth($list_handle, $i, $LVSCW_AUTOSIZE)
		$iData_Width = _GUICtrlListView_GetColumnWidth($list_handle, $i)
		If $iHeader_Width > $iData_Width Then
			_GUICtrlListView_SetColumnWidth($list_handle, $i, $iHeader_Width)
			$iLV_Width += $iHeader_Width
		Else
			$iLV_Width += $iData_Width
		EndIf
	Next
	;ControlMove($gui_handle, "", $list_handle, Default, Default, $iLV_Width)
	;WinMove($gui_handle, "", Default, Default, $iLV_Width + 30)
EndFunc   ;==>_list_column_size






Func _DosyaGizle($GizliDosya1)
    FileSetAttrib($GizliDosya1,"+H")
EndFunc

Func _DosyaGoster($GizliDosya1)
    FileSetAttrib($GizliDosya1,"-H")
EndFunc


Func _DosyaGizle2($GizliDosya2)
    FileSetAttrib($GizliDosya2,"+H")
EndFunc

Func _DosyaGoster2($GizliDosya2)
    FileSetAttrib($GizliDosya2,"-H")
EndFunc

Func __WinAPI_GetFocus()
	Local $aResult = DllCall("user32.dll", "hwnd", "GetFocus")
	If @error Then Return SetError(@error, @extended, 0)
	Return $aResult[0]
EndFunc   ;==>__WinAPI_GetFocus
Cevapla