Sign in to follow this  
Followers 0
ZwinnyRolnik

Can i use GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL") on listview?

16 posts in this topic

I know i can use $LVN_BEGINSCROLL and $LVN_ENDSCROLL but i need delete WM_Notify

so Can i use $WM_VSCROLL or $WM_HSCROLL on listview scrollbars?

Thx for any answers

Share this post


Link to post
Share on other sites



I know i can use $LVN_BEGINSCROLL and $LVN_ENDSCROLL but i need delete WM_Notify

What does "...but i need delete WM_NOTIFY" mean? Why can't you use the API provided (LVN_BEGINSCROLL and LVN_ENDSCROLL)?

:graduated:


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

cuz i need delete it when i am scrolling... scrolling in my listviews is rly slow and only when i block wm_notify then it's work fine

sorry for bad english =] and thx for reply

Share this post


Link to post
Share on other sites

I suspect you just have to change your messageloop, or OnEvent function to return very fast when scrolling. It would help if we had some code to work on.

Share this post


Link to post
Share on other sites

Done

while 1

if $drag = false then
xxx
xxx
xxx
...
...
endif
wend

now it's better but still laggy if i have 50 items and 45 subitems :graduated:

Share this post


Link to post
Share on other sites

This getting to be one of those calls to the Psychic Hotline topics...

No runnable demo script to show your issue = no help.

:graduated:


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites

Ooh I like those!

Unfortunately I can only do a remote debug if I take of my tinfoil hat, which would just be reckless.

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

Ok, I am sorry. So it's my script and include where is WM_NOTIFY and load file

Part of my script:

Opt("GUICloseOnESC", 0) ; bez esc
Opt("mustdeclarevars", 1)
Global $hListView
Global $wszystkostop = False
Global $ListView
Global $avgcol
Global $juju = False
; inne includy zmienne
Global $Column_attribute, $Mypos, $strin, $str, $iLAST_PRIMARYDoWN_CTRLID, $hwd, $width, $height, $hGraphic, $hBitmap1, $fontcol, $hImage1, $hBMP1, $textleft, $fcol, $hBrushed, $hFormat, $tLayout, $aInfo, $lpos, $hbmp
Global $hFamily, $hIcon, $hDC, $hBackDC, $hBackSv, $hIcon, $hbmp2, $hDC2, $hBackDC2, $hBackSv2, $bitmap2, $iC1, $hGraphics, $gwt, $ght, $iC2, $iC3, $hBrush1, $hBrush3, $hStatus, $leftit, $Downit
;~ Global $aSB_WindowInfo,$aSB_WindowInfo
; inne includy zmienne
Global $akukuku = False
Global $kupek = False
Global $patrzczyklikniety = False
Global $zmianka2, $ssssss, $sssss, $takatam2, $mojecombo2, $zmianka, $sss, $ssss, $takatam, $mojecombo, $mojepozycje
Global $ryczek = "dasd"
Global $wcisniety[5]
Global $wartoscnowa[300][300]
Global $wartosc[300][300]
Global $tawart = 12
Global $Checkbox1, $Checkbox2, $HelpContext, $bProgressShowing;,$Status1,$Status2
Global $hFont, $defColLV = 0x000000, $defBkColLV = 0xFFFFFF
Global $DB
Global $aRow
Global $sius = False
Global $dll22
Global $start
Global $B_DESCENDING
Global $maxColumn
Global $upDown, $bckpic3, $progressbar1, $label3, $mojecombo, $label4, $pozycje, $label3, $takatam, $zmianka, $pozycjestart, $gui2, $bckpic2, $label, $mojecombo2, $takatam2, $zmianka2, $pozycjestop
Global $odswiez2tabele
Global $cccc, $gid
For $i = 0 To 4
    $wcisniety[$i] = False
Next

Global $tenodp[5]
$tenodp[0] = True
For $i = 1 To 4
    $tenodp[$i] = False
Next
Global $tenodpp[5]
$tenodpp[0] = True
For $i = 1 To 4
    $tenodpp[$i] = False
Next

Global $listywartosc[300][300][5]

Global $przychodwartosc[5]
Global $wiecp[5]

Global $combozreszta
Global $handleewartosc[5][13]
Global $jakiklikniety[200][200]
For $i = 0 To 199
    For $j = 0 To 199
        $jakiklikniety[$i][$j] = False
    Next
Next


Global $bWM_NOTIFY = True
Global $nacisnietyjest = False

Global $tabela4start
Global $tabela4stop
Global $tabela5start
Global $tabela5stop

Global $hFont3, $listview3, $__LISTVIEWCTRL3
Global $bezpminuscf, $cfinput, $inputkosztybezp
Global $ryczalt, $ryczalt2
Global $kosztybezpbezcf = 0
Global $kosztybezp = 0
Global $jakiprocent
Global $kwotanaprojekt[15]
Global $handlee[15]
Global $fFlag[15]
Global $flaga = False
Global $flaga2 = False
Global $fFlag2[15]

For $s = 1 To 14
    $fFlag2[$s] = False
Next
For $s = 1 To 14
    $fFlag[$s] = False
Next

Global $labelmies, $miesiecy, $miechy
Global $kolumn, $itemow, $liczebka, $rzym, $listview2, $dat1, $dat2, $rok1, $rok2, $ktora, $PL, $PP, $newgui, $stGui, $czcionka4, $czcionka, $czcionka3, $pozycje, $GUI1, $progressbar1
Global $timer, $czcionka2, $tabs1, $Dod, $Dodaj, $Dodajkilka, $usun, $load, $Do, $tabela1start, $tabela1stop, $tabela2start, $tabela2stop, $tabela3start1, $tabela3stop1, $tabela3start2
Global $tabela3stop2, $partn
Global $tabela3start000, $tabela3stop000

Global $FileMenu, $OpenItem, $SaveItem, $OptionsMenu, $ViewItem, $ToolsItem, $ExitItem, $HelpMenu, $AboutItem, $hmenu, $2ndbckground, $labelokres, $labelmyslnik, $labeliloscp
Global $labelkosztyp, $labelpp, $iLV_Width, $iHeader_Width, $iData_Width, $labelprzychod, $przychod, $hFont2, $tekstowo, $hANDle, $date1, $date2, $roke1, $roke2
Global $datka1, $datka2, $tawart2, $upDown2, $Hotek, $zadanie, $tekstt, $tekst, $godzina, $date, $czas, $lokacja, $lokacja2, $tekstowo, $hmm4, $olDopt, $TrayPos, $ile, $ile2, $HotItem

Global $sumakosztow
Global $guiw = 0
Global $guih = 0
Global $guiszer = 800 * 1.4
Global $guiwys = 420 * 1.4
Global $deskh = @DesktopHeight - _GetTaskBarHeight()
Global $aWinPos[4] = [$guiw / 2, $guih / 2, $guiszer, $guiwys]
Global $Gui
Global $tabs1[7]
Global $timer[46]

Global $stGui[2] = [0, 420]

Global $liczebka[300]
; koniec Globalnych
Global $rzym[101]
$wcisniety[3] = True
Global $ladtab

#include <GUIConstantsEx.au3>
#include <WinDowsConstants.au3>
#include <GuiListView.au3>
#include <Constants.au3>
#include <FontConstants.au3>
#include <StructureConstants.au3>
#include <WinAPI.au3>
#include <GuiToolTip.au3>
#include <_EIPListView.au3>
#include <UpDownConstants.au3>
#include <GuiImageList.au3>
#include <ButtonConstants.au3>
#include <ScrollBarConstants.au3>
#include <GUIScrollBars.au3>



#include <ProgressConstants.au3>
#include <String.au3>


#include <sqlite.au3>;Stop the Obfuscation process below this line
#include <sqlite.dll.au3>

#include <GuiMenu.au3>
#include <GuiEdit.au3>


#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <ListViewConstants.au3>

load() ; wczyt

Func _Main()

    $Gui = GUICreate("Edit", $aWinPos[2], $aWinPos[3], $aWinPos[1], $aWinPos[0]);, 424, 280, 200, 110)
    ;, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_maximizebox, $WS_POPUPWINDoW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS)
    $newgui = WinGetClientSize($Gui)

    $timer[2] = TimerDiff($start)

    $czcionka = 12 * $newgui[1] / $stGui[1]
    $czcionka2 = 13 * $newgui[1] / $stGui[1]
    $czcionka3 = 8 * $newgui[1] / $stGui[1]
    $czcionka4 = 16 * $newgui[1] / $stGui[1]





    Global $LVcolControl[40] = [1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] ;left click actions
    ;0 = ignORe, 1= use context callback
    Global $LVcolRControl[40] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ; right click actions

    $timer[9] = TimerDiff($start)
    $tabela2start = GUICtrlCreateDummy()

    $hFont = _WinAPI_CreateFont(14 * $newgui[1] / $stGui[1], 0, 0, 0, $FW_NORMAL, False, False, False, $DEFAULT_CHARSET, $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
    $ListView = GUICtrlCreateListView("", 25 * $newgui[1] / $stGui[1], 45 * $newgui[1] / $stGui[1], 750 * $newgui[1] / $stGui[1], 310 * $newgui[1] / $stGui[1])
    $hListView = GUICtrlGetHandle($ListView)
    _WinAPI_SetFont($hListView, $hFont, True)


    GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
;~      GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_INFOTIP, $LVS_EX_INFOTIP)
    GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_LABELTIP, $LVS_EX_LABELTIP)

;~      $LVS_EX_FLATSB
;~      $LVS_EX_LABELTIP

    $__LISTVIEWCTRL = $ListView

    $timer[12] = TimerDiff($start)
    ; wstawianie kolumn
    For $i = 0 To $kolumn + 1
        _GUICtrlListView_AddColumn($ListView, liczba($i), "", 2)
    Next

    ; kolory
    _GUICtrlListView_SetBkColor($ListView, $CLR_MONEYGREEN)
    _GUICtrlListView_SetTextColor($ListView, $CLR_BLACK)
    _GUICtrlListView_SetTextBkColor($ListView, $CLR_MONEYGREEN)

    $timer[13] = TimerDiff($start)

    ; opcje

    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($ListView)]
    Global $maxColumn = _GUICtrlListView_GetColumnCount($ListView)
    Global $aIParam[1][$maxColumn + 1][5]
    Global $oParamSearch = ObjCreate('Scripting.Dictionary') ; stORe FOR faster search (iParam, arrayIndex)



    Global $kolorki[300][300]
    Local $kolor = ''

    For $i = 1 To $itemow
        $kolor = ''
        For $Z = 0 To $kolumn
            $kolor &= $wartosc[$Z][$i] & '|'
        Next
        $kolor = StringTrimRight($kolor, 1)

        $kolorki[$i][0] = GUICtrlCreateListViewItem($kolor, $ListView)
        For $k = 1 To $liczebka[0] + 3 Step 2
            If $i = $liczebka[$k] Then
                GUICtrlSetBkColor(-1, 0xCCFFCC)
            EndIf
        Next
    Next
    $timer[16] = TimerDiff($start)


    ; ustawienie 1 kolumny tj 0


    $timer[17] = TimerDiff($start)
    Local $b = 2
    For $f = 1 To 101 Step 2
        For $Z = $liczebka[$f] To $liczebka[$f + 1]
            _GUICtrlListView_SetItemText($ListView, $Z, $Z - $b)
        Next
        $b = $b + 1
        If $f = $liczebka[0] Then
            For $zz = $liczebka[$f + 1] To $liczebka[$f + 2]
                _GUICtrlListView_SetItemText($ListView, $zz, $zz - $b + 1)
            Next
            ExitLoop
        EndIf
    Next
    $timer[18] = TimerDiff($start)
    For $i = 1 To 99 Step 2
        _GUICtrlListView_SetItemText($ListView, $liczebka[$i] - 1, $rzym[$i])
    Next
    _GUICtrlListView_SetItemText($ListView, 0, "-")
    _GUICtrlListView_SetItemText($ListView, 1, "-")


    Local $dararara = $liczebka[$liczebka[0] + 1]

    For $i = $itemow + 50 To $dararara Step -1
        _GUICtrlListView_DeleteItem(GUICtrlGetHandle($ListView), $i)
    Next
    $timer[20] = TimerDiff($start)

    For $i = 1 To 1
        _GUICtrlListView_SetColumn($ListView, $i, liczba($i), 200, 2)
    Next
    $timer[21] = TimerDiff($start)
    $iLV_Width = 17
    For $i = 0 To $kolumn + 5
        If $i = 1 Then
            ContinueLoop
        EndIf
        _GUICtrlListView_SetColumnWidth($ListView, $i, $LVSCW_AUTOSIZE_USEHEADER)
        $iHeader_Width = _GUICtrlListView_GetColumnWidth($ListView, $i)

        _GUICtrlListView_SetColumnWidth($ListView, $i, $LVSCW_AUTOSIZE)
        $iData_Width = _GUICtrlListView_GetColumnWidth($ListView, $i)

        If $iHeader_Width > $iData_Width Then
            _GUICtrlListView_SetColumnWidth($ListView, $i, $iHeader_Width)
            $iLV_Width += $iHeader_Width
        Else
            $iLV_Width += $iData_Width
        EndIf
    Next

    przedzial()


    _InitEditLib("", "", "", "", $Gui);
    GUISetState(@SW_SHOW, $Gui)
    _WinAPI_InvalidateRect(0, 0)


    $bLVEDITondblclick = True
    $bInitiated = True
    $bLVUPDATEonfocusCHANGE = True



    While 1 ;
        Switch GUIGetMsg()



            Case $GUI_EVENT_CLOSE
                ExitLoop

        EndSwitch
    WEnd
    _TermEditLib();po tym <<<<<<<<<>>>>>>>>
EndFunc   ;==>_Main






Func load()

    $lokacja2 = FileOpenDialog("Wczytaj plik...", @ScriptDir, "Bazy danych (*.db)", 1 + 2 + 8, "", $Gui)

    If $lokacja2 <> "" Then
;~      $hmm4 = MsgBox(33, "Otworzyć plik...?", $lokacja2, "", $Gui)

;~      If $hmm4 = 1 Then

        $start = TimerInit()
        $timer[0] = TimerDiff($start)




        $kolumn = 10
        $itemow = 54

        _SQLite_Startup()
        $DB = _SQLite_Open($lokacja2)
        _SQLite_Exec($DB, "PRAGMA synchronous = OFF;")
        _SQLite_Exec($DB, "PRAGMA count_changes = OFF;")
        _SQLite_Exec($DB, "BEGIN;")

        _SQLite_QuerySingleRow(-1, "SELECT key FROM sectionn2 WHERE id = -1;", $aRow)
        If Not @error Then $kolumn = $aRow[0]

        _SQLite_QuerySingleRow(-1, "SELECT key FROM sectionn2 WHERE id = -2;", $aRow)
        If Not @error Then $itemow = $aRow[0]

        For $Z = 0 To $kolumn

            For $d = 1 To $itemow
                _SQLite_QuerySingleRow(-1, "SELECT key FROM section" & $Z + 1 & " WHERE id = " & $d - 1 & ";", $aRow)
                If Not @error Then $wartosc[$Z][$d] = $aRow[0]
            Next
        Next
        For $i = 0 To 101
            _SQLite_QuerySingleRow(-1, "SELECT key FROM sectionn2 WHERE id = " & $i & ";", $aRow)
            If $aRow[0] = "" Then ExitLoop
            If Not @error Then $liczebka[$i] = $aRow[0]
        Next
        _SQLite_Exec($DB, "COMMIT;")
        _SQLite_Close()
        _SQLite_Shutdown()


        Local $mml = 1
        For $i = 1 To 100 Step 2
            $rzym[$i] = _Roman($mml)
            $mml = $mml + 1
        Next
        GUIDelete($Gui)
        _Main()
;~      EndIf
    EndIf
EndFunc   ;==>load


Func _GetTaskBarHeight()
    $olDopt = Opt("WinTitleMatchMode", 4)
    $TrayPos = WinGetPos("classname=Shell_TrayWnd")
    Opt("WinTitleMatchMode", $olDopt)
    Return $TrayPos[3]
EndFunc   ;==>_GetTaskBarHeight



