Jump to content

Listview Item Nasıl Disabled Yapılır


DivaneTR
 Share

Recommended Posts

ListView içerisindeki itemlerden birkaçını disabled konuma almak istiyorum fakat alakalı bir kod bulamadım. Resimdeki gibi disabled olup, işaretlenemez halini almasını istiyorum.

 

t3sNsZe.png

Link to comment
Share on other sites




#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>

Example()

Func Example()
    Local $ilistview, $msg, $aSel[10], $checked_state
    GUICreate("listview items", 220, 250, -1, -1)
    $iListView = GUICtrlCreateListView("1111111|222222222|33333333", 10, 10, 200, 150, -1, $LVS_EX_CHECKBOXES)
    $aSel[0]    =   GUICtrlCreateListViewItem("ALL", $iListView)
    $aSel[1]    =   GUICtrlCreateListViewItem("item1|col12|col13", $iListView)
    $aSel[2]    =   GUICtrlCreateListViewItem("item3|col32|col33", $iListView)
    $aSel[3]    =   GUICtrlCreateListViewItem("item3|col32|col33", $iListView)
    $aSel[4]    =   GUICtrlCreateListViewItem("item3|col32|col33", $iListView)
    $aSel[5]    =   GUICtrlCreateListViewItem("item3|col32|col33", $iListView)
    $aSel[6]    =   GUICtrlCreateListViewItem("item3|col32|col33", $iListView)

    GUISetState()

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

        $checked_state = _GUICtrlListView_GetItemChecked($ilistview,0)
        for $1 = 1 to 3
            $ret = _GUICtrlListView_SetItemChecked($ilistview, $1, $checked_state)
        next

    WEnd
EndFunc   ;==>Example
Edited by mesale0077
Link to comment
Share on other sites



#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>

$GUI = GUICreate("GUI", 600, 300)
$ListView = GUICtrlCreateListView("Test", 10, 10, 580, 280, $WS_BORDER, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES)

Local $aTest[2][5] = [["test1", "test2", "test3", "not checkable", "test5"]]
For $i = 0 To 4
    $aTest[1][$i] = GUICtrlCreateListViewItem($aTest[0][$i], $ListView)
Next

_GUICtrlListView_SetColumnWidth($ListView, 0, $LVSCW_AUTOSIZE_USEHEADER)

GUISetState(@SW_SHOW)


While True
    $msg = GUIGetMsg()
    Switch $msg
  Case - 3
            Exit
 EndSwitch
 GUICtrlSetState($aTest[1][3], $GUI_UNCHECKED)
WEnd

bunu dene tam olarak $GUI_UNCHECKED mı

Edited by mesale0077
Link to comment
Share on other sites

#include <GuiListView.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>
$Form1_1 = GUICreate("GBC", 1016, 575+20, -1, -1)
$hStatus = _GUICtrlStatusBar_Create($Form1_1 )
_GUICtrlStatusBar_SetText($hStatus, "Status")

$ListView2 = GUICtrlCreateListView(" | ", 16, 108, 986, 454, -1, BitOR($WS_EX_CLIENTEDGE, $LVS_EX_GRIDLINES, $LVS_EX_CHECKBOXES, $LVS_EX_FULLROWSELECT)) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
GUICtrlSetBkColor($ListView2, 0xCCCCFF) 

$hListView2 = GUICtrlGetHandle($ListView2)
GUICtrlCreateListViewItem("0|Test 1",$ListView2)

GUICtrlCreateListViewItem("1|test 3",$ListView2)

GUICtrlCreateListViewItem("2|test 4",$ListView2)


GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg

Case $GUI_EVENT_CLOSE

    Exit
EndSwitch
WEnd


Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $hwndFrom, $code, $tInfo
    $tNMHDR = DllStructCreate($tagNMHDR, $LParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Local $hWndListView = $ListView2
    If Not IsHWnd($ListView2) Then $hWndListView = GUICtrlGetHandle($ListView2)
    Switch $hwndFrom
        Case $hWndListView
            Switch $code
                Case $NM_CLICK, $NM_DBLCLK, $NM_RCLICK, $NM_RDBLCLK
                    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $LParam)
                    ;preventing checkboxes from re-apearing (same conditions as above)
                    Switch DllStructGetData($tInfo, "Index")
                        Case 0
                            Return True;intercept normal return message which would cause checkbox to re-apear
                    EndSwitch
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

1 item disable yaptık Case 0

2 item disable Case 1

1 ile 2 disable yapmak istersen Case 0 to 1

şeklinde olacak şimdi oldu galiba

 

 