Func liczba($licz)
    Local $wyszla = ""
    If $licz = 0 Then Return $wyszla
    If $licz <= 26 Then
        $wyszla = Chr($licz + 64)
        Return $wyszla
    EndIf
    If $licz <= 26 * 2 Then
        $wyszla = Chr(65) & Chr($licz + 64 - 26)
        Return $wyszla
    EndIf
    If $licz <= 26 * 3 Then
        $wyszla = Chr(66) & Chr($licz + 64 - 26 * 2)
        Return $wyszla
    EndIf
    If $licz <= 26 * 4 Then
        $wyszla = Chr(67) & Chr($licz + 64 - 26 * 3)
        Return $wyszla
    EndIf
    If $licz <= 26 * 5 Then
        $wyszla = Chr(68) & Chr($licz + 64 - 26 * 4)
        Return $wyszla
    EndIf
    If $licz <= 26 * 6 Then
        $wyszla = Chr(69) & Chr($licz + 64 - 26 * 5)
        Return $wyszla
    EndIf
    If $licz <= 26 * 7 Then
        $wyszla = Chr(70) & Chr($licz + 64 - 26 * 6)
        Return $wyszla
    EndIf
    If $licz <= 26 * 8 Then
        $wyszla = Chr(71) & Chr($licz + 64 - 26 * 7)
        Return $wyszla
    EndIf
    If $licz <= 26 * 9 Then
        $wyszla = Chr(72) & Chr($licz + 64 - 26 * 8)
        Return $wyszla
    EndIf
    If $licz <= 26 * 10 Then
        $wyszla = Chr(73) & Chr($licz + 64 - 26 * 9)
        Return $wyszla
    EndIf
    If $licz <= 26 * 11 Then
        $wyszla = Chr(74) & Chr($licz + 64 - 26 * 10)
        Return $wyszla
    EndIf
    If $licz <= 26 * 12 Then
        $wyszla = Chr(75) & Chr($licz + 64 - 26 * 11)
        Return $wyszla
    EndIf
    If $licz <= 26 * 13 Then
        $wyszla = Chr(76) & Chr($licz + 64 - 26 * 12)
        Return $wyszla
    EndIf
    If $licz <= 26 * 14 Then
        $wyszla = Chr(77) & Chr($licz + 64 - 26 * 13)
        Return $wyszla
    EndIf
    If $licz <= 26 * 15 Then
        $wyszla = Chr(78) & Chr($licz + 64 - 26 * 14)
        Return $wyszla
    EndIf
    If $licz <= 26 * 16 Then
        $wyszla = Chr(79) & Chr($licz + 64 - 26 * 15)
        Return $wyszla
    EndIf
    If $licz <= 26 * 17 Then
        $wyszla = Chr(80) & Chr($licz + 64 - 26 * 16)
        Return $wyszla
    EndIf
    If $licz <= 26 * 18 Then
        $wyszla = Chr(81) & Chr($licz + 64 - 26 * 17)
        Return $wyszla
    EndIf
    If $licz <= 26 * 19 Then
        $wyszla = Chr(82) & Chr($licz + 64 - 26 * 18)
        Return $wyszla
    EndIf
    If $licz <= 26 * 20 Then
        $wyszla = Chr(83) & Chr($licz + 64 - 26 * 19)
        Return $wyszla
    EndIf
    If $licz <= 26 * 21 Then
        $wyszla = Chr(84) & Chr($licz + 64 - 26 * 20)
        Return $wyszla
    EndIf
EndFunc   ;==>liczba

Func _Roman($iNum)
    Local $asNum[3][10] = [["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"], _
            ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"], _
            ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]]
    Local $sRet = "", $i = 0, $iLen = StringLen($iNum), $sBra = ""
    If $iLen > 3 Then
        $sBra = "(" & _Roman(StringTrimRight($iNum, 3)) & ")"
        $iNum = StringRight($iNum, 3)
        $iLen = 3
    EndIf
    For $i = $iLen To 1 Step -1
        $sRet = $asNum[$iLen - $i][Int(StringMid($iNum, $i, 1))] & $sRet
    Next
    $sRet = "--" & $sRet & "--"

    Return $sBra & $sRet
EndFunc   ;==>_Roman





Func przedzial()
    Local $m, $mn, $datka1, $datka2
    $ktora = 9
    $date1 = 'luty'
    $date2 = 'wrzesień'
    $roke1 = 2006
    $roke2 = 2009
    If $date1 = "styczeń" Then $datka1 = 1
    If $date1 = "luty" Then $datka1 = 2
    If $date1 = "marzec" Then $datka1 = 3
    If $date1 = "kwiecień" Then $datka1 = 4
    If $date1 = "maj" Then $datka1 = 5
    If $date1 = "czerwiec" Then $datka1 = 6
    If $date1 = "lipiec" Then $datka1 = 7
    If $date1 = "sierpień" Then $datka1 = 8
    If $date1 = "wrzesień" Then $datka1 = 9
    If $date1 = "październik" Then $datka1 = 10
    If $date1 = "listopad" Then $datka1 = 11
    If $date1 = "grudzień" Then $datka1 = 12
    If $date2 = "styczeń" Then $datka2 = 1
    If $date2 = "luty" Then $datka2 = 2
    If $date2 = "marzec" Then $datka2 = 3
    If $date2 = "kwiecień" Then $datka2 = 4
    If $date2 = "maj" Then $datka2 = 5
    If $date2 = "czerwiec" Then $datka2 = 6
    If $date2 = "lipiec" Then $datka2 = 7
    If $date2 = "sierpień" Then $datka2 = 8
    If $date2 = "wrzesień" Then $datka2 = 9
    If $date2 = "październik" Then $datka2 = 10
    If $date2 = "listopad" Then $datka2 = 11
    If $date2 = "grudzień" Then $datka2 = 12
    Local $ilekolumn = 0
    Local $datka = $datka2 - $datka1 + 1
    ; zaczynamy cos nowego   znznznz; as
    ;dsadasd;asdas
    ;dsa
    $miechy = 0
    For $i = $roke1 To $roke2

        If $roke1 = $roke2 Then

            $miechy += $datka
            $ilekolumn = $ilekolumn + $datka
            $ilekolumn = $ilekolumn + 2
            $ilekolumn = $ilekolumn + $ktora

            ExitLoop
        EndIf

        If $i = $roke1 Then

            $miechy = $miechy + (12 - $datka1) + 1
            $ilekolumn = $ilekolumn + $ktora
            $ilekolumn = $ilekolumn + (12 - $datka1) + 1
            $ilekolumn = $ilekolumn + 1

            ContinueLoop
        EndIf

        If $i = $roke2 Then

            $miechy += $datka2
            $ilekolumn = $ilekolumn + $datka2
            $ilekolumn = $ilekolumn + 2

            ExitLoop
        EndIf

        $miechy += 12
        $ilekolumn = $ilekolumn + 12
        $ilekolumn = $ilekolumn + 1

    Next
    GUICtrlSetData($miesiecy, $miechy)

    While $ilekolumn > _GUICtrlListView_GetColumnCount($ListView)

        _GUICtrlListView_AddColumn($ListView, "")

    WEnd

    For $i = $roke1 To $roke2

        If $roke1 = $roke2 Then


            _GUICtrlListView_SetItemText($ListView, 1, "(" & $i & ")", $ktora)
            _GUICtrlListView_SetItemText($ListView, 0, "wartość j.m", $ktora)
            $ktora = $ktora + 1
            For $j = $datka1 To $datka2
                If $j = 1 Then $m = "I"
                If $j = 2 Then $m = "II"
                If $j = 3 Then $m = "III"
                If $j = 4 Then $m = "IV"
                If $j = 5 Then $m = "V"
                If $j = 6 Then $m = "VI"
                If $j = 7 Then $m = "VII"
                If $j = 8 Then $m = "VIII"
                If $j = 9 Then $m = "IX"
                If $j = 10 Then $m = "X"
                If $j = 11 Then $m = "XI"
                If $j = 12 Then $m = "XII"



                If $j = 1 Then $mn = "styczeń"
                If $j = 2 Then $mn = "luty"
                If $j = 3 Then $mn = "marzec"
                If $j = 4 Then $mn = "kwiecień"
                If $j = 5 Then $mn = "maj"
                If $j = 6 Then $mn = "czerwiec"
                If $j = 7 Then $mn = "lipiec"
                If $j = 8 Then $mn = "sierpień"
                If $j = 9 Then $mn = "wrzesień"
                If $j = 10 Then $mn = "październik"
                If $j = 11 Then $mn = "listopad"
                If $j = 12 Then $mn = "grudzień"

                _GUICtrlListView_SetItemText($ListView, 1, $m & " - " & $i, $ktora)
                _GUICtrlListView_SetItemText($ListView, 0, "ilość j.m", $ktora)
                $ktora = $ktora + 1

            Next
            _GUICtrlListView_SetItemText($ListView, 0, "Razem", $ktora)
            $ktora = $ktora + 1
            ExitLoop
        EndIf



        If $i = $roke1 Then

            _GUICtrlListView_SetItemText($ListView, 1, "(" & $i & ")", $ktora)
            _GUICtrlListView_SetItemText($ListView, 0, "wartość j.m", $ktora)
            $ktora = $ktora + 1
            For $j = $datka1 To 12
                If $j = 1 Then $m = "I"
                If $j = 2 Then $m = "II"
                If $j = 3 Then $m = "III"
                If $j = 4 Then $m = "IV"
                If $j = 5 Then $m = "V"
                If $j = 6 Then $m = "VI"
                If $j = 7 Then $m = "VII"
                If $j = 8 Then $m = "VIII"
                If $j = 9 Then $m = "IX"
                If $j = 10 Then $m = "X"
                If $j = 11 Then $m = "XI"
                If $j = 12 Then $m = "XII"



                If $j = 1 Then $mn = "styczeń"
                If $j = 2 Then $mn = "luty"
                If $j = 3 Then $mn = "marzec"
                If $j = 4 Then $mn = "kwiecień"
                If $j = 5 Then $mn = "maj"
                If $j = 6 Then $mn = "czerwiec"
                If $j = 7 Then $mn = "lipiec"
                If $j = 8 Then $mn = "sierpień"
                If $j = 9 Then $mn = "wrzesień"
                If $j = 10 Then $mn = "październik"
                If $j = 11 Then $mn = "listopad"
                If $j = 12 Then $mn = "grudzień"

                _GUICtrlListView_SetItemText($ListView, 1, $m & " - " & $i, $ktora)
                _GUICtrlListView_SetItemText($ListView, 0, "ilość j.m", $ktora)
                $ktora = $ktora + 1
            Next

            ContinueLoop
        EndIf

        If $i = $roke2 Then

            _GUICtrlListView_SetItemText($ListView, 1, "(" & $i & ")", $ktora)
            _GUICtrlListView_SetItemText($ListView, 0, "wartość j.m", $ktora)
            $ktora = $ktora + 1
            For $j = 1 To $datka2
                If $j = 1 Then $m = "I"
                If $j = 2 Then $m = "II"
                If $j = 3 Then $m = "III"
                If $j = 4 Then $m = "IV"
                If $j = 5 Then $m = "V"
                If $j = 6 Then $m = "VI"
                If $j = 7 Then $m = "VII"
                If $j = 8 Then $m = "VIII"
                If $j = 9 Then $m = "IX"
                If $j = 10 Then $m = "X"
                If $j = 11 Then $m = "XI"
                If $j = 12 Then $m = "XII"

                If $j = 1 Then $mn = "styczeń"
                If $j = 2 Then $mn = "luty"
                If $j = 3 Then $mn = "marzec"
                If $j = 4 Then $mn = "kwiecień"
                If $j = 5 Then $mn = "maj"
                If $j = 6 Then $mn = "czerwiec"
                If $j = 7 Then $mn = "lipiec"
                If $j = 8 Then $mn = "sierpień"
                If $j = 9 Then $mn = "wrzesień"
                If $j = 10 Then $mn = "październik"
                If $j = 11 Then $mn = "listopad"
                If $j = 12 Then $mn = "grudzień"
                _GUICtrlListView_SetItemText($ListView, 1, $m & " - " & $i, $ktora)
                _GUICtrlListView_SetItemText($ListView, 0, "ilość j.m", $ktora)
                $ktora = $ktora + 1

            Next
            _GUICtrlListView_SetItemText($ListView, 0, "Razem", $ktora)
            $ktora = $ktora + 1
            ExitLoop
        EndIf


        _GUICtrlListView_SetItemText($ListView, 1, "(" & $i & ")", $ktora)
        _GUICtrlListView_SetItemText($ListView, 0, "wartość j.m", $ktora)
        $ktora = $ktora + 1
        For $j = 1 To 12
            If $j = 1 Then $m = "I"
            If $j = 2 Then $m = "II"
            If $j = 3 Then $m = "III"
            If $j = 4 Then $m = "IV"
            If $j = 5 Then $m = "V"
            If $j = 6 Then $m = "VI"
            If $j = 7 Then $m = "VII"
            If $j = 8 Then $m = "VIII"
            If $j = 9 Then $m = "IX"
            If $j = 10 Then $m = "X"
            If $j = 11 Then $m = "XI"
            If $j = 12 Then $m = "XII"


            If $j = 1 Then $mn = "styczeń"
            If $j = 2 Then $mn = "luty"
            If $j = 3 Then $mn = "marzec"
            If $j = 4 Then $mn = "kwiecień"
            If $j = 5 Then $mn = "maj"
            If $j = 6 Then $mn = "czerwiec"
            If $j = 7 Then $mn = "lipiec"
            If $j = 8 Then $mn = "sierpień"
            If $j = 9 Then $mn = "wrzesień"
            If $j = 10 Then $mn = "październik"
            If $j = 11 Then $mn = "listopad"
            If $j = 12 Then $mn = "grudzień"
            _GUICtrlListView_SetItemText($ListView, 1, $m & " - " & $i, $ktora)
            _GUICtrlListView_SetItemText($ListView, 0, "ilość j.m", $ktora)
            $ktora = $ktora + 1
        Next



    Next

    For $i = 0 To 99
        _GUICtrlListView_SetColumn($ListView, $i, liczba($i), 100, 2)
    Next

    $iLV_Width = 17
    For $i = 0 To 79
        If $i = 1 Then
            ContinueLoop
        EndIf
        _GUICtrlListView_SetColumnWidth($ListView, $i, $LVSCW_AUTOSIZE_USEHEADER)
        $iHeader_Width = _GUICtrlListView_GetColumnWidth($ListView, $i)

        _GUICtrlListView_SetColumnWidth($ListView, $i, $LVSCW_AUTOSIZE)
        $iData_Width = _GUICtrlListView_GetColumnWidth($ListView, $i)

        If $iHeader_Width > $iData_Width Then
            _GUICtrlListView_SetColumnWidth($ListView, $i, $iHeader_Width)
            $iLV_Width += $iHeader_Width
        Else
            $iLV_Width += $iData_Width
        EndIf
    Next






EndFunc   ;==>przedzial
Edited by ZwinnyRolnik

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

_EIPListView.au3

#include-once
#include <GuiConstantsEx.au3>
#include <GuiListview.au3>
#include <GuiComboBox.au3>

#include <windowsconstants.au3>
#include <editconstants.au3>
#include <datetimeconstants.au3>
#include <Misc.au3>
Global $pozycjai
Global $__LISTVIEWCTRL
Global $__LISTVIEWCTRL2
Global $bWM_NOTIFY = True
Global $kliknietonadate = False
Global $mama = False
Global $nacisnietyjest = False
Global $iLastItem = -1, $iLastsubitemNR = -1

Global $gogo, $czasnr1, $czasnr2
Global $iColll
Global $tNMLISTVIEW
Global $lvin3, $lvin2
Global $lvin4, $lvin5


Global $roki[1500]

For $i = 0 To 1499
    $roki[$i] = False
Next
Global $moznakliknac = False
Global $moznakliknac2 = False
;this is a modified version of my original script.  It creates a popup
;window for the control as a child window to workaround issues related to
;listviews on tabs.
;
; ------------------------------------------------------------------------------
;
; AutoIt Version:   3.0
; Language:         English
; Description: Multi-column editable Listview  (EditInPlace)
;                   Stephen Podhajecki <gehossafats at netmdc.com/> Gary Frost <gafrost at charter dot net/>
;                   pdm for control array concept
;                   see http://www.autoitscript.com/forum/index.php?showtopic=42694&st=0&gopid=322551&#entry322551
;==============================================================================
;   ######>>> set the type of control for each column <<<######
;   0 = Input/edit  1 = combobox 2 = date control
;   Global $LVcolControl[4]=[0,0,1,2]
;   _InitEditLib();######>>>  add this after you create your main gui<<<######
;   _MonitorEditState($Gui, $editCtrl, $editFlag, $__LISTVIEWCTRL, $LVINFO, $LVcolControl);######>>>  add this in your message loop<<<######
;   _TermEditLib();######>>>  add this after your message loop when exiting the script<<<######
; $__LISTVIEWCTRL = $__LISTVIEWCTRL1 ######>>> Set this to your ListView control <<<######
;==============================================================================
Global $DebugIt = 0

;Global Const $WM_NOTIFY = 0x004E
;Global Const $WM_KEYDOWN = 0x0100
;Global Const $WM_COMMAND = 0x0111
Global Const $WM_MOVING = 0x0216
;Global Const $WM_MOVE = 0x0003
;Global Const $WM_KILLFOCUS = 0x0008
;Global Const $WM_SETFOCUS = 0x0007
;Global Const $WM_ACTIVATE = 0x0006
Global Const $WM_CAPTURECHANGED = 0x0215

Global Const $HD_FIRST = -300
;Global Const $HDN_TRACK = ($HDN_FIRST - 8)
;Global Const $HDN_TRACKW = ($HDN_FIRST - 28)

Global Const $LBN_SELCHANGE = 1
Global Const $LBN_DBLCLK = 2
Global Const $LBN_SETFOCUS = 4
Global Const $LBN_KILLFOCUS = 5
;Global Const $EN_SETFOCUS =0x0100
;Global Const $EN_KILLFOCUS = 0x0200
;Global Const $EN_CHANGE =0x0300
;Global Const $EN_UPDATE =0x0400

Global Const $DT_FIRST = -760
;Global Const $DTN_DATETIMECHANGE = $DTN_FIRST + 1 ; the systemtime has changed
;~ Global Const $DTN_USERSTRINGA = $DTN_FIRST + 2    ; the user has entered a string
Global Const $DTN_WMKEYDOWNA = $DTN_FIRST + 3 ; modify keydown on app format field (X)
;~ Global Const $DTN_FORMATA = $DTN_FIRST + 4        ; query display for app format field (X)
;~ Global Const $DTN_FORMATQUERYA = $DTN_FIRST + 5   ; query formatting info for app format field (X)
;Global Const $DTN_DROPDOWN = $DTN_FIRST + 6       ; MonthCal has dropped down
;Global Const $DTN_CLOSEUP = $DTN_FIRST + 7        ; MonthCal is popping up
;Global Const $CBN_SELCHANGE         = 1;
;Global Const $CBN_DBLCLK            = 2;
;Global Const $CBN_SETFOCUS            = 3;
;Global Const $CBN_KILLFOCUS         = 4;
;Global Const $CBN_EDITCHANGE         = 5;
;Global Const $CBN_EDITUPDATE         = 6;
;Global Const $CBN_DROPDOWN            = 7;
;Global Const $CBN_CLOSEUP            = 8;
;Global Const $CBN_SELENDOK            = 9;
;Global Const $CBN_SELENDCANCEL         = 10;


;Global Const $NM_FIRST = 0
;Global Const $NM_CLICK   = ($NM_FIRST - 2)
;Global Const $NM_DBLCLK  = ($NM_FIRST - 3)
;Global Const $NM_RCLICK  = ($NM_FIRST - 5)
;Global Const $NM_RDBLCLK = ($NM_FIRST - 6)
;Global Const $NM_SETFOCUS = ($NM_FIRST - 7)
;Global Const $NM_KILLFOCUS = ($NM_FIRST - 8)

;Global Const $LVS_SHAREIMAGELISTS = 0x0040

;~ Global Const $LVM_FIRST = 0x1000
;~ Global Const $LVM_SETIMAGELIST = ($LVM_FIRST + 3)
;~ Global Const $LVM_GETITEM = ($LVM_FIRST + 5)
;~ Global Const $LVM_SETITEM = ($LVM_FIRST + 6)
;~ Global Const $LVM_GETNEXTITEM = ($LVM_FIRST + 12)
;~ Global Const $LVM_ENSUREVISIBLE = ($LVM_FIRST + 19)
;~ Global Const $LVM_SETITEMSTATE = ($LVM_FIRST + 43)
;Global Const $LVN_FIRST = -100

;Global Const $LVN_ENDLABELEDITA = (-106)
;Global Const $LVN_ITEMCHANGING = ($LVN_FIRST - 0)
;Global Const $LVN_ITEMCHANGED = ($LVN_FIRST - 1)
;Global Const $LVN_INSERTITEM = ($LVN_FIRST - 2)
;Global Const $LVN_DELETEITEM = ($LVN_FIRST - 3)
;Global Const $LVN_DELETEALLITEMS = ($LVN_FIRST - 4)

;Global Const $LVN_COLUMNCLICK = ($LVN_FIRST - 8)
;Global Const $LVN_BEGINDRAG = ($LVN_FIRST - 9)
;Global Const $LVN_BEGINRDRAG = ($LVN_FIRST - 11)

;Global Const $LVN_ODCACHEHINT = ($LVN_FIRST - 13)
;Global Const $LVN_ITEMACTIVATE = ($LVN_FIRST - 14)
;Global Const $LVN_ODSTATECHANGED = ($LVN_FIRST - 15)

;Global Const $LVN_HOTTRACK = ($LVN_FIRST - 21)

;Global Const $LVN_KEYDOWN = ($LVN_FIRST - 55)
;Global Const $LVN_MARQUEEBEGIN = ($LVN_FIRST - 56)

Global Const $GUILOSTFOCUS = -1
Global $LVCALLBACK = "_CancelEdit" ; default to cancel edit
Global $LVCONTEXT = "_CancelEdit" ; defalut to cancel edit
Global $bCALLBACK = False ;a call-back has been executed.
Global $bCALLBACK_EVENT = False
Global $bLVUPDATEonfocusCHANGE = 1 ;save editing if another cell is clicked
Global $bLVDBLCLICK = False;
Global $bLVITEMCHECKED = False;
Global $bLVEDITondblclick = False ;Must dblclick to edit
Global $bDATECHANGED = False;
Global $bPROGRESSSHOWING = False;
Global $bInitiated = False
Global $LVCHECKEDCNT = 0;
Global $old_col
Global $__LISTVIEWCTRL = -999
Global $__LISTVIEWCTRL2 = -999
Global $__LISTVIEWCTRL3 = -999
Global $Gui, $editFlag
Global $bCanceled = False
Global $editHwnd ;= the Hwnd of the editing control.
Global $editCtrl ;= the CtrlId of the editing control.
;;array dim to number of cols, value of each element determines control.
Global $LVcolControl[1] = [0] ;0= ignore, 1= edit, 2= combo, 4= calendar, 8 = list, 256 use callback.
Global $LVcolRControl[1] = [0] ;0= ignore, 256 = context callback.
Global $lvControlGui, $lvEdit, $lvCombo, $lvDate, $lvList
Global $LVINFO[11];

;===============================================================================
; Function Name:    _InitEditLib
; Description:      Create the editing controls and registers WM_NOTIFY handler.
; Parameter(s):
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):      Call this BEFORE you create your listview.
;===============================================================================
Func _InitEditLib($lvEditStart = "", $lvComboStart = "", $lvDataStart = "", $lvListStart = "", $hParent = 0)
    If $mama = False Then
        _TermEditLib()

        $lvControlGui = GUICreate("", 0, 0, 1, 1, $WS_POPUP, -1, $hParent)
        $lvEdit = GUICtrlCreateInput($lvEditStart, 0, 0, 1, 1, BitOR($ES_AUTOHSCROLL, $ES_NOHIDESEL, $WS_BORDER), 0)
        GUICtrlSetState($lvEdit, $GUI_HIDE)
        GUICtrlSetFont($lvEdit, 8.5 * $newgui[1] / $stGui[1])
        $lvCombo = GUICtrlCreateCombo($lvComboStart, 0, 0, 1, 1, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL), $WS_EX_TOPMOST)
        GUICtrlSetState($lvCombo, $GUI_HIDE)
        $lvDate = GUICtrlCreateDate($lvDataStart, 0, 0, 1, 1, $DTS_SHORTDATEFORMAT, BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOPMOST))
        GUICtrlSetState($lvDate, $GUI_HIDE)
        $lvList = GUICtrlCreateList($lvListStart, 0, 0, 1, 1, -1, $WS_EX_TOPMOST)
        GUICtrlSetState($lvList, $GUI_HIDE)
        GUISetState(@SW_SHOW)
        GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
    EndIf
    GUIRegisterMsg($WM_COMMAND, "WM_Command_Events")
    GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
    GUIRegisterMsg($WM_MOVE, "WM_MOVE_EVENT")
    GUIRegisterMsg($WM_MOVING, "WM_Notify_Events")
    $mama = False
EndFunc   ;==>_InitEditLib

Func _InitEditLib2($lvEditStart = "", $lvComboStart = "", $lvDataStart = "", $lvListStart = "", $hParent = 0)
    If $mama = False Then
        _TermEditLib2()

        $lvControlGui = GUICreate("", 0, 0, 1, 1, $WS_POPUP, -1, $hParent)
        $lvEdit = GUICtrlCreateInput($lvEditStart, 0, 0, 1, 1, BitOR($ES_AUTOHSCROLL, $ES_NOHIDESEL, $WS_BORDER), 0)
        GUICtrlSetState($lvEdit, $GUI_HIDE)
        GUICtrlSetFont($lvEdit, 8.5 * $newgui[1] / $stGui[1])
        $lvCombo = GUICtrlCreateCombo($lvComboStart, 0, 0, 1, 1, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL), $WS_EX_TOPMOST)
        GUICtrlSetState($lvCombo, $GUI_HIDE)
        $lvDate = GUICtrlCreateDate($lvDataStart, 0, 0, 1, 1, $DTS_SHORTDATEFORMAT, BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOPMOST))
        GUICtrlSetState($lvDate, $GUI_HIDE)
        $lvList = GUICtrlCreateList($lvListStart, 0, 0, 1, 1, -1, $WS_EX_TOPMOST)
        GUICtrlSetState($lvList, $GUI_HIDE)
        GUISetState(@SW_SHOW)
        GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events")
    EndIf
    GUIRegisterMsg($WM_COMMAND, "WM_Command_Events")
    GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
    GUIRegisterMsg($WM_MOVE, "WM_MOVE_EVENT")
    GUIRegisterMsg($WM_MOVING, "WM_Notify_Events")
    $mama = False
EndFunc   ;==>_InitEditLib2
;===============================================================================
; Function Name:    _TermEditLib

; Description:      Deletes the editing controls and un-registers WM_NOTIFY handler.
; Parameter(s):
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):      Call this when close your gui if switching to another gui.
;===============================================================================
Func _TermEditLib()
    GUICtrlDelete($lvEdit)
    GUICtrlDelete($lvCombo)
    GUICtrlDelete($lvDate)
    GUICtrlDelete($lvList)

    GUIRegisterMsg($WM_ACTIVATE, "")
    GUIRegisterMsg($WM_MOVE, "")
    GUIRegisterMsg($WM_MOVING, "")
    GUIRegisterMsg($WM_NOTIFY, "")
    GUIRegisterMsg($WM_COMMAND, "")
EndFunc   ;==>_TermEditLib
Func _TermEditLib2()
    GUIDelete($lvControlGui)
    GUICtrlDelete($lvEdit)
    GUICtrlDelete($lvCombo)
    GUICtrlDelete($lvDate)
    GUICtrlDelete($lvList)

    GUIRegisterMsg($WM_COMMAND, "")
    GUIRegisterMsg($WM_MOVING, "")
    GUIRegisterMsg($WM_ACTIVATE, "")
    GUIRegisterMsg($WM_MOVE, "")
    $mama = True

EndFunc   ;==>_TermEditLib2


Func _TermEditLib22()
    GUICtrlDelete($lvEdit)
    GUICtrlDelete($lvCombo)
    GUICtrlDelete($lvDate)
    GUICtrlDelete($lvList)

    GUIRegisterMsg($WM_ACTIVATE, "")
    GUIRegisterMsg($WM_MOVE, "")
    GUIRegisterMsg($WM_MOVING, "")
    GUIRegisterMsg($WM_NOTIFY, "")
    GUIRegisterMsg($WM_COMMAND, "")
EndFunc   ;==>_TermEditLib22
Func _TermEditLib222()
    GUIDelete($lvControlGui)
    GUICtrlDelete($lvEdit)
    GUICtrlDelete($lvCombo)
    GUICtrlDelete($lvDate)
    GUICtrlDelete($lvList)

    GUIRegisterMsg($WM_COMMAND, "")
    GUIRegisterMsg($WM_MOVING, "")
    GUIRegisterMsg($WM_ACTIVATE, "")
    GUIRegisterMsg($WM_MOVE, "")
    $mama = True

EndFunc   ;==>_TermEditLib222
;===============================================================================
; Function Name:    ListView_Click
; Description:  Called from WN_NOTIFY event handler.
; Parameter(s):
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):        Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s):
;===============================================================================
Func _ListView_Click()

    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------
    If $editFlag = 1 Then
        If $bLVUPDATEonfocusCHANGE = True Then
            If $editCtrl = $lvDate Then
                If $bDATECHANGED = False Then
                    _CancelEdit()
                    $kliknietonadate = False
                    Return
                EndIf
            EndIf

            _LVUpdate($editCtrl, $__LISTVIEWCTRL, $lvin2, $lvin3)

            $kliknietonadate = False

            For $i = $lvin3 To $lvin3
                If $i = 1 Then
                    ContinueLoop
                EndIf

                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE_USEHEADER)
                $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE)
                $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

                If $iHeader_Width > $iData_Width Then
                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $iHeader_Width)
                EndIf
            Next

        Else
            _CancelEdit()
            $kliknietonadate = False
        EndIf

    Else


        If $bLVEDITondblclick = False Then

            _InitEdit($LVINFO, $LVcolControl)
            $kliknietonadate = False
        EndIf
    EndIf
EndFunc   ;==>_ListView_Click

Func _ListView_Click2()

    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------
    If $editFlag = 1 Then
        If $bLVUPDATEonfocusCHANGE = True Then
            If $editCtrl = $lvDate Then
                If $bDATECHANGED = False Then
                    _CancelEdit2()
                    $kliknietonadate = False
                    Return
                EndIf
            EndIf

            _LVUpdate2($editCtrl, $__LISTVIEWCTRL2, $lvin4, $lvin5)

            $kliknietonadate = False

            For $i = $lvin5 To $lvin5
                If $i = 1 Then
                    ContinueLoop
                EndIf

                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $LVSCW_AUTOSIZE_USEHEADER)
                $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL2, $i)

                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $LVSCW_AUTOSIZE)
                $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL2, $i)

                If $iHeader_Width > $iData_Width Then
                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $iHeader_Width)
                EndIf
            Next

        Else
            _CancelEdit2()
            $kliknietonadate = False
        EndIf

    Else


        If $bLVEDITondblclick = False Then

            _InitEdit2($LVINFO, $LVcolControl)
            $kliknietonadate = False
        EndIf
    EndIf
EndFunc   ;==>_ListView_Click2
;===============================================================================
; Function Name:    ListView_RClick
; Description:  Called from WN_NOTIFY event handler.
; Parameter(s):
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):        Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s):
;===============================================================================
Func _ListView_RClick()
    If $editFlag = 1 Then
        _CancelEdit()
    Else
        If $LVINFO[0] < 0 Or $LVINFO[1] < 0 Then Return 0
        _CancelEdit()
    EndIf
    ToolTip("")
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------
EndFunc   ;==>_ListView_RClick
Func _ListView_RClick2()
    If $editFlag = 1 Then
        _CancelEdit2()
    Else
        If $LVINFO[0] < 0 Or $LVINFO[1] < 0 Then Return 0
        _CancelEdit2()
    EndIf
    ToolTip("")
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------
EndFunc   ;==>_ListView_RClick2
;===============================================================================
; Function Name:    ListView_DoubleClick
; Description:  Called from WN_NOTIFY event handler.
; Parameter(s):
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):          Initiates the edit process on a DblClick
;===============================================================================
Func _ListView_DoubleClick()
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------

    If $LVINFO[8] = 0 Or $LVINFO[8] = 1 Or $LVINFO[9] = 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $LVINFO[9]) = "Razem" or (StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], 0), "--") <> 0 And $LVINFO[9] > 1) Then Return

    $lvControlGui = GUICreate("", 0, 0, 1, 1, $WS_POPUP, -1, $Gui)
    $lvEdit = GUICtrlCreateInput("", 0, 0, 1, 1, BitOR($ES_AUTOHSCROLL, $ES_NOHIDESEL, $WS_BORDER), 0)
    GUICtrlSetState($lvEdit, $GUI_HIDE)
    GUICtrlSetFont($lvEdit, 8.5 * $newgui[1] / $stGui[1])
    $lvCombo = GUICtrlCreateCombo("", 0, 0, 1, 1, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL), $WS_EX_TOPMOST)
    GUICtrlSetState($lvCombo, $GUI_HIDE)
    $lvDate = GUICtrlCreateDate("", 0, 0, 1, 1, $DTS_SHORTDATEFORMAT, BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOPMOST))
    GUICtrlSetState($lvDate, $GUI_HIDE)
    $lvList = GUICtrlCreateList("", 0, 0, 1, 1, -1, $WS_EX_TOPMOST)
    GUICtrlSetState($lvList, $GUI_HIDE)
    GUISetState(@SW_SHOW)

    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $LVINFO[9]) = "-L/P-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "L|P1|P2|P3|P4")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $LVINFO[9]) = "-PP-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "20%|25%|30%|35%|40%|45%|50%|100%")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $LVINFO[9]) = "-KP-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $LVINFO[9]) = "-PS-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $LVINFO[9]) = "-CF-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $LVINFO[9]) = "-UZ-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    $lvin2 = $LVINFO[8]
    $lvin3 = $LVINFO[9]
    If $editFlag = 0 Then
        _InitEdit($LVINFO, $LVcolControl)
    Else
        _CancelEdit()
    EndIf
EndFunc   ;==>_ListView_DoubleClick


Func _ListView_DoubleClick2()
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------

    If $LVINFO[8] = 0 Or $LVINFO[8] = 1 Or $LVINFO[9] = 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "Łącznie" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 0, $LVINFO[9]) = "Razem" Then Return

    $lvControlGui = GUICreate("", 0, 0, 1, 1, $WS_POPUP, -1, $Gui)
    $lvEdit = GUICtrlCreateInput("", 0, 0, 1, 1, BitOR($ES_AUTOHSCROLL, $ES_NOHIDESEL, $WS_BORDER), 0)
    GUICtrlSetState($lvEdit, $GUI_HIDE)
    GUICtrlSetFont($lvEdit, 8.5 * $newgui[1] / $stGui[1])
    $lvCombo = GUICtrlCreateCombo("", 0, 0, 1, 1, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL), $WS_EX_TOPMOST)
    GUICtrlSetState($lvCombo, $GUI_HIDE)
    $lvDate = GUICtrlCreateDate("", 0, 0, 1, 1, $DTS_SHORTDATEFORMAT, BitOR($WS_EX_CLIENTEDGE, $WS_EX_TOPMOST))
    GUICtrlSetState($lvDate, $GUI_HIDE)
    $lvList = GUICtrlCreateList("", 0, 0, 1, 1, -1, $WS_EX_TOPMOST)
    GUICtrlSetState($lvList, $GUI_HIDE)
    GUISetState(@SW_SHOW)

    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "-L/P-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "L|P1|P2|P3|P4")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "-PP-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "20%|25%|30%|35%|40%|45%|50%|100%")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "-KP-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "-PS-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "-CF-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $LVINFO[9]) = "-UZ-" Then
        GUICtrlSetData($lvCombo, "")
        GUICtrlSetData($lvCombo, "TAK|NIE")
    EndIf
    $lvin4 = $LVINFO[8]
    $lvin5 = $LVINFO[9]
    If $editFlag = 0 Then
        _InitEdit2($LVINFO, $LVcolControl)
    Else
        _CancelEdit2()
    EndIf