eğer kodlarda sorun olursa ilgili dosya

http://urlji.com/rgr96s
Edited by mesale0077
Link to comment
Share on other sites

[member=mesale0077] eline sağlık :) Bu sefer de renk tutmadı galiba :) Daha orjinal bir çözüm arayayım ben, bulamazsam bunu kullanırım yapacak birşey yok. Çok teşekkürler.

Link to comment
Share on other sites

# @mesale0077 tarafından yapıldı.


#include <GuiListView.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>
$gui3 = 0
$Form1_1 = GUICreate("GBC", 1016, 575+20, -1, -1)
$hStatus = _GUICtrlStatusBar_Create($Form1_1 )
_GUICtrlStatusBar_SetText($hStatus, "Status")

$ListView2 = GUICtrlCreateListView(" | ", 16, 108, 986, 454, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_CHECKBOXES))
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 220)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 84)
$hListView2 = GUICtrlGetHandle($ListView2)
GUICtrlCreateListViewItem("|Test 1",$ListView2)

GUICtrlCreateListViewItem("|test 3",$ListView2)
GUICtrlSetBkColor(-1,0xE0DFE3)
GUICtrlCreateListViewItem("|test 4",$ListView2)
 GUICtrlCreateCheckbox ("", 22, 153, 20, 19) ;16
 GUICtrlSetBkColor(-1,0xE0DFE3)
    GUICtrlSetState ( -1, $GUI_UNCHECKED + $GUI_DISABLE)

GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg

Case $GUI_EVENT_CLOSE

    Exit
EndSwitch
WEnd


Func WM_NOTIFY($hWndGUI, $MsgID, $WParam, $LParam)
    #forceref $hWndGUI, $MsgID, $wParam
    Local $tNMHDR, $hwndFrom, $code, $tInfo
    $tNMHDR = DllStructCreate($tagNMHDR, $LParam)
    $hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $code = DllStructGetData($tNMHDR, "Code")
    Local $hWndListView = $ListView2
    If Not IsHWnd($ListView2) Then $hWndListView = GUICtrlGetHandle($ListView2)
    Switch $hwndFrom
        Case $hWndListView
            Switch $code
                Case $NM_CLICK, $NM_DBLCLK, $NM_RCLICK, $NM_RDBLCLK
                    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $LParam)
                    ;preventing checkboxes from re-apearing (same conditions as above)
                    Switch DllStructGetData($tInfo, "Index")
                        Case 1,3
						
                            Return True;intercept normal return message which would cause checkbox to re-apear
                    EndSwitch
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