EndFunc   ;==>_ListView_DoubleClick2
; WM_NOTIFY event handler
;===============================================================================
; Function Name:    _MonitorEditState
; Description:      Handles {enter} {esc} and {f2}
; Parameter(s): $h_gui          - IN/OUT -
;                       $editCtrl       - IN/OUT -
;                       $editFlag       - IN/OUT -
;                       $__LISTVIEWCTRL - IN/OUT -
;                       $LVINFO         - IN/OUT -
;                       $LVcolControl   - IN -
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _MonitorEditState(ByRef $editCtrl, ByRef $editFlag, ByRef $__LISTVIEWCTRL, ByRef $LVINFO)
    Local $pressed = _vKeyCheck()
    If $editFlag And $pressed = 13 Then; pressed enter
        If $wcisniety[1] = True Then
            If $editCtrl = $lvCombo Then
                _LVUpdate($editCtrl, $__LISTVIEWCTRL, $lvin2, $lvin3)

                $iLV_Width = 17
                For $i = $lvin3 To $lvin3
                    If $i = 1 Then
                        ContinueLoop
                    EndIf
                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE_USEHEADER)
                    $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE)
                    $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

                    If $iHeader_Width > $iData_Width Then
                        _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $iHeader_Width)
                    EndIf
                Next
            Else
                _LVUpdate($editCtrl, $__LISTVIEWCTRL, $lvin2, $lvin3)

                $iLV_Width = 17
                For $i = $lvin3 To $lvin3
                    If $i = 1 Then
                        ContinueLoop
                    EndIf
                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE_USEHEADER)
                    $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE)
                    $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

                    If $iHeader_Width > $iData_Width Then
                        _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $iHeader_Width)
                    EndIf
                Next
            EndIf
            _WinAPI_InvalidateRect(0, 0)
        ElseIf $wcisniety[2] = True Then
            If $editCtrl = $lvCombo Then
                _LVUpdate2($editCtrl, $__LISTVIEWCTRL2, $lvin4, $lvin5)

                $iLV_Width = 17
                For $i = $lvin5 To $lvin5
                    If $i = 1 Then
                        ContinueLoop
                    EndIf
                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $LVSCW_AUTOSIZE_USEHEADER)
                    $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL2, $i)

                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $LVSCW_AUTOSIZE)
                    $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL2, $i)

                    If $iHeader_Width > $iData_Width Then
                        _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $iHeader_Width)
                    EndIf
                Next
            Else
                _LVUpdate2($editCtrl, $__LISTVIEWCTRL2, $lvin4, $lvin5)

                $iLV_Width = 17
                For $i = $lvin5 To $lvin5
                    If $i = 1 Then
                        ContinueLoop
                    EndIf
                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $LVSCW_AUTOSIZE_USEHEADER)
                    $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL2, $i)

                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $LVSCW_AUTOSIZE)
                    $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL2, $i)

                    If $iHeader_Width > $iData_Width Then
                        _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL2, $i, $iHeader_Width)
                    EndIf
                Next
            EndIf
            _WinAPI_InvalidateRect(0, 0)
        Else
        EndIf

    ElseIf $editFlag And $pressed = 27 Then; pressed esc
        _CancelEdit()
        _WinAPI_InvalidateRect(0, 0)
    ElseIf Not $editFlag And $pressed = 113 Then; pressed f2

    EndIf
EndFunc   ;==>_MonitorEditState


Func Enter()
    ; just a dummy function
EndFunc   ;==>Enter
;===============================================================================
; Function Name:    _LVUpdate
; Description:      Put the new data in the Listview
; Parameter(s): $editCtrl        - IN/OUT -
;                       $__LISTVIEWCTRL  - IN/OUT -
;                       $iRow                - IN -
;                       $iCol                - IN -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _LVUpdate(ByRef $editCtrl, ByRef $__LISTVIEWCTRL, $iRow, $iCol)

    If $bCanceled Then Return
    Local $auc = 0
    Local $newText = GUICtrlRead($editCtrl)
    If $editCtrl = $lvList Or $editCtrl = $lvCombo Then
        If $newText <> "" Then
            _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, $newText, $iCol)
            obliczenierazem()
            $jakiklikniety[$iCol][$iRow] = True

        EndIf
    Else
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, 4) = "-PP-" Then $auc += 1
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, 5) = "-L/P-" Then $auc += 1
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, 4) = "-L/P-" Then $auc += 1
        ; wazne
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $iCol) = "wartość j.m" Then ; jesli wart

            If StringRegExp($newText, '[^0-9\,\r\n\s]') = 0 Then ; jesli nowy ma dobre rzeczy to
                If $newText = "" Then
                    _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, "", $iCol)
                    obliczeniabezp($iRow, $iCol, $newText)
                    $jakiklikniety[$iCol][$iRow] = True

                Else
                    Local $textcik = StringReplace($newText, ",", ".")
                    Local $numreplacements = @extended
                    If $numreplacements > 1 Then
                    Else

                        If StringInStr($newText, ",") = 0 Then


                            $newText = StringReplace($newText, " ", "")
                            $newText = StringReplace($newText, ".", ",")
                            If StringInStr($newText, " ") = 0 Then
                                Local $dl22 = StringLen($newText)
                                Local $kohh = StringInStr($newText, ",")
                                Local $wiadomo2 = 0
                                If $kohh <> 0 Then
                                    $wiadomo2 = StringTrimLeft($newText, $kohh)
                                    $wiadomo2 = StringLen($wiadomo2) + 1
                                EndIf


                                For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                    If $i > 0 Then
                                        Local $left = StringLeft($newText, $i)
                                        $newText = StringTrimLeft($newText, $i)
                                        $newText = $left & " " & $newText
                                    EndIf
                                Next
                            EndIf

                            $newText = $newText & ",00zł"
                            If $newText = ',00' Then $newText = "0,00"
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, $newText, $iCol)
                            obliczeniabezp($iRow, $iCol, $newText)
                            $jakiklikniety[$iCol][$iRow] = True


                        Else

                            $newText = StringReplace($newText, ",", ".")
                            $newText = StringReplace($newText, " ", "")
                            $newText = Round(Number($newText), 2)


                            $newText = StringReplace($newText, ".", ",")
                            If StringInStr($newText, " ") = 0 Then
                                Local $dl22 = StringLen($newText)
                                Local $kohh = StringInStr($newText, ",")
                                Local $wiadomo2 = 0
                                If $kohh <> 0 Then
                                    $wiadomo2 = StringTrimLeft($newText, $kohh)
                                    $wiadomo2 = StringLen($wiadomo2) + 1
                                EndIf

                                For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                    If $i > 0 Then
                                        Local $left = StringLeft($newText, $i)
                                        $newText = StringTrimLeft($newText, $i)
                                        $newText = $left & " " & $newText
                                    EndIf
                                Next
                            EndIf

                            If StringInStr($newText, ",") = 0 Then
                                $newText = $newText & ",00"
                                If $newText = ',00' Then $newText = "0,00"
                            Else
                                Local $poz22 = StringInStr($newText, ",")
                                Local $dl22 = StringLen($newText)
                                If $dl22 - $poz22 = 1 Then $newText = $newText & "0"
                                If $dl22 - $poz22 = 0 Then $newText = $newText & "00"
                            EndIf

                            $newText = $newText & "zł"
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, $newText, $iCol)
                            obliczeniabezp($iRow, $iCol, $newText)
                            $jakiklikniety[$iCol][$iRow] = True

                        EndIf
                    EndIf
                EndIf
            Else

            EndIf ; TUTAJ JEST OBLICZAINE
        ElseIf _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $iCol) = "ilość j.m" Then
            If $newText = "" Then
                _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, "", $iCol)
                obliczeniabezp($iRow, $iCol, $newText, 1)
                $jakiklikniety[$iCol][$iRow] = True

            Else

                If StringRegExp($newText, '[^0-9\r\n\s]') = 0 Then
                    If $newText = "" Then

                    Else




                        $newText = StringReplace($newText, " ", "")


                        If StringInStr($newText, " ") = 0 Then
                            Local $dl22 = StringLen($newText)
                            Local $kohh = StringInStr($newText, ",")
                            Local $wiadomo2 = 0
                            If $kohh <> 0 Then
                                $wiadomo2 = StringTrimLeft($newText, $kohh)
                                $wiadomo2 = StringLen($wiadomo2) + 1
                            EndIf

                            For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                If $i > 0 Then
                                    Local $left = StringLeft($newText, $i)
                                    $newText = StringTrimLeft($newText, $i)
                                    $newText = $left & " " & $newText
                                EndIf
                            Next
                        EndIf


                        _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, $newText, $iCol)
                        obliczeniabezp($iRow, $iCol, $newText, 1)

                        $jakiklikniety[$iCol][$iRow] = True

                    EndIf
                Else

                EndIf
            EndIf
        ElseIf _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $iCol) = "j.m" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $iCol) = "Bezpośrednie" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $iCol) = "Bezposrednie" Then

            _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, $newText, $iCol)
            If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $iCol) = "j.m" Then _GUICtrlListView_SetItemText($__LISTVIEWCTRL3, $iRow, $newText, 2)

            If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $iCol) = "Bezpośrednie" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, $iCol) = "Bezposrednie" Then _GUICtrlListView_SetItemText($__LISTVIEWCTRL3, $iRow, $newText, $iCol)
;~      Elseif _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $LVINFO[7]) = "Razem" Then
;~
;~
        Else

        EndIf
    EndIf
    $LVINFO[6] = $iRow
    $LVINFO[7] = $iCol
    _CancelEdit()
EndFunc   ;==>_LVUpdate

Func _LVUpdate2(ByRef $editCtrl, ByRef $__LISTVIEWCTRL2, $iRow, $iCol)


    If $bCanceled Then Return
    Local $auc = 0
    Local $newText = GUICtrlRead($editCtrl)
    If $editCtrl = $lvList Or $editCtrl = $lvCombo Then
        If $newText <> "" Then
            _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, $newText, $iCol)
;~          obliczenierazem()
        EndIf
    Else
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, 4) = "-PP-" Then $auc += 1
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, 5) = "-L/P-" Then $auc += 1
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, 4) = "-L/P-" Then $auc += 1
        ; wazne
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $iCol) = "Koszt j." Then ; jesli wart

            If StringRegExp($newText, '[^0-9\,\r\n\s]') = 0 Then ; jesli nowy ma dobre rzeczy to
                If $newText = "" Then
                    _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, "", $iCol)
                    obliczeniabezp2($iRow, $iCol, $newText)

                Else
                    Local $textcik = StringReplace($newText, ",", ".")
                    Local $numreplacements = @extended
                    If $numreplacements > 1 Then
                    Else

                        If StringInStr($newText, ",") = 0 Then


                            $newText = StringReplace($newText, " ", "")
                            $newText = StringReplace($newText, ".", ",")
                            If StringInStr($newText, " ") = 0 Then
                                Local $dl22 = StringLen($newText)
                                Local $kohh = StringInStr($newText, ",")
                                Local $wiadomo2 = 0
                                If $kohh <> 0 Then
                                    $wiadomo2 = StringTrimLeft($newText, $kohh)
                                    $wiadomo2 = StringLen($wiadomo2) + 1
                                EndIf


                                For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                    If $i > 0 Then
                                        Local $left = StringLeft($newText, $i)
                                        $newText = StringTrimLeft($newText, $i)
                                        $newText = $left & " " & $newText
                                    EndIf
                                Next
                            EndIf

                            $newText = $newText & ",00zł"
                            If $newText = ',00' Then $newText = "0,00"
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, $newText, $iCol)
                            obliczeniabezp2($iRow, $iCol, $newText)


                        Else

                            $newText = StringReplace($newText, ",", ".")
                            $newText = StringReplace($newText, " ", "")
                            $newText = Round(Number($newText), 2)


                            $newText = StringReplace($newText, ".", ",")
                            If StringInStr($newText, " ") = 0 Then
                                Local $dl22 = StringLen($newText)
                                Local $kohh = StringInStr($newText, ",")
                                Local $wiadomo2 = 0
                                If $kohh <> 0 Then
                                    $wiadomo2 = StringTrimLeft($newText, $kohh)
                                    $wiadomo2 = StringLen($wiadomo2) + 1
                                EndIf

                                For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                    If $i > 0 Then
                                        Local $left = StringLeft($newText, $i)
                                        $newText = StringTrimLeft($newText, $i)
                                        $newText = $left & " " & $newText
                                    EndIf
                                Next
                            EndIf

                            If StringInStr($newText, ",") = 0 Then
                                $newText = $newText & ",00"
                                If $newText = ',00' Then $newText = "0,00"
                            Else
                                Local $poz22 = StringInStr($newText, ",")
                                Local $dl22 = StringLen($newText)
                                If $dl22 - $poz22 = 1 Then $newText = $newText & "0"
                                If $dl22 - $poz22 = 0 Then $newText = $newText & "00"
                            EndIf

                            $newText = $newText & "zł"
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, $newText, $iCol)
                            obliczeniabezp2($iRow, $iCol, $newText)

                        EndIf
                    EndIf
                EndIf
            Else

            EndIf ; TUTAJ JEST OBLICZAINE
        ElseIf _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $iCol) = "Ilość j." Then
            If $newText = "" Then
                _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, "", $iCol)
                obliczeniabezp2($iRow, $iCol, $newText)

            Else

                If StringRegExp($newText, '[^0-9\r\n\s]') = 0 Then
                    If $newText = "" Then

                    Else




                        $newText = StringReplace($newText, " ", "")


                        If StringInStr($newText, " ") = 0 Then
                            Local $dl22 = StringLen($newText)
                            Local $kohh = StringInStr($newText, ",")
                            Local $wiadomo2 = 0
                            If $kohh <> 0 Then
                                $wiadomo2 = StringTrimLeft($newText, $kohh)
                                $wiadomo2 = StringLen($wiadomo2) + 1
                            EndIf

                            For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                If $i > 0 Then
                                    Local $left = StringLeft($newText, $i)
                                    $newText = StringTrimLeft($newText, $i)
                                    $newText = $left & " " & $newText
                                EndIf
                            Next
                        EndIf


                        _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, $newText, $iCol)
                        obliczeniabezp2($iRow, $iCol, $newText)

                    EndIf
                Else

                EndIf
            EndIf
        ElseIf _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $iCol) = "j.m" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $iCol) = "Pośrednie" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, $iCol) = "Pposrednie" Then

            _GUICtrlListView_SetItemText($__LISTVIEWCTRL2, $iRow, $newText, $iCol)

;~
        Else

        EndIf
    EndIf
    $LVINFO[6] = $iRow
    $LVINFO[7] = $iCol
    _CancelEdit2()
EndFunc   ;==>_LVUpdate2

;===============================================================================
; Function Name:    _GUICtrlListViewGetSubItemRect
; Description:   Get the bounding rect of a listview item
; Parameter(s): $h_listview - IN -
;                       $row            - IN -
;                       $col            - IN -
;                       $aRect      - IN/OUT -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _GUICtrlListViewGetSubItemRect($h_listview, $row, $col, ByRef $aRect)
    Local $rectangle, $rv, $ht[4]
    $rectangle = DllStructCreate("int;int;int;int") ;left, top, right, bottom
    DllStructSetData($rectangle, 1, $LVIR_BOUNDS)
    DllStructSetData($rectangle, 2, $col)
    If IsHWnd($h_listview) Then
        Local $a_ret = DllCall("user32.dll", "int", "SendMessage", "hwnd", $h_listview, "int", $LVM_GETSUBITEMRECT, "int", $row, "ptr", DllStructGetPtr($rectangle))
        $rv = $a_ret[0]
    Else
        $rv = GUICtrlSendMsg($h_listview, $LVM_GETSUBITEMRECT, $row, DllStructGetPtr($rectangle))
    EndIf
    ReDim $aRect[4]
    $aRect = $ht
    $aRect[0] = DllStructGetData($rectangle, 1)
    $aRect[1] = DllStructGetData($rectangle, 2)
    $aRect[2] = DllStructGetData($rectangle, 3)
    $aRect[3] = DllStructGetData($rectangle, 4) - $aRect[1]
    $rectangle = 0

    Return $rv
EndFunc   ;==>_GUICtrlListViewGetSubItemRect

Func _GUICtrlListViewGetSubItemRect2($h_listview, $row, $col, ByRef $aRect)
    Local $rectangle, $rv, $ht[4]
    $rectangle = DllStructCreate("int;int;int;int") ;left, top, right, bottom
    DllStructSetData($rectangle, 1, $LVIR_BOUNDS)
    DllStructSetData($rectangle, 2, $col)
    If IsHWnd($h_listview) Then
        Local $a_ret = DllCall("user32.dll", "int", "SendMessage", "hwnd", $h_listview, "int", $LVM_GETSUBITEMRECT, "int", $row, "ptr", DllStructGetPtr($rectangle))
        $rv = $a_ret[0]
    Else
        $rv = GUICtrlSendMsg($h_listview, $LVM_GETSUBITEMRECT, $row, DllStructGetPtr($rectangle))
    EndIf
    ReDim $aRect[4]
    $aRect = $ht
    $aRect[0] = DllStructGetData($rectangle, 1)
    $aRect[1] = DllStructGetData($rectangle, 2)
    $aRect[2] = DllStructGetData($rectangle, 3)
    $aRect[3] = DllStructGetData($rectangle, 4) - $aRect[1]
    $rectangle = 0

    Return $rv
EndFunc   ;==>_GUICtrlListViewGetSubItemRect2
;===============================================================================
; Function Name:    _InitEdit
; Description:      Bring forth the editing control and set focus on it.
; Parameter(s): $LVINFO         - IN -
;                       $LVcolControl   - IN -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _InitEdit($LVINFO, $LVcolControl)
    If $bPROGRESSSHOWING = True Then Return
    ;ConsoleWrite("_InitEdit>>"&@LF)
    If $bCanceled Then
        $bCanceled = False
        Return
    EndIf
    If $bCALLBACK Then
        _CancelEdit()
        $bCALLBACK = False
    EndIf

    If $editFlag = 1 Then _CancelEdit()
    Local $CtrlType
    If $LVINFO[0] < 0 Or $LVINFO[1] < 0 Then Return 0
    If UBound($LVcolControl) - 1 < $LVINFO[1] Then
        $CtrlType = 0
    Else
        $CtrlType = $LVcolControl[$LVINFO[1]]
    EndIf
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------
    Switch $CtrlType
        Case 1
            GUICtrlSetData($lvEdit, "")
            $editCtrl = $lvEdit
        Case 2
            $editCtrl = $lvCombo
        Case 4
            $editCtrl = $lvDate
        Case 8
            $editCtrl = $lvList
        Case 256
            $bCALLBACK = True
        Case Else
            Return
    EndSwitch
    If $bCALLBACK Then
        $bCALLBACK = False
        $bCALLBACK_EVENT = True
    Else
        ;----------------------------------------------------------------------------------------------

        ;----------------------------------------------------------------------------------------------
        Local $editCtrlPos = _CalcEditPos($__LISTVIEWCTRL, $LVINFO)
        Local $x1, $y1
        ClientToScreen($Gui, $x1, $y1)
        WinMove($lvControlGui, "", $editCtrlPos[0] + ($x1 - 1), $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2], $editCtrlPos[3])
        ;       GUICtrlSetPos($editCtrl, $editCtrlPos[0],$editCtrlPos[1], $editCtrlPos[2],$editCtrlPos[3])
        GUICtrlSetPos($editCtrl, 0, 0, $editCtrlPos[2], $editCtrlPos[3])
        Local $oldText = _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[0], $LVINFO[1])

        GUICtrlSetState($__LISTVIEWCTRL, $GUI_NOFOCUS)

        Switch $editCtrl
            Case $lvList
                If $oldText <> "" Then GUICtrlSetData($editCtrl, $oldText)
            Case $lvCombo
                If $oldText <> "" Then
                    Local $index = _GUICtrlComboBox_FindString($editCtrl, $oldText)

                    If ($index = -1) Then $index = _GUICtrlComboBox_AddString($editCtrl, $oldText)
                    _GUICtrlComboBox_SetCurSel($editCtrl, $index)
                    GUICtrlSetState($editCtrl, $GUI_ONTOP)
                EndIf
            Case Else
                Local $auc2 = 0
                If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, 4) = "-PP-" Then $auc2 += 1
                If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, 5) = "-L/P-" Then $auc2 += 1
                If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 1, 4) = "-L/P-" Then $auc2 += 1
                If $LVINFO[1] > 6 + $auc2 Then
                    $oldText = StringReplace($oldText, "zł", "")
                EndIf
                GUICtrlSetData($editCtrl, $oldText)
        EndSwitch
        $editFlag = 1

        GUICtrlSetState($__LISTVIEWCTRL, $GUI_NOFOCUS)

        WinMove($lvControlGui, "", $editCtrlPos[0] + ($x1 - 1), $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2] + 1, $editCtrlPos[3] + 1)
        WinSetOnTop($lvControlGui, "", 1)
        GUISetState(@SW_SHOW, $lvControlGui)
;~  GUICtrlSetPos($editCtrl, $editCtrlPos[0],$editCtrlPos[1], $editCtrlPos[2],$editCtrlPos[3])
;~  GUICtrlSetState($editCtrl, $GUI_SHOW)
        GUICtrlSetPos($editCtrl, 0, 0, $editCtrlPos[2], $editCtrlPos[3])
        GUICtrlSetState($editCtrl, $GUI_SHOW)
        GUICtrlSetState($editCtrl, $GUI_FOCUS)
        ;       GUIRegisterMsg($WM_ACTIVATE,"WM_ACTIVATE")
    EndIf

EndFunc   ;==>_InitEdit

Func _InitEdit2($LVINFO, $LVcolControl)
    If $bPROGRESSSHOWING = True Then Return
    ;ConsoleWrite("_InitEdit>>"&@LF)
    If $bCanceled Then
        $bCanceled = False
        Return
    EndIf
    If $bCALLBACK Then
        _CancelEdit()
        $bCALLBACK = False
    EndIf

    If $editFlag = 1 Then _CancelEdit()
    Local $CtrlType
    If $LVINFO[0] < 0 Or $LVINFO[1] < 0 Then Return 0
    If UBound($LVcolControl) - 1 < $LVINFO[1] Then
        $CtrlType = 0
    Else
        $CtrlType = $LVcolControl[$LVINFO[1]]
    EndIf
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------
    Switch $CtrlType
        Case 1
            GUICtrlSetData($lvEdit, "")
            $editCtrl = $lvEdit
        Case 2
            $editCtrl = $lvCombo
        Case 4
            $editCtrl = $lvDate
        Case 8
            $editCtrl = $lvList
        Case 256
            $bCALLBACK = True
        Case Else
            Return
    EndSwitch
    If $bCALLBACK Then
        $bCALLBACK = False
        $bCALLBACK_EVENT = True
    Else
        ;----------------------------------------------------------------------------------------------

        ;----------------------------------------------------------------------------------------------
        Local $editCtrlPos = _CalcEditPos($__LISTVIEWCTRL, $LVINFO)
        Local $x1, $y1
        ClientToScreen($Gui, $x1, $y1)
        WinMove($lvControlGui, "", $editCtrlPos[0] + ($x1 - 1), $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2], $editCtrlPos[3])
        ;       GUICtrlSetPos($editCtrl, $editCtrlPos[0],$editCtrlPos[1], $editCtrlPos[2],$editCtrlPos[3])
        GUICtrlSetPos($editCtrl, 0, 0, $editCtrlPos[2], $editCtrlPos[3])
        Local $oldText = _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[0], $LVINFO[1])

        GUICtrlSetState($__LISTVIEWCTRL2, $GUI_NOFOCUS)

        Switch $editCtrl
            Case $lvList
                If $oldText <> "" Then GUICtrlSetData($editCtrl, $oldText)
            Case $lvCombo
                If $oldText <> "" Then
                    Local $index = _GUICtrlComboBox_FindString($editCtrl, $oldText)

                    If ($index = -1) Then $index = _GUICtrlComboBox_AddString($editCtrl, $oldText)
                    _GUICtrlComboBox_SetCurSel($editCtrl, $index)
                    GUICtrlSetState($editCtrl, $GUI_ONTOP)
                EndIf
            Case Else
                Local $auc2 = 0
                If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, 4) = "-PP-" Then $auc2 += 1
                If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, 5) = "-L/P-" Then $auc2 += 1
                If _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, 1, 4) = "-L/P-" Then $auc2 += 1
                If $LVINFO[1] > 6 + $auc2 Then
                    $oldText = StringReplace($oldText, "zł", "")
                EndIf
                GUICtrlSetData($editCtrl, $oldText)
        EndSwitch
        $editFlag = 1

        GUICtrlSetState($__LISTVIEWCTRL2, $GUI_NOFOCUS)

        WinMove($lvControlGui, "", $editCtrlPos[0] + ($x1 - 1), $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2] + 1, $editCtrlPos[3] + 1)
        WinSetOnTop($lvControlGui, "", 1)
        GUISetState(@SW_SHOW, $lvControlGui)
;~  GUICtrlSetPos($editCtrl, $editCtrlPos[0],$editCtrlPos[1], $editCtrlPos[2],$editCtrlPos[3])
;~  GUICtrlSetState($editCtrl, $GUI_SHOW)
        GUICtrlSetPos($editCtrl, 0, 0, $editCtrlPos[2], $editCtrlPos[3])
        GUICtrlSetState($editCtrl, $GUI_SHOW)
        GUICtrlSetState($editCtrl, $GUI_FOCUS)
        ;       GUIRegisterMsg($WM_ACTIVATE,"WM_ACTIVATE")
    EndIf

EndFunc   ;==>_InitEdit2



Func _MoveControl()
    If $bInitiated = True Then
        Local $editCtrlPos = _CalcEditPos($__LISTVIEWCTRL, $LVINFO)
        Local $x1, $y1
        ClientToScreen($Gui, $x1, $y1)
        If $editCtrlPos[0] > 0 Then
            WinMove($lvControlGui, "", $editCtrlPos[0] + ($x1 - 1), $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2], $editCtrlPos[3])
        Else
            WinMove($lvControlGui, "", $x1 + 1, $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2] - Abs($editCtrlPos[0]), $editCtrlPos[3])
        EndIf
        ;GUICtrlSetPos($editCtrl, 0,0, $editCtrlPos[2],$editCtrlPos[3])
    EndIf
EndFunc   ;==>_MoveControl

Func _MoveControl2()
    If $bInitiated = True Then
        Local $editCtrlPos = _CalcEditPos2($__LISTVIEWCTRL2, $LVINFO)
        Local $x1, $y1
        ClientToScreen2($Gui, $x1, $y1)
        If $editCtrlPos[0] > 0 Then
            WinMove($lvControlGui, "", $editCtrlPos[0] + ($x1 - 1), $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2], $editCtrlPos[3])
        Else
            WinMove($lvControlGui, "", $x1 + 1, $editCtrlPos[1] + ($y1 - 1), $editCtrlPos[2] - Abs($editCtrlPos[0]), $editCtrlPos[3])
        EndIf
        ;GUICtrlSetPos($editCtrl, 0,0, $editCtrlPos[2],$editCtrlPos[3])
    EndIf
EndFunc   ;==>_MoveControl2


Func _CalcEditPos($nLvCtrl, $aINFO)
    Local $pos[4]
    Local $ctrlSize = ControlGetPos($Gui, "", $nLvCtrl)
    Local $ERR = @error
    $pos[0] = $aINFO[2]
    $pos[1] = $aINFO[3] + 3
    $pos[2] = $aINFO[4]
    $pos[3] = $aINFO[5] - 4
    If $ERR Then

        Return $pos
    EndIf
    If $aINFO[2] + $aINFO[4] > $ctrlSize[2] + 100 Then
        $pos[0] = $aINFO[2] - (($aINFO[2] + $aINFO[4]) - $ctrlSize[2] + 100)
    EndIf
    If $editCtrl = $lvList Then
        ;
        Local $initH = (_GUICtrlListView_GetItemCount($lvList) * 14.5) * (_GUICtrlListView_GetItemCount($lvList) * 14.5 > 0)
        Local $y1 = $ctrlSize[3] + 100 - $aINFO[3] - 21
        $y1 = $y1 * ($y1 > 21)
        If $initH < $y1 Then
            $pos[3] = $initH
        Else
            $pos[3] = $y1
        EndIf

    EndIf
    If _LvHasCheckStyle($__LISTVIEWCTRL) And $aINFO[1] = 0 And $editCtrl = $lvEdit Then
        ;compensate for check box
        $pos[2] = $aINFO[4] - 21
        $pos[0] = $aINFO[2] + 21
    EndIf
    Return $pos
EndFunc   ;==>_CalcEditPos


Func _CalcEditPos2($nLvCtrl, $aINFO)
    Local $pos[4]
    Local $ctrlSize = ControlGetPos($Gui, "", $nLvCtrl)
    Local $ERR = @error
    $pos[0] = $aINFO[2]
    $pos[1] = $aINFO[3] + 3
    $pos[2] = $aINFO[4]
    $pos[3] = $aINFO[5] - 4
    If $ERR Then

        Return $pos
    EndIf
    If $aINFO[2] + $aINFO[4] > $ctrlSize[2] Then
        $pos[0] = $aINFO[2] - (($aINFO[2] + $aINFO[4]) - $ctrlSize[2])
    EndIf
    If $editCtrl = $lvList Then
        ;make the list fit inside the ListView.
        Local $initH = (_GUICtrlListView_GetItemCount($lvList) * 14.5) * (_GUICtrlListView_GetItemCount($lvList) * 14.5 > 0)
        Local $y1 = $ctrlSize[3] - $aINFO[3] - 21
        $y1 = $y1 * ($y1 > 21)
        If $initH < $y1 Then
            $pos[3] = $initH
        Else
            $pos[3] = $y1
        EndIf

    EndIf
    If _LvHasCheckStyle2($__LISTVIEWCTRL2) And $aINFO[1] = 0 And $editCtrl = $lvEdit Then
        ;compensate for check box
        $pos[2] = $aINFO[4] - 21
        $pos[0] = $aINFO[2] + 21
    EndIf
    Return $pos
EndFunc   ;==>_CalcEditPos2


;===============================================================================
; Function Name:    _CancelEdit
; Description:      Cancels the editing process, and kills the hot keys.
; Parameter(s):
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _CancelEdit()

    HotKeySet("{Enter}")
    HotKeySet("{Esc}")
    If $editFlag = 1 Then Send("{Enter}");quit edit mode
    $editFlag = 0
    GUISetState(@SW_HIDE, $lvControlGui); additionally hide it
    WinSetOnTop($lvControlGui, "", 0); remove topmost attrib
    WinMove($lvControlGui, "", 1024, 768, 1, 1);move to bottom right corner
    GUICtrlSetState($editCtrl, $GUI_HIDE)
    GUICtrlSetPos($editCtrl, 0, 0, 1, 1)
    $bCanceled = True
    $bDATECHANGED = False
    ;----------------------------------------------------------------------------------------------
    $kliknietonadate = False
    ;----------------------------------------------------------------------------------------------
    ;if Not(WinActive($Gui,"")) Then WinActivate($Gui,"")
EndFunc   ;==>_CancelEdit

Func _CancelEdit2()

    HotKeySet("{Enter}")
    HotKeySet("{Esc}")
    If $editFlag = 1 Then Send("{Enter}");quit edit mode
    $editFlag = 0
    GUISetState(@SW_HIDE, $lvControlGui); additionally hide it
    WinSetOnTop($lvControlGui, "", 0); remove topmost attrib
    WinMove($lvControlGui, "", 1024, 768, 1, 1);move to bottom right corner
    GUICtrlSetState($editCtrl, $GUI_HIDE)
    GUICtrlSetPos($editCtrl, 0, 0, 1, 1)
    $bCanceled = True
    $bDATECHANGED = False
    ;----------------------------------------------------------------------------------------------
    $kliknietonadate = False
    ;----------------------------------------------------------------------------------------------
    ;if Not(WinActive($Gui,"")) Then WinActivate($Gui,"")
EndFunc   ;==>_CancelEdit2
;===============================================================================
; Function Name:    _FillLV_Info
; Description:      This fills the passed in array with row col and rect info for
;                       used by the editing controls
; Parameter(s): $__LISTVIEWCTRL - IN/OUT -
;                       $iRow               - IN -
;                       $iCol               - IN -
;                       $aLVI               - IN/OUT -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _FillLV_Info(ByRef $nLvCtrl, $iRow, $iCol, ByRef $aLVI, $iFlag = 1)
    If $iFlag Then
        $aLVI[6] = $aLVI[0] ;set old row
        $aLVI[7] = $aLVI[1] ;set old col
        $aLVI[0] = $iRow ;set new row
        $aLVI[1] = $iCol ;set new col
    EndIf
    If $iRow < 0 Or $iCol < 0 Then Return 0
    Local $lvi_rect[4], $pos = ControlGetPos($Gui, "", $nLvCtrl)
    _GUICtrlListViewGetSubItemRect($nLvCtrl, $iRow, $iCol, $lvi_rect)
    $aLVI[2] = $pos[0] + $lvi_rect[0] + 5
    $aLVI[3] = $pos[1] + $lvi_rect[1]
    $aLVI[4] = _GUICtrlListView_GetColumnWidth($nLvCtrl, $iCol) - 4
    $aLVI[5] = $lvi_rect[3] + 5

    Return 1
EndFunc   ;==>_FillLV_Info


Func _FillLV_Info2(ByRef $nLvCtrl, $iRow, $iCol, ByRef $aLVI, $iFlag = 1)
    If $iFlag Then
        $aLVI[6] = $aLVI[0] ;set old row
        $aLVI[7] = $aLVI[1] ;set old col
        $aLVI[0] = $iRow ;set new row
        $aLVI[1] = $iCol ;set new col
    EndIf
    If $iRow < 0 Or $iCol < 0 Then Return 0
    Local $lvi_rect[4], $pos = ControlGetPos($Gui, "", $nLvCtrl)
    _GUICtrlListViewGetSubItemRect2($nLvCtrl, $iRow, $iCol, $lvi_rect)
    $aLVI[2] = $pos[0] + $lvi_rect[0] + 5
    $aLVI[3] = $pos[1] + $lvi_rect[1]
    $aLVI[4] = _GUICtrlListView_GetColumnWidth($nLvCtrl, $iCol) - 4
    $aLVI[5] = $lvi_rect[3] + 5

    Return 1
EndFunc   ;==>_FillLV_Info2