birde bunu dene bakalım benden bu kadar yapacak fazla bir şey yok umarım mantığı anlamışsındır

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By DivaneTR
      Quick Installer AIO [29.09.2014]
       

       
      Her bilgisayarda olması gereken temel programlar tek noktada bu pakette. Kendi programlarını ekleyip çıkarabileceğiniz, kategoriler oluşturup daha kolay kılabileceğiniz bir platform uygulamasıdır. Her türden dosyaları araçlar klasörüne kopyalayıp, program içinden çalıştırabilirsiniz. Programlar klasörü içine oluşturacağınız klasörler kategori şeklinde programda tanımlanacaktır. İçerisinde bulunan exe formatındaki katılımsız programlar da kategoriler altında listelenecektir. Ayarlar menüsünden dilerseniz kategori görünümünü devredışı bırakabilirsiniz. Hızlı erişim menüsünden gerekli windows araçlarına ulaşabilmeniz mümkün.
       

       
       

       
      İçerdiği Program Listesi :
       
      Sağlıklı bir kurulum için uygulamayı yönetici olarak çalıştırın ve kullanıcı hesabı denetimi (UAC) kapatın.
       

      https://mega.co.nz/#!GlQziC6S!XJUtzV1E5Rr7ypew8K7jeUwQ7gWizCjociUS-KFccP4 Sadece platform uygulamasını indirmek için burayı tıklayınız.
    • By EASMurat
      Autoit Oto ip Player projesi Selam konunun üstadları, adından da anlaşılacağı üzere Autoit dilinde kodlanmış bir Player yapmak istiyorum fakat bu normal bir MP3 Player değil... Birçok formatı destekleyen bir Player olsun istiyorum, Özellikle Flac yayını Çalabilsin istiyorum. Asıl özellik ise belirli aralıklarla herhangi bir IP ve PORT üzerinden gelen yayını koptuğunda yada herhangi bir sebeple gittiğinde yeniden yayın geldiği zaman Otomatik yayınlamak. Buna birde Plugin eklenebilirse süperkulade olur ama asıl özellik belirli aralıklarla IP'den gelen yayını kontrol etsin Sürekli yayın akışı saglasın...

      Örneğin yayını gönderen IP'de ( 192.168.1.10:8080 ) elektrik kesintisi oldu yada herhangi bir sebeple yayın durdu. Bu Ip üzerinden gelen ses sinyali yeniden başlayınca yayını (sesi) otoatik almaya ve Çalmaya devam etsin...  Bu playeri bir nevi internet Playeri gibi düşünülebilir, yayın koptu ve yeniden yayın gelmeye başladı hicbirşeye dokunmadan yayını almaya devam etmeli... Bunun için hazır BASS.dll veya FLAC.dll dosyaları kullanılabilir burada bunları veren bir site var konunun uzmanları daha iyi bilirler ve araştırabilirler.... https://xiph.org/flac/ 

      Mesela işletim sistemi başladığında otomatik yayın (yani sesi çalmaya başlayacak ) şekilde bir seçenekde olmalı, tik koyduk bu secenek için... yada elle başlatmak için bu tiki kaldırıcaz şeklinde düşünülebilir. Şu aşağıdaki Player linklerini ve kendi denemelerimi Örnek olarak verebilirim incelemek isteyenlere yardımcı olursanız çok sevinirim, sanırım söylemek istediğimi anlatabilmişimdir. Sistem Yayın alacak şeklinde düşünülmeli herhangi bir dosyayı bir bellek üzerinden çalacak şekilde değil...  

      Bunlar yapmak istediğime yakın Projeler fakat otomatik yayın geldiğinde yeniden yayını alamaya devam etmesi birde MP3 dışındaki formatlarıda desteklemesi benim için en büyük özelliği, yani MP3,AAC,AAC+,OGG,FLAC, bunların hepsini destekler ve birde winamptaki gibi Pluginsde eklenebilirse aman değmeyin keyfime, Sistemin kurulacağı klasörün içine istediğimiz ses pluginlerini ekleyerek istediğimiz Pluginsi ayarlayaıp secebileceğimiz bir secenkde olmalı size baktığım birkaç kaynağı vereyim :
      * https://www.autoitscript.com/forum/topic/186202-basshls-example-for-play http-live-streaming-streams/
      * https://www.autoitscript.com/forum/topic/13203-streaming-online-radio/
      * https://www.autoitscript.com/forum/topic/83338-aamp-advanced-autoit-media-player/
      IP_YAYIN_ALICI_kodlari.au3
      YAYIN ALICI TEST.au3
    • By luger
      Merhaba arkadaşlar,
      Autoit'de kullandığımız SciTE editörünün bugün itibariyle resmi olarak Türkçe Dil dosyası yayınlandı. Ve şu anda resmi sunuculardan indirilebilir durumda.
      -- Eski SciTE editörü veya yeni SciTE editöründe kullanılabilir.
      -- Orjinal SciTe'te veya SciTe-Lite versiyonunda hatasız bir şekilde kullanılabilir.
      -- Autoit v3.3.14.2 ile gelen v3.5.4 ile de hatasız bir şekilde kullanılabilinir.
      ---------------------------------------------------------------------------------------------------
      1-->İlk olarak resmi sunucudaki kopyayla aynı olan bu dosyayı indirelim: İndir 
      2-->Sonra AutoIT içerisinde bulunan SciTE dizinine aynen şu adla "locale.properties" kaydedelim. Ve herşey hazır.
      Not: Dil dosyası Sürümü v3.7.1'dir. Ama en son SciTE  v3.7.4 tam olarak desteklenmektedir.
      ---------------------------------------------------------------------------------------------------
      Dil Dosyasının Kullanılabileciği Alan: https://www.tnctr.com/forum/97-autoit
      Dil Dosyasının Amacı: Herkes ana diliyle daha kolay kod yazabilsin diye.
      Türkçe Çeviri: By luger
    • By Bumerang01
      Biraz daha açıklayıcı olmalısın. Şu sorduğundan kimse bir şey anlamaz. Herhalde "Boolen" tipinde değişkenlerden bahsediyorsun. Eğer belirtilen koşul doğru ise belirttiğin komutların uygulanmasını, tam tersi durumunda yine belirttiğin komutları çalıştırmak istiyorsun.
      ; $_BoolenVariable adlı değişkene, bir koşula göre değer atayıp, sonra bu değişkeni denetleyip durumuna göre komut yürütebilirsin. $_BoolenVariable = True ; "1" da olabilir. If $_BoolenVariable = False Then ... ... Else ... ... EndIf
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...