Func WM_ACTIVATE($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGui,$MsgID,$wParam, $lParam
    ;Local $wa = _LoWord($wParam)
    Local $hActive = DllCall("user32.dll", "hwnd", "GetForegroundWindow")
    If $lParam = 0 And $editFlag = 1 Then
        _CancelEdit()
        _CancelEdit2()
    EndIf
    If IsArray($hActive) Then
        WinSetOnTop($hActive[0], "", 1)
        WinSetOnTop($hActive[0], "", 0)
    EndIf
    Return 0
EndFunc   ;==>WM_ACTIVATE
Edited by ZwinnyRolnik

Share this post


Link to post
Share on other sites

#10 ·  Posted (edited)

next (i can't join it together in [au.toit][/au.toit]

;===============================================================================
; Function Name:    WM_Notify_Events
; Description:      Event handler for windows WN_NOTIFY messages
; Parameter(s): $hWndGUI         - IN -
;                       $MsgID       - IN -
;                       $wParam      - IN -
;                       $lParam      - IN -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam

    If ($wcisniety[1] Or ($wcisniety[2] And $ryczek = "nierycz") Or $wcisniety[3]) And $bWM_NOTIFY = True And $nacisnietyjest = False Then


        Local $tagNMHDR, $pressed, $event, $retval = $GUI_RUNDEFMSG ;, $idFrom
        $tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code)
        If @error Then
            $tagNMHDR = 0
            Return
        EndIf

;~  $from = DllStructGetData($tagNMHDR, 1)
;~  $idFrom = DllStructGetData($tagNMHDR,2)
        ;ConsoleWrite("idFrom="&$idFrom&@LF)
        $event = DllStructGetData($tagNMHDR, 3)
        If $wcisniety[1] or $wcisniety[3] Then
            Select
                Case $wParam = $__LISTVIEWCTRL
                    Select
                        Case $event = $LVN_BEGINSCROLL
                            $bWM_NOTIFY = False
                            _CancelEdit()
                            _TermEditLib2()
                            ToolTip("")

                            If _IsPressed("01", $dll22) Then
                                $nacisnietyjest = True
                                $wszystkostop = True
                            EndIf
                    EndSelect
            EndSelect
        ElseIf $wcisniety[2] Then
            Select
                Case $wParam = $__LISTVIEWCTRL2
                    Select
                        Case $event = $LVN_BEGINSCROLL
                            $bWM_NOTIFY = False
                            _CancelEdit2()
                            _TermEditLib222()
                            ToolTip("")

                            If _IsPressed("01", $dll22) Then
                                $nacisnietyjest = True
                                $wszystkostop = True
                            EndIf
                    EndSelect
            EndSelect
        ElseIf $wcisniety[3] Then
            Select
                Case $wParam = $__LISTVIEWCTRL3
                    Select
                        Case $event = $LVN_BEGINSCROLL
                            $bWM_NOTIFY = False
                            _CancelEdit2()
                            _TermEditLib222()
                            ToolTip("")

                            If _IsPressed("01", $dll22) Then
                                $nacisnietyjest = True
                                $wszystkostop = True
                            EndIf
                    EndSelect
            EndSelect
        EndIf

        Select
            Case ($event = $HDN_TRACK Or $event = $HDN_TRACKW)
                ;column dragging
                _CancelEdit()
                _CancelEdit2()
            Case $MsgID = $WM_MOVING
                _MoveControl()
                _MoveControl2()

            Case $wParam = $__LISTVIEWCTRL3
                If $wcisniety[3] Then
                    Select
                        Case $event = $LVN_COLUMNCLICK
                            $tNMLISTVIEW = DllStructCreate("hwnd hwndfrom;int idfrom;int code;" & _
                                    "int item;int subitem", $lParam)
                            $iColll = DllStructGetData($tNMLISTVIEW, "subitem")

                            If $iColll = 1 Or $iColll = 2 Then
                                Local $tekszt = _GUICtrlListView_GetColumn($__LISTVIEWCTRL3, $iColll)
                                If $tekszt[5] = "Zwiń wszystkie" Then
;~                              _GUICtrlListView_SetColumn($__LISTVIEWCTRL3, $iColll, "Rozwiń wszystkie")
                                    For $i = _GUICtrlListView_GetColumnCount($__LISTVIEWCTRL3) - 1 To 2 Step -1
                                        Local $tekszt = _GUICtrlListView_GetColumn($__LISTVIEWCTRL3, $i)
                                        If $tekszt[5] = "Zwiń" Then
                                            For $j = $i - 1 To 0 Step -1
                                                If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $j), "(") <> 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $j) = "" Then ExitLoop
                                                _GUICtrlListView_HideColumn($__LISTVIEWCTRL3, $j)
                                            Next
                                            _GUICtrlListView_SetColumn($__LISTVIEWCTRL3, $i, "Rozwiń")
                                            Local $jhj = _GUICtrlListView_GetTopIndex($__LISTVIEWCTRL3)
                                            _GUICtrlListView_EnsureVisibleEx($__LISTVIEWCTRL3, $jhj, $i - 1)
                                        EndIf
                                    Next

                                    For $i = 0 To 1499
                                        $roki[$i] = True
                                    Next
                                Else
;~                              _GUICtrlListView_SetColumn($__LISTVIEWCTRL3, $iColll, "Zwiń wszystkie")


                                    For $i = _GUICtrlListView_GetColumnCount($__LISTVIEWCTRL3) - 1 To 2 Step -1
                                        Local $tekszt = _GUICtrlListView_GetColumn($__LISTVIEWCTRL3, $i)
                                        If $tekszt[5] = "Rozwiń" Then

                                            For $j = $i - 1 To 0 Step -1
                                                If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $j), "(") <> 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $j) = "" Then ExitLoop

                                                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL3, $j, $LVSCW_AUTOSIZE_USEHEADER)
                                                $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL3, $j)

                                                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL3, $j, $LVSCW_AUTOSIZE)
                                                $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL3, $j)

                                                If $iHeader_Width > $iData_Width Then
                                                    _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL3, $j, $iHeader_Width)
                                                    $iLV_Width += $iHeader_Width
                                                Else
                                                    $iLV_Width += $iData_Width
                                                EndIf
                                            Next

                                            _GUICtrlListView_SetColumn($__LISTVIEWCTRL3, $i, "Zwiń")
                                            Local $jhj = _GUICtrlListView_GetTopIndex($__LISTVIEWCTRL3)
                                            _GUICtrlListView_EnsureVisibleEx($__LISTVIEWCTRL3, $jhj, $i - 1)
                                        EndIf
                                    Next
                                    For $i = 0 To 1499
                                        $roki[$i] = False
                                    Next
                                EndIf

                            Else
                                If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $iColll), "(") <> 0 Then

                                    Local $juzpo = StringTrimLeft(StringTrimRight(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $iColll), 1), 1)
                                    $juzpo = Number($juzpo) - 1500


                                    If $roki[$juzpo] = False Then
                                        $roki[$juzpo] = True
                                        For $i = $iColll - 1 To 0 Step -1
                                            If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $i), "(") <> 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $i) = "" Then ExitLoop
                                            _GUICtrlListView_HideColumn($__LISTVIEWCTRL3, $i)
                                        Next
                                        _GUICtrlListView_SetColumn($__LISTVIEWCTRL3, $iColll, "Rozwiń")
                                        Local $jhj = _GUICtrlListView_GetTopIndex($__LISTVIEWCTRL3)
                                        _GUICtrlListView_EnsureVisibleEx($__LISTVIEWCTRL3, $jhj, $iColll - 1)
                                    Else
                                        $roki[$juzpo] = False
                                        For $i = $iColll - 1 To 0 Step -1
                                            If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $i), "(") <> 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $i) = "" Then ExitLoop

                                            _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL3, $i, $LVSCW_AUTOSIZE_USEHEADER)
                                            $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL3, $i)

                                            _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL3, $i, $LVSCW_AUTOSIZE)
                                            $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL3, $i)

                                            If $iHeader_Width > $iData_Width Then
                                                _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL3, $i, $iHeader_Width)
                                                $iLV_Width += $iHeader_Width
                                            Else
                                                $iLV_Width += $iData_Width
                                            EndIf
                                        Next
                                        _GUICtrlListView_SetColumn($__LISTVIEWCTRL3, $iColll, "Zwiń")
                                        Local $jhj = _GUICtrlListView_GetTopIndex($__LISTVIEWCTRL3)
                                        _GUICtrlListView_EnsureVisibleEx($__LISTVIEWCTRL3, $jhj, $iColll - 1)

                                    EndIf
                                EndIf
                            EndIf
                    EndSelect
                EndIf
            Case $wParam = $__LISTVIEWCTRL
                If $wcisniety[1] or $wcisniety[3] Then
                    Select


                        Case $event = $LVN_ITEMCHANGED
                            Local $ckcount = _LvGetCheckedCount($__LISTVIEWCTRL)
                            If $LVCHECKEDCNT <> $ckcount Then
                                $LVCHECKEDCNT = $ckcount
                                $bLVITEMCHECKED = True
                                _CancelEdit()

                            EndIf



                        Case $event = $NM_CLICK

;~                      If $bLVEDITondblclick = false Then

;~
;~                      Else

                            If $editFlag = 1 Then

                                _ListView_Click()

                            Else

;~
                                If $moznakliknac = True Then
                                    _ListView_DoubleClick()
                                EndIf

                                $moznakliknac = True
                            EndIf
;~                      EndIf

;~                      $bLVITEMCHECKED = False;

                        Case $event = $LVN_HOTTRACK

                            _LVGetInfo($lParam)
                            If _GUICtrlListView_GetItemSelected($__LISTVIEWCTRL, $LVINFO[8]) = True Then
                                $moznakliknac = True
                            Else
                                $moznakliknac = False
                            EndIf

                            If $editFlag = 0 Then


                                ; if no cell change return without doing anythingli
                                If $iLastItem = $LVINFO[8] And $iLastsubitemNR = $LVINFO[9] Then

                                    Return

                                Else
                                    $iLastItem = $LVINFO[8]
                                    $iLastsubitemNR = $LVINFO[9]

                                    If $LVINFO[8] = 1 And (_GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9]) = "-CF-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9]) = "-UZ-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9]) = "-KP-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9]) = "-PS-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9]) = "-PP-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9]) = "-L/P-") Then

                                        Local $sToolTipData2 = _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9])

                                        If $sToolTipData2 = "-CF-" Then $sToolTipData2 = "Cross Financing"
                                        If $sToolTipData2 = "-UZ-" Then $sToolTipData2 = "Usługa Zlecana"
                                        If $sToolTipData2 = "-PP-" Then $sToolTipData2 = "Pomoc Publiczna"
                                        If $sToolTipData2 = "-L/P-" Then $sToolTipData2 = "Liderzy/Partnerzy"
                                        If $sToolTipData2 = "-KP-" Then $sToolTipData2 = "Koszty Personelu"
                                        If $sToolTipData2 = "-PS-" Then $sToolTipData2 = "Pozycja Skalowana"
                                        Sleep(10)
                                        Local $mousx = MouseGetPos(0)
                                        Local $mousy = MouseGetPos(1)
                                        Sleep(140)
                                        ToolTip($sToolTipData2, $mousx + 5, $mousy + 5, "", 0, 1)
;~                                      Local $tip = _GUIToolTip_Create($gui,$TTS_BALLOON)
;~                                      Local $id = _GUIToolTip_GetCurrentTool($tip)
;~                                      _GUIToolTip_UpdateTipText($gui,$tip,$id[2],"ala ma kota")
;~                                      _GUIToolTip_PopUp($tip)
;~                                      _GUIToolTip_TrackActivate($tip,true,$gui,$id[2])


                                    Else

;~                                  Local $sToolTipData = _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9])
;~                                  $Mypos = StringInStr($sToolTipData, @CRLF)

;~                                  $strin = _GUICtrlListView_GetStringWidth($__LISTVIEWCTRL, $sToolTipData)
;~                                  $strin = $strin + 12
;~                                  $str = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $LVINFO[9])


;~                                  If $Mypos = 0 Then
;~                                      If $str < $strin Then
;~                                          Sleep(250)
                                        ;ToolTip($sToolTipData, MouseGetPos(0) + 5, MouseGetPos(1) + 5, "", 0, 1)
;~                                          $tip = _GUIToolTip_Create($gui,$TTS_BALLOON)
;~                                          $id = _GUIToolTip_GetCurrentTool($tip)
;~                                          _GUIToolTip_UpdateTipText($gui,$tip,$id[2],"ala ma kota")
;~                                      Else
;~                                          ToolTip("")
;~                                      EndIf

;~                                      ;ConsoleWrite("R" & $iItem & "C" & $subitemNR & " No tip" & @CR)
;~                                  Else

                                        ToolTip("")
;~                                  EndIf
                                    EndIf
                                EndIf
                            EndIf


                        Case $event = $NM_DBLCLK

                            _LVGetInfo($lParam)
                            _ListView_DoubleClick()

                        Case $event = $NM_RCLICK

                            _ListView_RClick()
                        Case $event = -180

                            If $editFlag = 1 Then
                                Send("{Esc}")
                                _CancelEdit()
                                $retval = 0
                            EndIf
                        Case $event = -181

                            _FillLV_Info($__LISTVIEWCTRL, $LVINFO[0], $LVINFO[1], $LVINFO, 0)
                        Case $event = -121

                            _LVGetInfo($lParam, 1)
                        Case Else

                    EndSelect
                EndIf
            Case $wParam = $__LISTVIEWCTRL2
                If $wcisniety[2] Then
                    Select


                        Case $event = $LVN_ITEMCHANGED
                            Local $ckcount = _LvGetCheckedCount($__LISTVIEWCTRL2)
                            If $LVCHECKEDCNT <> $ckcount Then
                                $LVCHECKEDCNT = $ckcount
                                $bLVITEMCHECKED = True
                                _CancelEdit2()

                            EndIf



                        Case $event = $NM_CLICK
                            If $editFlag = 1 Then
                                _ListView_Click2()

                            Else

                                If $moznakliknac2 = True Then
                                    _ListView_DoubleClick2()
                                EndIf
                                $moznakliknac2 = True
                            EndIf

                        Case $event = $LVN_HOTTRACK

                            _LVGetInfo2($lParam)
                            If _GUICtrlListView_GetItemSelected($__LISTVIEWCTRL2, $LVINFO[8]) = True Then
                                $moznakliknac2 = True
                            Else
                                $moznakliknac2 = False
                            EndIf

                            If $editFlag = 0 Then


                                If $iLastItem = $LVINFO[8] And $iLastsubitemNR = $LVINFO[9] Then

                                    Return

                                Else
                                    $iLastItem = $LVINFO[8]
                                    $iLastsubitemNR = $LVINFO[9]

                                    If $LVINFO[8] = 1 And (_GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9]) = "-CF-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9]) = "-UZ-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9]) = "-KP-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9]) = "-PS-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9]) = "-PP-" Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9]) = "-L/P-") Then

                                        Local $sToolTipData2 = _GUICtrlListView_GetItemText($__LISTVIEWCTRL2, $LVINFO[8], $LVINFO[9])

                                        If $sToolTipData2 = "-CF-" Then $sToolTipData2 = "Cross Financing"
                                        If $sToolTipData2 = "-UZ-" Then $sToolTipData2 = "Usługa Zlecana"
                                        If $sToolTipData2 = "-PP-" Then $sToolTipData2 = "Pomoc Publiczna"
                                        If $sToolTipData2 = "-L/P-" Then $sToolTipData2 = "Liderzy/Partnerzy"
                                        If $sToolTipData2 = "-KP-" Then $sToolTipData2 = "Koszty Personelu"
                                        If $sToolTipData2 = "-PS-" Then $sToolTipData2 = "Pozycja Skalowana"

                                        Sleep(10)
                                        Local $mousx = MouseGetPos(0)
                                        Local $mousy = MouseGetPos(1)
                                        Sleep(140)
                                        ToolTip($sToolTipData2, $mousx + 5, $mousy + 5, "", 0, 1)
;~                                      Local $tip = _GUIToolTip_Create($gui,$TTS_BALLOON)
;~                                      Local $id = _GUIToolTip_GetCurrentTool($tip)
;~                                      _GUIToolTip_UpdateTipText($gui,$tip,$id[2],"ala ma kota")
;~                                      _GUIToolTip_PopUp($tip)
;~                                      _GUIToolTip_TrackActivate($tip,true,$gui,$id[2])


                                    Else

;~                                  Local $sToolTipData = _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $LVINFO[8], $LVINFO[9])
;~                                  $Mypos = StringInStr($sToolTipData, @CRLF)

;~                                  $strin = _GUICtrlListView_GetStringWidth($__LISTVIEWCTRL, $sToolTipData)
;~                                  $strin = $strin + 12
;~                                  $str = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $LVINFO[9])


;~                                  If $Mypos = 0 Then
;~                                      If $str < $strin Then
;~                                          Sleep(250)
                                        ;ToolTip($sToolTipData, MouseGetPos(0) + 5, MouseGetPos(1) + 5, "", 0, 1)
;~                                          $tip = _GUIToolTip_Create($gui,$TTS_BALLOON)
;~                                          $id = _GUIToolTip_GetCurrentTool($tip)
;~                                          _GUIToolTip_UpdateTipText($gui,$tip,$id[2],"ala ma kota")
;~                                      Else
;~                                          ToolTip("")
;~                                      EndIf

;~                                      ;ConsoleWrite("R" & $iItem & "C" & $subitemNR & " No tip" & @CR)
;~                                  Else

                                        ToolTip("")
;~                                  EndIf
                                    EndIf
                                EndIf
                            EndIf

                        Case $event = $NM_DBLCLK

                            _LVGetInfo2($lParam)
                            _ListView_DoubleClick2()
                        Case $event = $NM_RCLICK

                            _ListView_RClick2()
                        Case $event = -180

                            If $editFlag = 1 Then
                                Send("{Esc}")
                                _CancelEdit2()
                                $retval = 0
                            EndIf
                        Case $event = -181

                            _FillLV_Info2($__LISTVIEWCTRL2, $LVINFO[0], $LVINFO[1], $LVINFO, 0)
                        Case $event = -121

                            _LVGetInfo2($lParam, 1)
                        Case Else

                    EndSelect
                EndIf

            Case $lvDate
                Select

                    Case $event = $DTN_DROPDOWN
                        $kliknietonadate = True
                        $bCanceled = False
                        $bDATECHANGED = False
                    Case $event = $DTN_WMKEYDOWNA
                        $pressed = _vKeyCheck()
                        If $pressed = 27 Then _CancelEdit()
                    Case $event = $DTN_DATETIMECHANGE

                        If $bDATECHANGED = False Then $bDATECHANGED = True
                        $pressed = _vKeyCheck()
                        If $pressed = 27 Then
                            _CancelEdit()

                            $bDATECHANGED = False
                        EndIf
                    Case $event = $DTN_CLOSEUP

                        If $bCanceled or ($bDATECHANGED = False) Then
                            Send("{Esc}")
                            $kliknietonadate = False
                            $bDATECHANGED = False
                        Else
                            ;                       If $bLVUPDATEonfocusCHANGE = True Then
                            Send("{Enter}")

                            $bDATECHANGED = True
                            ;                       Else
                            ;                           Send("{Esc}")
                            ;                       EndIf
                        EndIf

                    Case $event = -7

                        $bCanceled = False
                        $bDATECHANGED = False

                        If $bCanceled = True Then
                            ;or ($bDATECHANGED = False) Then
                            Send("{Esc}")
                            $bDATECHANGED = False
                            $bCanceled = False
                        Else
                            $bDATECHANGED = True
                        EndIf
                EndSelect


            Case $event = -326

                If $editFlag Then _CancelEdit()
                If $editFlag Then _CancelEdit2()
            Case $MsgID = $WM_KEYDOWN
                ;----------------------------------------------------------------------------------------------

                ;----------------------------------------------------------------------------------------------
            Case Else

                ;;uncomment the following line to have the edit _LVUpdate if the mouse moves
                ;;off of the listview.
                If $editFlag And Not (_HasFocus($editCtrl)) Then _LVUpdate($editCtrl, $__LISTVIEWCTRL, $LVINFO[0], $LVINFO[1])
                If $editFlag And Not (_HasFocus2($editCtrl)) Then _LVUpdate2($editCtrl, $__LISTVIEWCTRL2, $LVINFO[0], $LVINFO[1])

        EndSelect


        $tagNMHDR = 0
        $event = 0
        $lParam = 0
        Return $retval
    EndIf
EndFunc   ;==>WM_Notify_Events

Func WM_MOVE_EVENT($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGuI,$MsgID,$wParam,$lParam
    If $editFlag Then _MoveControl()
    If $editFlag Then _MoveControl2()
    Return True
EndFunc   ;==>WM_MOVE_EVENT

;===============================================================================
; Function Name:    WM_Command_Events
; Description:      Event handler for windows WN_Command messages
; Parameter(s): $hWndGUI         - IN -
;                       $MsgID       - IN -
;                       $wParam      - IN -
;                       $lParam      - IN -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func WM_Command_Events($hWndGUI, $MsgID, $wParam, $lParam)
    #forceref $hWndGUI, $MsgID, $wParam
    $iLAST_PRIMARYDOWN_CTRLID = $lParam
    Local $nNotifyCode, $nID, $hCtrl
    Local $retval = $GUI_RUNDEFMSG
    $nNotifyCode = BitShift($wParam, 16)
    $nID = BitAND($wParam, 0x0000FFFF)
    $hCtrl = $lParam
    Switch $nID
        Case $lvList
            Switch $nNotifyCode
                Case $LBN_DBLCLK
                    $bLVDBLCLICK = True
                    ;Send("{Enter}")
                    _SendMessage($lvControlGui, $WM_COMMAND, _MakeLong2($editCtrl, $LBN_SELCHANGE), $lParam)
;~                  _LVUpdate($editCtrl, $__LISTVIEWCTRL, $LVINFO[0], $LVINFO[1])
                    _LVUpdate2($editCtrl, $__LISTVIEWCTRL2, $LVINFO[0], $LVINFO[1])
                    Return $GUI_RUNDEFMSG
                Case $LBN_SELCHANGE

                    If Not $bLVDBLCLICK Then Return 0
                Case $LBN_SETFOCUS

                Case $LBN_KILLFOCUS

                Case Else

            EndSwitch
        Case $lvCombo
            Switch $nNotifyCode
                Case $CBN_SELCHANGE

                    Send("{Enter}")
            EndSwitch
        Case $handlee[1]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[1] = True
                Case $EN_KILLFOCUS
                    $fFlag2[1] = True
            EndSwitch
        Case $handlee[2]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[2] = True
                Case $EN_KILLFOCUS
                    $fFlag2[2] = True
            EndSwitch
        Case $handlee[3]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[3] = True
                Case $EN_KILLFOCUS
                    $fFlag2[3] = True
            EndSwitch
        Case $handlee[4]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[4] = True
                Case $EN_KILLFOCUS
                    $fFlag2[4] = True
            EndSwitch
        Case $handlee[5]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[5] = True
                Case $EN_KILLFOCUS
                    $fFlag2[5] = True
            EndSwitch
        Case $handlee[6]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[6] = True
                Case $EN_KILLFOCUS
                    $fFlag2[6] = True
            EndSwitch
        Case $handlee[7]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[7] = True
                Case $EN_KILLFOCUS
                    $fFlag2[7] = True
            EndSwitch
        Case $handlee[8]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[8] = True
                Case $EN_KILLFOCUS
                    $fFlag2[8] = True
            EndSwitch
        Case $handlee[9]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[9] = True
                Case $EN_KILLFOCUS
                    $fFlag2[9] = True
            EndSwitch
        Case $handlee[10]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[10] = True
                Case $EN_KILLFOCUS
                    $fFlag2[10] = True
            EndSwitch
        Case $handlee[11]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[11] = True
                Case $EN_KILLFOCUS
                    $fFlag2[11] = True
            EndSwitch
        Case $handlee[12]
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $fFlag[12] = True
                Case $EN_KILLFOCUS
                    $fFlag2[12] = True
            EndSwitch
        Case $przychod
            Switch $nNotifyCode
                Case $EN_CHANGE, $EN_SETFOCUS
                    $flaga = True
                Case $EN_KILLFOCUS
                    $flaga2 = True
            EndSwitch

        Case Else

    EndSwitch

    If $bCanceled Then
        $bCanceled = 0
        $retval = 0
    EndIf

    Return $retval
EndFunc   ;==>WM_Command_Events

;===============================================================================
; Function Name :   _MakeLong
; Description       :   Converts two 16 bit values into on 32 bit value
; Parameter(s)      :   $LoWord      16bit value
;                       :   $HiWord      16bit value
; Return Value(s)   :   Long value
; Note(s)           :
;===============================================================================
Func _MakeLong($LoWord, $HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc   ;==>_MakeLong
Func _MakeLong2($LoWord, $HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc   ;==>_MakeLong2
;===============================================================================
; Function Name :   _LVGetInfo
; Description       :
; Parameter(s)      :   $lParam      Pointer to $tagNMITEMACTIVE struct
;                           $iFlag       Optional value 0 (default)= fill all fields
;                                                                1 = fill just the latest click location.
; Requirement(s)    :
; Return Value(s)   :
; User CallTip      :
; Author(s)         :
; Note(s)           :
;===============================================================================
Func _LVGetInfo($lParam, $iFlag = 0)
    Local $tagNMITEMACTIVATE = DllStructCreate("int;int;int;int;int;int;int;int;int", $lParam)
    Local $clicked_row = DllStructGetData($tagNMITEMACTIVATE, 4)
    Local $clicked_col = DllStructGetData($tagNMITEMACTIVATE, 5)
    If $clicked_col < -1 Then $clicked_col = -1
    If $clicked_row < -1 Then $clicked_row = -1
    If $clicked_col > _GUICtrlListView_GetColumnCount($__LISTVIEWCTRL) Then $clicked_col = -1
    If $clicked_row > _GUICtrlListView_GetItemCount($__LISTVIEWCTRL) Then $clicked_row = -1
    $tagNMITEMACTIVATE = 0
    If $iFlag = 0 Then
        _FillLV_Info($__LISTVIEWCTRL, $clicked_row, $clicked_col, $LVINFO)
        $old_col = $clicked_col
    EndIf
    $LVINFO[8] = $clicked_row
    $LVINFO[9] = $clicked_col
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------

EndFunc   ;==>_LVGetInfo
Func _LVGetInfo2($lParam, $iFlag = 0)
    Local $tagNMITEMACTIVATE = DllStructCreate("int;int;int;int;int;int;int;int;int", $lParam)
    Local $clicked_row = DllStructGetData($tagNMITEMACTIVATE, 4)
    Local $clicked_col = DllStructGetData($tagNMITEMACTIVATE, 5)
    If $clicked_col < -1 Then $clicked_col = -1
    If $clicked_row < -1 Then $clicked_row = -1
    If $clicked_col > _GUICtrlListView_GetColumnCount($__LISTVIEWCTRL2) Then $clicked_col = -1
    If $clicked_row > _GUICtrlListView_GetItemCount($__LISTVIEWCTRL2) Then $clicked_row = -1
    $tagNMITEMACTIVATE = 0
    If $iFlag = 0 Then
        _FillLV_Info2($__LISTVIEWCTRL2, $clicked_row, $clicked_col, $LVINFO)
        $old_col = $clicked_col
    EndIf
    $LVINFO[8] = $clicked_row
    $LVINFO[9] = $clicked_col
    ;----------------------------------------------------------------------------------------------

    ;----------------------------------------------------------------------------------------------

EndFunc   ;==>_LVGetInfo2

;===============================================================================
; Function Name:    _DebugHeader
; Description:      Gary's console debug header.
; Parameter(s):         $s_text      - IN -
;
; Requirement(s):
; Return Value(s):
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _DebugHeader($s_text)
    Return _
            "!===========================================================" & @LF & _
            "+===========================================================" & @LF & _
            "-->" & $s_text & @LF & _
            "+===========================================================" & @LF
EndFunc   ;==>_DebugHeader
Func _DebugHeader2($s_text)
    Return _
            "!===========================================================" & @LF & _
            "+===========================================================" & @LF & _
            "-->" & $s_text & @LF & _
            "+===========================================================" & @LF
EndFunc   ;==>_DebugHeader2
;===============================================================================
; Function Name:    _GetClassName
; Description:      get the classname of a ctrl
; Parameter(s): $nCtrl       the ctrlId of to get classname for.
; Requirement(s):
; Return Value(s):  Classname or 0 on failure
; User CallTip:
; Author(s):        Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s):          Strips trailing numbers from classname.
;===============================================================================
Func _GetClassName($nCtrl)
    Local $ret, $struct = DllStructCreate("char[128]"), $classname = 0
    $ret = DllCall("user32.dll", "int", "GetClassName", "hwnd", GUICtrlGetHandle($nCtrl), "ptr", DllStructGetPtr($struct), "int", DllStructGetSize($struct))
    If IsArray($ret) Then
        $classname = DllStructGetData($struct, 1)
        ;ConsoleWrite("Classname="&$classname&@LF)
    EndIf
    $struct = 0
    Return $classname
EndFunc   ;==>_GetClassName
Func _GetClassName2($nCtrl)
    Local $ret, $struct = DllStructCreate("char[128]"), $classname = 0
    $ret = DllCall("user32.dll", "int", "GetClassName", "hwnd", GUICtrlGetHandle($nCtrl), "ptr", DllStructGetPtr($struct), "int", DllStructGetSize($struct))
    If IsArray($ret) Then
        $classname = DllStructGetData($struct, 1)
        ;ConsoleWrite("Classname="&$classname&@LF)
    EndIf
    $struct = 0
    Return $classname
EndFunc   ;==>_GetClassName2
;===============================================================================
; Function Name:    vKeyCheck  alias for __IsPressedMod
; Description:  Gets a key press
; Parameter(s):         $dll         - IN/OPTIONAL -
; Requirement(s):
; Return Value(s): Return the key that is pressed or 0
; User CallTip:
; Author(s):
; Note(s):
;===============================================================================
Func _vKeyCheck($dll = "user32.dll")
    Local $aR, $hexKey, $i
    Local $vkeys[4] = [1, 13, 27, 113];leftmouse,enter,esc,f2
    For $i = 0 To UBound($vkeys) - 1
        $hexKey = '0x' & Hex($vkeys[$i], 2)
        $aR = DllCall($dll, "int", "GetAsyncKeyState", "int", $hexKey)
        If $aR[0] <> 0 Then Return $vkeys[$i]

    Next
    Return 0
EndFunc   ;==>_vKeyCheck
Func _vKeyCheck2($dll = "user32.dll")
    Local $aR, $hexKey, $i
    Local $vkeys[4] = [1, 13, 27, 113];leftmouse,enter,esc,f2
    For $i = 0 To UBound($vkeys) - 1
        $hexKey = '0x' & Hex($vkeys[$i], 2)
        $aR = DllCall($dll, "int", "GetAsyncKeyState", "int", $hexKey)
        If $aR[0] <> 0 Then Return $vkeys[$i]

    Next
    Return 0
EndFunc   ;==>_vKeyCheck2
;===============================================================================
; Function Name :   _HasFocus
; Description       :   Return true if control has focus
; Parameter(s)      :   $nCtrl Ctrlid to check
; Return Value(s)   :   True is ctrl has focus, false otherwise.
; User CallTip      :
; Author(s)         :   Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s)           :
;===============================================================================
Func _HasFocus($nCtrl)
    ;   If $DebugIt Then ConsoleWrite("_HasFocus>>"&@LF)
    Local $hwnd
    If $nCtrl = $lvCombo Then
        $hwnd = _GetComboInfo($nCtrl, 0)
    Else
        $hwnd = GUICtrlGetHandle($nCtrl)
    EndIf
    Return ($hwnd = ControlGetHandle($Gui, "", ControlGetFocus($Gui, "")))
EndFunc   ;==>_HasFocus
Func _HasFocus2($nCtrl)
    ;   If $DebugIt Then ConsoleWrite("_HasFocus>>"&@LF)
    Local $hwnd
    If $nCtrl = $lvCombo Then
        $hwnd = _GetComboInfo2($nCtrl, 0)
    Else
        $hwnd = GUICtrlGetHandle($nCtrl)
    EndIf
    Return ($hwnd = ControlGetHandle($Gui, "", ControlGetFocus($Gui, "")))
EndFunc   ;==>_HasFocus2

;===============================================================================
; Function Name :   _SetLVCallBack
; Description       :
; Parameter(s)      :   $CallBack   Function to use for(primary button) call back defaults to _CancelEdit()
; Return Value(s)   :   None.
; Author(s)         :   Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s)           :   This is used to open other controls and dialogs
;===============================================================================
Func _SetLVCallBack($CallBack = "_CancelEdit")
    If $CallBack <> "" Then $LVCALLBACK = $CallBack
EndFunc   ;==>_SetLVCallBack
;===============================================================================
Func _SetLVCallBack2($CallBack = "_CancelEdit")
    If $CallBack <> "" Then $LVCALLBACK = $CallBack
EndFunc   ;==>_SetLVCallBack2
;===============================================================================
; Function Name :   _SetLVContext
; Description       :
; Description       :
; Parameter(s)      :   $CallBack   Function to use for (secondary button) contexts defaults to _CancelEdit()
; Return Value(s)   :   None.
; Author(s)         :   Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s)           :   This is used to open other controls and dialogs (context menus)
;===============================================================================
Func _SetLVContext($Context = "_CancelEdit")
    If $Context <> "" Then $LVCONTEXT = $Context
EndFunc   ;==>_SetLVContext
Func _SetLVContext2($Context = "_CancelEdit")
    If $Context <> "" Then $LVCONTEXT = $Context
EndFunc   ;==>_SetLVContext2
;===============================================================================
; Function Name :   _LvHasCheckStyle
; Description       :
; Parameter(s)      :   $hCtrl      Listview control to check for $LVS_EX_CHECKBOXES style
;
; Requirement(s)    :
; Return Value(s)   :
; User CallTip      :
; Author(s)         :   Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s)           :
;===============================================================================
Func _LvHasCheckStyle($hCtrl)
    Local $style = _GUICtrlListView_GetExtendedListViewStyle($hCtrl)
    if (BitAND($style, $LVS_EX_CHECKBOXES) = $LVS_EX_CHECKBOXES) Then Return True
    Return False
EndFunc   ;==>_LvHasCheckStyle
;===============================================================================
Func _LvHasCheckStyle2($hCtrl)
    Local $style = _GUICtrlListView_GetExtendedListViewStyle($hCtrl)
    if (BitAND($style, $LVS_EX_CHECKBOXES) = $LVS_EX_CHECKBOXES) Then Return True
    Return False
EndFunc   ;==>_LvHasCheckStyle2

;===============================================================================
; Function Name :   _LvGetCheckedCount
; Description       :
; Parameter(s)      :   $nCtrl       Listview control to get checked checkbox count.
;
; Requirement(s)    :
; Return Value(s)   :   number of checked checkboxes, or zero.
; User CallTip      :
; Author(s)         :   Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s)           :
;===============================================================================
Func _LvGetCheckedCount($nCtrl)
    If _LvHasCheckStyle($nCtrl) Then
        Local $count = 0
        For $x = 0 To _GUICtrlListView_GetItemCount($nCtrl) - 1
            If _GUICtrlListView_GetItemChecked($nCtrl, $x) Then $count += 1
        Next
        Return $count
    EndIf
    Return 0
EndFunc   ;==>_LvGetCheckedCount
Func _LvGetCheckedCount2($nCtrl)
    If _LvHasCheckStyle2($nCtrl) Then
        Local $count = 0
        For $x = 0 To _GUICtrlListView_GetItemCount($nCtrl) - 1
            If _GUICtrlListView_GetItemChecked($nCtrl, $x) Then $count += 1
        Next
        Return $count
    EndIf
    Return 0
EndFunc   ;==>_LvGetCheckedCount2
;===============================================================================
; Function Name :   _GetComboInfo
; Description       :
; Parameter(s)      :   $nCtrl      ComboBox control to get info for
;                           $type           0= return edit hwnd, 1=  return list hwnd
;
; Requirement(s)    :
; Return Value(s)   :   return either the combos edit or list hwnd, or zero otherwise
; User CallTip      :
; Author(s)         :   Stephen Podhajecki <gehossafats at netmdc.com/>
; Note(s)           :
;===============================================================================
Func _GetComboInfo($nCtrl, $type = 0)
    ;ConsoleWrite(" _GetClassName:"&_GetClassName($nCtrl)&@LF)
    If _GetClassName($nCtrl) <> "ComboBox" Then Return 0
    Local $ret, $cbInfo, $v_ret
    $cbInfo = DllStructCreate("int;int[4];int[4];int;int;int;int")
    DllStructSetData($cbInfo, 1, DllStructGetSize($cbInfo))
    $v_ret = DllCall("user32.dll", "int", "GetComboBoxInfo", "hwnd", GUICtrlGetHandle($nCtrl), "ptr", DllStructGetPtr($cbInfo))
    If IsArray($v_ret) Then
        If $type = 0 Then
            $ret = DllStructGetData($cbInfo, 6);edit handle
            ;ConsoleWrite("Text ="&WinGetText($ret)&@LF)
        ElseIf $type = 1 Then
            $ret = DllStructGetData($cbInfo, 7);list handle
        EndIf
    EndIf
    $cbInfo = 0
    Return $ret
EndFunc   ;==>_GetComboInfo
Func _InvalidateRect($hwnd)
    Local $v_ret = DllCall("user32.dll", "int", "InvalidateRect", "hwnd", $hwnd, "ptr", 0, "int", 1)
    Return $v_ret[0]
EndFunc   ;==>_InvalidateRect

Func _UpdateWindow($hwnd)
    Local $v_ret = DllCall("user32.dll", "int", "UpdateWindow", "hwnd", $hwnd)
    Return $v_ret[0]
EndFunc   ;==>_UpdateWindow
;;;ripped from help file.
; Convert the client (GUI) coordinates to screen (desktop) coordinates
Func ClientToScreen($hwnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate("int;int")
    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)
    DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hwnd, "ptr", DllStructGetPtr($stPoint))
    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
EndFunc   ;==>ClientToScreen
Func _HiWord($x)
    Return BitShift($x, 16)
EndFunc   ;==>_HiWord

Func _LoWord($x)
    Return BitAND($x, 0xFFFF)
EndFunc   ;==>_LoWord
Edited by ZwinnyRolnik

Share this post


Link to post
Share on other sites

#11 ·  Posted (edited)

Func _GetComboInfo2($nCtrl, $type = 0)
    ;ConsoleWrite(" _GetClassName:"&_GetClassName($nCtrl)&@LF)
    If _GetClassName2($nCtrl) <> "ComboBox" Then Return 0
    Local $ret, $cbInfo, $v_ret
    $cbInfo = DllStructCreate("int;int[4];int[4];int;int;int;int")
    DllStructSetData($cbInfo, 1, DllStructGetSize($cbInfo))
    $v_ret = DllCall("user32.dll", "int", "GetComboBoxInfo", "hwnd", GUICtrlGetHandle($nCtrl), "ptr", DllStructGetPtr($cbInfo))
    If IsArray($v_ret) Then
        If $type = 0 Then
            $ret = DllStructGetData($cbInfo, 6);edit handle
            ;ConsoleWrite("Text ="&WinGetText($ret)&@LF)
        ElseIf $type = 1 Then
            $ret = DllStructGetData($cbInfo, 7);list handle
        EndIf
    EndIf
    $cbInfo = 0
    Return $ret
EndFunc   ;==>_GetComboInfo2
Func _InvalidateRect2($hwnd)
    Local $v_ret = DllCall("user32.dll", "int", "InvalidateRect", "hwnd", $hwnd, "ptr", 0, "int", 1)
    Return $v_ret[0]
EndFunc   ;==>_InvalidateRect2

Func _UpdateWindow2($hwnd)
    Local $v_ret = DllCall("user32.dll", "int", "UpdateWindow", "hwnd", $hwnd)
    Return $v_ret[0]
EndFunc   ;==>_UpdateWindow2
;;;ripped from help file.
; Convert the client (GUI) coordinates to screen (desktop) coordinates
Func ClientToScreen2($hwnd, ByRef $x, ByRef $y)
    Local $stPoint = DllStructCreate("int;int")
    DllStructSetData($stPoint, 1, $x)
    DllStructSetData($stPoint, 2, $y)
    DllCall("user32.dll", "int", "ClientToScreen", "hwnd", $hwnd, "ptr", DllStructGetPtr($stPoint))
    $x = DllStructGetData($stPoint, 1)
    $y = DllStructGetData($stPoint, 2)
    ; release Struct not really needed as it is a local
    $stPoint = 0
EndFunc   ;==>ClientToScreen2
Func _HiWord2($x)
    Return BitShift($x, 16)
EndFunc   ;==>_HiWord2

Func _LoWord2($x)
    Return BitAND($x, 0xFFFF)
EndFunc   ;==>_LoWord2



Func obliczeniabezp($iRow, $iCol, $newText, $sss = 0)

    For $ko = $kolumn + 2 To 2 Step -1
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $ko) = "Razem" Then ExitLoop
    Next
    Local $wart
    Local $iloscjm = 0
    Local $rok = ''
    Local $razem = 0
    Local $kfkd = True
    $pozycjai = 0

    For $i = 2 To $ko
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $i) = "wartość j.m" Then
            If $kfkd Then
                $pozycjai = $i

                $kfkd = False
            EndIf
            $wart = ''
            $iloscjm = 0
            $wart = StringReplace(StringReplace(StringTrimRight(_GUICtrlListView_GetItemText($__LISTVIEWCTRL, $iRow, $i), 2), ',', '.'), " ", "")
            ContinueLoop
        EndIf
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $i) = "ilość j.m" Then

            Local $dod = StringReplace(_GUICtrlListView_GetItemText($__LISTVIEWCTRL, $iRow, $i), " ", "")
            If $dod = '' Then $dod = 0
            $iloscjm += $dod

            If $i = $iCol Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $iCol) = "wartość j.m" Then

                Local $nowlasnieto = $dod * $wart

                $nowlasnieto = StringReplace($nowlasnieto, " ", "")
                $nowlasnieto = StringReplace($nowlasnieto, ".", ",")
                If StringInStr($nowlasnieto, " ") = 0 Then
                    Local $dl22 = StringLen($nowlasnieto)
                    Local $kohh = StringInStr($nowlasnieto, ",")
                    Local $wiadomo2 = 0
                    If $kohh <> 0 Then
                        $wiadomo2 = StringTrimLeft($nowlasnieto, $kohh)
                        $wiadomo2 = StringLen($wiadomo2) + 1
                    EndIf


                    For $hy = $dl22 - 3 - $wiadomo2 To 0 Step -3
                        If $hy > 0 Then
                            Local $left = StringLeft($nowlasnieto, $hy)
                            $nowlasnieto = StringTrimLeft($nowlasnieto, $hy)
                            $nowlasnieto = $left & " " & $nowlasnieto

                        EndIf
                    Next
                EndIf
                If StringInStr($nowlasnieto, ",") = 0 Then
                    $nowlasnieto = $nowlasnieto & ",00"
                    If $nowlasnieto = ',00' Then $nowlasnieto = "0,00"
                Else
                    Local $poz22 = StringInStr($nowlasnieto, ",")
                    Local $dl22 = StringLen($nowlasnieto)
                    If $dl22 - $poz22 = 1 Then $nowlasnieto = $nowlasnieto & "0"
                    If $dl22 - $poz22 = 0 Then $nowlasnieto = $nowlasnieto & "00"
                EndIf

                _GUICtrlListView_SetItemText($__LISTVIEWCTRL3, $iRow, $nowlasnieto & "zł", $i - $pozycjai + 2)
            EndIf

            If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $i + 1) <> "ilość j.m" Then
                $razem += $wart * $iloscjm
            EndIf
            ContinueLoop
        EndIf
    Next
    $razem = StringReplace($razem, " ", "")
    $razem = StringReplace($razem, ".", ",")
    If StringInStr($razem, " ") = 0 Then
        Local $dl22 = StringLen($razem)
        Local $kohh = StringInStr($razem, ",")
        Local $wiadomo2 = 0
        If $kohh <> 0 Then
            $wiadomo2 = StringTrimLeft($razem, $kohh)
            $wiadomo2 = StringLen($wiadomo2) + 1
        EndIf


        For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
            If $i > 0 Then
                Local $left = StringLeft($razem, $i)
                $razem = StringTrimLeft($razem, $i)
                $razem = $left & " " & $razem

            EndIf
        Next
    EndIf

    If StringInStr($razem, ",") = 0 Then
        $razem = $razem & ",00"
        If $razem = ',00' Then $razem = "0,00"
    Else
        Local $poz22 = StringInStr($razem, ",")
        Local $dl22 = StringLen($razem)
        If $dl22 - $poz22 = 1 Then $razem = $razem & "0"
        If $dl22 - $poz22 = 0 Then $razem = $razem & "00"
    EndIf

    _GUICtrlListView_SetItemText($__LISTVIEWCTRL, $iRow, $razem & "zł", $ko)

    ; dalej
    Local $sumowanie = 0
    Local $qoq = 0
    $kosztybezpbezcf = 0
    For $s = 2 To _GUICtrlListView_GetItemCount($__LISTVIEWCTRL) + 1
        $qoq = StringTrimRight(StringReplace(StringReplace(_GUICtrlListView_GetItemText($__LISTVIEWCTRL, $s, $ko), " ", ""), ',', '.'), 2)
        If $qoq = '' Then $qoq = 0
        $sumowanie += $qoq
        If _GUICtrlListView_GetItemText($__LISTVIEWCTRL, $s, 2) = "TAK" Then
            $kosztybezpbezcf += $qoq
        EndIf
    Next

    $sumowanie = StringReplace($sumowanie, " ", "")
    $sumowanie = StringReplace($sumowanie, ".", ",")
    If StringInStr($sumowanie, " ") = 0 Then
        Local $dl22 = StringLen($sumowanie)
        Local $kohh = StringInStr($sumowanie, ",")
        Local $wiadomo2 = 0
        If $kohh <> 0 Then
            $wiadomo2 = StringTrimLeft($sumowanie, $kohh)
            $wiadomo2 = StringLen($wiadomo2) + 1
        EndIf


        For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
            If $i > 0 Then
                Local $left = StringLeft($sumowanie, $i)
                $sumowanie = StringTrimLeft($sumowanie, $i)
                $sumowanie = $left & " " & $sumowanie

            EndIf
        Next
    EndIf

    If StringInStr($sumowanie, ",") = 0 Then
        $sumowanie = $sumowanie & ",00"
        If $sumowanie = ',00' Then $sumowanie = "0,00"
    Else
        Local $poz22 = StringInStr($sumowanie, ",")
        Local $dl22 = StringLen($sumowanie)
        If $dl22 - $poz22 = 1 Then $sumowanie = $sumowanie & "0"
        If $dl22 - $poz22 = 0 Then $sumowanie = $sumowanie & "00"
    EndIf

    _GUICtrlListView_SetItemText($__LISTVIEWCTRL, 1, $sumowanie & "zł", $ko)
    $kosztybezp = $sumowanie

    For $i = $ko To $ko
        If $i = 1 Then
            ContinueLoop
        EndIf

        _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE_USEHEADER)
        $iHeader_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

        _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $LVSCW_AUTOSIZE)
        $iData_Width = _GUICtrlListView_GetColumnWidth($__LISTVIEWCTRL, $i)

        If $iHeader_Width > $iData_Width Then
            _GUICtrlListView_SetColumnWidth($__LISTVIEWCTRL, $i, $iHeader_Width)
        EndIf
    Next
EndFunc   ;==>obliczeniabezp

Func obliczanieraportu()










    Local $wart
    Local $kfkd = True
    Local $razem

    Local $gg2

    Local $kosztyposrednie = 0
    Local $ko = _GUICtrlListView_GetColumnCount($__LISTVIEWCTRL) - 1



    For $j = 3 To $ko - 1


        For $wiersz = 2 To _GUICtrlListView_GetItemCount($__LISTVIEWCTRL3) - 1

            If $jakiklikniety[$j][$wiersz] = True Then

                $jakiklikniety[$j][$wiersz] = False

                Local $a = _GUICtrlListView_GetItemText($__LISTVIEWCTRL, 0, $j)

                Local $b = 0
                Local $c = 0
                If StringInStr($a, 'warto') <> 0 Then

                    Local $jj = $j - $pozycjai + 3
                    For $susu = $jj To $jj + 13

                        If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, 0, $susu), '(') <> 0 Then
                            Local $wspolx3 = $wiersz
                            Local $wspoly3 = $susu

                            Local $dl22 = StringLen($B)
                            Local $kohh = StringInStr($b, ",")
                            Local $wiadomo2 = 0
                            If $kohh <> 0 Then
                                $wiadomo2 = StringTrimLeft($b, $kohh)
                                $wiadomo2 = StringLen($wiadomo2) + 1
                            EndIf


                            For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                If $i > 0 Then
                                    Local $left = StringLeft($b, $i)
                                    $b = StringTrimLeft($b, $i)
                                    $b = $left & " " & $b

                                EndIf
                            Next
                            If $b = '' Then $b = 0
                            If StringInStr($b, ",") = 0 Then
                                $b = $b & ",00"
                                If $b = ',00' Then $b = "0,00"
                            Else
                                Local $poz22 = StringInStr($b, ",")
                                Local $dl22 = StringLen($B)
                                If $dl22 - $poz22 = 1 Then $b = $b & "0"
                                If $dl22 - $poz22 = 0 Then $b = $b & "00"
                            EndIf
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL3, $wspolx3, $b & "zł", $wspoly3)


                            Local $d = 0

                            ; tutaj obliczanie kazdego cella od gory do dolu

                            For $kj = $wiersz - 1 To 0 Step -1

                                If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $kj, 0), '--') <> 0 Then

                                    Local $wspolx2 = $kj
                                    Local $wspoly2 = $susu
                                    ExitLoop
                                EndIf
                                $d = $d + StringReplace(StringReplace(StringTrimRight(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $kj, $susu), 2), ',', '.'), " ", "")

                            Next
                            $d = $d + StringReplace(StringReplace(StringTrimRight(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $wiersz, $susu), 2), ',', '.'), " ", "")
                            For $kj = $wiersz + 1 To 200
                                If StringInStr(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $kj, 0), '--') <> 0 Or _GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $kj, 0) = '' Then ExitLoop
                                $d = $d + StringReplace(StringReplace(StringTrimRight(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $kj, $susu), 2), ',', '.'), " ", "")

                            Next
                            $d = StringReplace($d, ".", ",")

                            Local $dl22 = StringLen($d)
                            Local $kohh = StringInStr($d, ",")
                            Local $wiadomo2 = 0
                            If $kohh <> 0 Then
                                $wiadomo2 = StringTrimLeft($d, $kohh)
                                $wiadomo2 = StringLen($wiadomo2) + 1
                            EndIf


                            For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                If $i > 0 Then
                                    Local $left = StringLeft($d, $i)
                                    $d = StringTrimLeft($d, $i)
                                    $d = $left & " " & $d

                                EndIf
                            Next
                            If $d = '' Then $d = 0
                            If StringInStr($d, ",") = 0 Then
                                $d = $d & ",00"
                                If $d = ',00' Then $d = "0,00"
                            Else
                                Local $poz22 = StringInStr($d, ",")
                                Local $dl22 = StringLen($d)
                                If $dl22 - $poz22 = 1 Then $d = $d & "0"
                                If $dl22 - $poz22 = 0 Then $d = $d & "00"
                            EndIf
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL3, $wspolx2, $d & "zł", $wspoly2)
                            ;koniec obliczania od gora dol

                            ;tera obliczanie tego na dole zeby

                            Local $razemjazda = 0
                            For $szz = 1 To $liczebka[0] Step 2
                                For $haha = $liczebka[$szz] - 1 To $liczebka[$szz] - 1
                                    $razemjazda = $razemjazda + StringReplace(StringReplace(StringTrimRight(_GUICtrlListView_GetItemText($__LISTVIEWCTRL3, $haha, $susu), 2), ',', '.'), " ", "")
                                Next
                            Next
                            $razemjazda = StringReplace($razemjazda, ".", ",")

                            Local $dl22 = StringLen($razemjazda)
                            Local $kohh = StringInStr($razemjazda, ",")
                            Local $wiadomo2 = 0
                            If $kohh <> 0 Then
                                $wiadomo2 = StringTrimLeft($razemjazda, $kohh)
                                $wiadomo2 = StringLen($wiadomo2) + 1
                            EndIf


                            For $i = $dl22 - 3 - $wiadomo2 To 0 Step -3
                                If $i > 0 Then
                                    Local $left = StringLeft($razemjazda, $i)
                                    $razemjazda = StringTrimLeft($razemjazda, $i)
                                    $razemjazda = $left & " " & $razemjazda

                                EndIf
                            Next
                            If $razemjazda = '' Then $razemjazda = 0
                            If StringInStr($razemjazda, ",") = 0 Then
                                $razemjazda = $razemjazda & ",00"
                                If $razemjazda = ',00' Then $razemjazda = "0,00"
                            Else
                                Local $poz22 = StringInStr($razemjazda, ",")
                                Local $dl22 = StringLen($razemjazda)
                                If $dl22 - $poz22 = 1 Then $razemjazda = $razemjazda & "0"
                                If $dl22 - $poz22 = 0 Then $razemjazda = $razemjazda & "00"
                            EndIf
                            _GUICtrlListView_SetItemText($__LISTVIEWCTRL3, $liczebka[$liczebka[0] + 1] + 2,