AutoHotkey Community

It is currently May 26th, 2012, 8:54 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: July 18th, 2005, 8:50 pm 
Offline

Joined: April 19th, 2005, 10:26 am
Posts: 2249
Location: switzerland
LISTVIEW Examples
--------------------------------
here 5 examples
continue here ( in this thread ) with other examples :
http://www.autohotkey.com/forum/viewtop ... 078#491078

(thank you all for scripts and the nice program AHK)
Here an idea how to select column in listview and start program
doubleclick column3/4/5 starts URL, EMAIL,Program
once click see Name City (column1/2) below
to sort click column head
New Adress=Button AddNew
delete/change rows with text editor or in Excel
Code:
;-------- http://www.autohotkey.com/forum/topic4526.html&highlight=listview ---
;adress.ahk garry 2005-07-18
;doubleclick at column starts URL,EMAIL,PROGRAM
;one click see Name Adress below
#NoTrayIcon
F1=ADRESS.CSV
Gui, Color, 000000
Gui, Font,  S10 CDefault , FixedSys
ifnotexist,adress.csv
     {
     Fileappend,AUTOHOTKEYFORUM`;New York`;http://www.autohotkey.com/forum/`;Chris@1234ABCD.xy`;C:\program files\AutoHotkey\autohotkey.chm`r`n,%F1%
     Fileappend,SCOTTSERVER    `;Los Angeles`;http://www.scottserver.net/forum/`;scott@1234ABCD.xy`;`r`n,%F1%
     Fileappend,SLEEPY         `;Alabama`;http://sleepyssin.suddenlaunch3.com/`;sleepy@1234ABCD.xy`;`r`n,%F1%
     Fileappend,Streamripper   `;`;http://streamripper.sourceforge.net/`;`;`r`n,%F1%
     Fileappend,CANDLE         `;Oslo`;http://www.candles-weblog.us`;candle@1234ABCD.xy`;`r`n,%F1%
     Fileappend,WhizCat        `;Atlanta`;http://scottserver.net/whizware`;TOM@1234ABCD.xy`;`r`n,%F1%
     Fileappend,CORRUPT        `;Arkansas`;http://www.apps4apps.filetap.com/`;corrupt@1234ABCD.xy`;`r`n,%F1%
     }

T1=160       ;column1 width
T2=200       ;column2 width
T3=200       ;column3 width
T4=150       ;column4 width
T5=300       ;column5 width

T1A:=T1
T2A:=T1+T2
T3A:=T1+T2+T3
T4A:=T1+T2+T3+T4
T5A:=T1+T2+T3+T4+T5  ;listview width

T5B:=T5A+30          ;guishow width
T5C:=T5A-70          ;Position Button AddNew
T5D:=T5A-160         ;Position Button refresh

Gui,Add, ListView,grid r20 w%T5A% +hscroll altsubmit vMyListView gMyListView, Name|City|URL|EMAIL|Program
LV_ModifyCol(1,T1)
LV_ModifyCol(2,T2)
LV_ModifyCol(3,T3)
LV_ModifyCol(4,T4)
LV_ModifyCol(5,T5)

Gui, Font, S8 cwhite, Verdana
Gui, Add, Edit, x12 y355 w%T5A% h20 ReadOnly vC,
Gui,Add,Button, x%T5C% y378 w70 h20,AddNew
;Gui,Add,Button, x%T5D% y378 w70 h20,Refresh
gosub,LB1
Gui, Show, x2 y0 w%T5B% h400 ,LISTVIEW
return

LB1:
Gui,1:default
Gui,Listview,Mylistview
LV_Delete()
loop,read,%F1%
{
stringsplit,BX,A_LoopReadLine,`;,
LV_Add("",BX1,BX2,BX3,BX4,BX5)
}
return


buttonAddNew:
C1:=
C2:=
C3:=
C4:=
C5:=
GuiControl,,C1, %C1%
GuiControl,,C2, %C2%
GuiControl,,C3, %C3%
GuiControl,,C4, %C4%
GuiControl,,C5, %C5%
GuiControl,focus,C1

Gui,2:Font,  S10 CDefault , FixedSys

Gui,2:Add,Text, x1  y5   w80  h20,NAME
Gui,2:Add,Edit, x80 y5   w420 h20 vC1,%C1%


;Gui,2:Add,Text, x1  y35  w80  h20,CITY
;Gui,2:Add,Edit, x80 y35  w420 h20 vC2,%C2%

Gui,2:Add,Text, x1  y35  w80  h20,STATE
Gui,2:Add, DropDownList,x80 y35 w420 vC2, Arizona|Arkansas|Texas|Alabama|Oklahoma


Gui,2:Add,Text, x1  y65  w80  h20,URL
Gui,2:Add,Edit, x80 y65  w420 h20 vC3,%C3%

Gui,2:Add,Text, x1  y95  w80  h20,EMAIL
Gui,2:Add,Edit, x80 y95  w420 h20 vC4,%C4%

Gui,2:Add,Text, x1  y125 w80  h20,PROGRAM
Gui,2:Add,Edit, x80 y125 w420 h20 vC5,%C5%

Gui,2:Add, Button, x390 y150 w70 h25, CLEAR
Gui,2:Add, Button, x470 y150 w70 h25, CANCEL
Gui,2:Add, Button, x550 y150 w40 h25, OK
Gui,2:Show, x2 y402 w600 h180,ADRESS-INPUT
return
2ButtonOK:
2GuiClose:
2GuiEscape:
Gui,2:submit
IF C1=
{
Gui destroy
return
}
FILEAPPEND,%C1%;%C2%;%C3%;%C4%;%C5%`r`n,%F1%
gosub,LB1
2ButtonCancel:
Gui,2: destroy
return


2ButtonClear:
C1:=
C2:=
C3:=
C4:=
C5:=
GuiControl,,C1, %C1%
GuiControl,,C2, %C2%
GuiControl,,C3, %C3%
GuiControl,,C4, %C4%
GuiControl,,C5, %C5%
GuiControl,focus,C1
Return



ButtonRefresh:
LV_Delete()
loop,read,%F1%
{
stringsplit,BX,A_LoopReadLine,`;,
LV_Add("",BX1,BX2,BX3,BX4,BX5)
}
return


MyListView:
GuiControlGet, MyListView
if A_GuiEvent = Normal
{
LV_GetText(C1,A_EventInfo,1)
LV_GetText(C2,A_EventInfo,2)
GuiControl, ,C,%C1% %C2%
}

if A_GuiEvent = DoubleClick
{
MouseGetPos,x,y
 {

if x<%T1A%
return

if x<%T2A%
return

if x<%T3A%
  {
LV_GetText(C3,A_EventInfo,3)
run,%C3%
return
  }

if x<%T4A%
  {
DATES=%A_DD%-%A_MM%-%A_YYYY%
LV_GetText(C4,A_EventInfo,4)
stringsplit,CX,C4,`@,
run,mailto:%C4%?subject=Message Titel %DATES%&Body=Hallo %CX1%`%0a`%0dHow are you ?`%0AI send you this message now....`%0ANext line...
;run,mailto:%C4%?subject=Greetings&Body=Hallo %CX1%
return
  }

if x<%T5A%
  {
LV_GetText(C5,A_EventInfo,5)
run,%C5%
return
  }
 }
}
return

GuiClose:
ExitApp






===========================================================
2nd example:
-select Listbox (file)
-see in Listview (content)

;-- edit
; delete multiple marked rows
; add


Code:
;--------- script from Thalon / how to delete multiple marked rows  ---
;--------- LISTVIEW EXAMPLE -------------------------------------------
;-- edit
;   delete multiple marked rows
;   add
;----------------------------------------------------------------------

R3C=%A_scriptDir%\_CSV
ifnotexist,%R3C%
   FileCreateDir,%R3C%

RM1=%A_scriptDir%\_CSV\EX1.csv
  ifnotexist,%RM1%
   {
   fileappend,Mathe-01`,http://archives.math.utk.edu/popmath.html`,Mathematik Examples-1`r`n,%RM1%
   fileappend,Mathe-02`,http://www.cut-the-knot.org/index.shtml`,Mathematik Examples-2`r`n,%RM1%
   }

RM2=%A_scriptDir%\_CSV\EX2.csv
  ifnotexist,%RM2%
   {
   fileappend,Autohotkey`,http://www.autohotkey.com/forum/index.php`r`n,%RM2%
   fileappend,Puzzle games`,http://www.chiark.greenend.org.uk/~sgtatham/puzzles/`r`n,%RM2%
   }

Gui,1:Font,S13 CDefault,Lucida Console
Gui,1:Add, ListView,backgroundteal csilver grid r10 x110 y0 w480 +hscroll altsubmit gLW2, Name|URL1
 LV_ModifyCol()
Gui,1:Show,x0 y0 w600 h260,Listview_Example01                               Edit=F12            DELETE=Rightclick
Gui,1:add,Listbox,x5 y10 w100 h200 Sort vLB1 gLB
Loop,%R3C%\*.csv
    {
    FX=%A_LoopFileName%
    stringlen,L1,FX
    stringmid,FA,FX,1,L1-4
    GuiControl,,LB1,%FA%
    }
GuiControl, ChooseString, LB1, %FA%
Gui,1:Font,  S10 CDefault , FixedSys
Gui,1:Add,Button,gAddUrl x5 y230 w120 h20,AddUrl
;=============================================================================
LB:
Gui, 1:Default
Gui,1:Submit,nohide
LV_Delete()
LV_ModifyCol(1,220)
LV_ModifyCol(2,220)
F2=%R3C%\%LB1%.csv

loop,read,%F2%
  {
  BX1=
  BX2=
  stringsplit,BX,A_LoopReadLine,`,,
  LV_Add("",BX1,BX2)
  }
return
;==============================================================
AddUrl:
if LB1=
  {
  msgbox,select first a genre (EX1, EX2 ....)
  return
  }

GuiControl,2:Focus,Name
Gui,2:Font,  S10 CDefault , FixedSys
Gui,2:Add,Text, x1 y5 w80 h20, NAME
Gui,2:Add,Edit,   x80 y5 w500 h20 vA21, %A21%
Gui,2:Add,Text,   x1  y30 w80  h20, URL1
Gui,2:Add,Edit,   x80 y30 w500 h20 vA22, %A22%
Gui,2:Add, Button, x550 y80 w40 h25, OK
Gui,2:Show, x2 y385 w600 h100, URL-INPUT
return
;---------------------------------------
2GuiClose:
2GuiEscape:
return

2ButtonOK:
Gui,2:submit
if A21=
  {
  Gui,2: Destroy
  return
  }
FILEAPPEND, %A21%`,%A22%`r`n,%F2%
Gui,2: Destroy
GoSub, LB         ;update LV
return
;============================================================
LW2:
Gui, Submit,nohide
if A_GuiEvent = Normal
  {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()
  Goto,SK12
  }

;----------------------------
SK12:
if A_GuiEvent=K

{
GetKeyState,state,F12
if state=D
 {
if LB1=
   {
   msgbox,select first a genre (EX1 or EX2....)
   return
   }

GuiControl,3:Focus,Name
Gui,3:Font,  S10 CDefault , FixedSys
Gui,3:Add,Text, x1 y5 w80 h20, NAME
Gui,3:Add,Edit,  x80 y5 w500 h20 vA31, %C1%
Gui,3:Add,Text,  x1  y30 w80  h20, URL1
Gui,3:Add,Edit,   x80 y30 w500 h20 vA32, %C2%
Gui,3:Add, Button, x550 y80 w40 h25, OK
Gui,3:Show, x2 y385 w600 h100, URL-INPUT
return
;---------------------------------------
3GuiClose:
3GuiEscape:
Gui, 3:Destroy
return
3ButtonOK:
Gui,3:submit
if A31=
   {
   Gui,3: Destroy
   return
   }

FileRead, FileContent, %R3C%\%LB1%.csv
FileDelete, %R3C%\%LB1%.csv
StringReplace, FileContent, FileContent, %C1%`,%C2%, %A31%`,%A32%
FileAppend, %FileContent%, %R3C%\%LB1%.csv
GoSub, LB

Goto,3guiclose
 }
}


;============== PLAY =========
if A_GuiEvent = DoubleClick
   {
   run,%C2%
   return
   }
;--------- DELETE multiple marked rows ---------------------
if A_GuiEvent = RightClick
{
C1 =
RF = 0
RFL =
Loop
   {
   RF:=LV_GetNext(RF)
   if RF=0
      {
      ;msgbox,Select a row
      break
      }
   RFL = %RF%|%RFL%
   LV_GetText(C1_Temp, RF, 1)
   C1 = %C1%`n%C1_Temp%
  }

if C1 !=
 {
   MsgBox, 4, ,Want you really delete %C1% ?
   IfMsgBox,No
      Return
   Else
   {
      Loop, parse, RFL, |
       {
       LV_Delete(A_LoopField)
       }

     filedelete,%F2%
     Loop % LV_GetCount()
        {
        BX1=
        BX2=
        LV_GetText(BX1,A_INDEX,1)
        LV_GetText(BX2,A_INDEX,2)
        fileappend,%BX1%`,%BX2%`r`n,%F2%
       }

   }
      C1=
      C2=
 }
return
}

;----------------------------
return
GuiClose:
ExitApp






========= 3rd EXAMPLE MP3PLAY FWD/BACK SEARCH =================


Code:
;==============================================================
MODIFIED=20090103
NAME1   =TEST MP3PLAY LISTVIEW FWD/BACK SEARCH
;==============================================================

;F1=%A_scriptdir%\test55.txt
Gui,1:default
Gui,1:Font,S10 cDefault, Verdana

RF:=1

T1=500       ;column1 width
T2=0         ;column2 width
T3=70        ;column3 width
T4=50        ;column4 width

  Gui,1:Add ,  Edit,   x400  y570   w195 h20 vURLX gSEARCH1
  Gui,1:Add,Button,default x0  y0 w0   h0  gSEARCH1 ,

  ;Gui,1:Add ,  Edit,   x280  y570   w195 h20 vURLX gSEARCH2
  ;Gui,1:Add,Button,default x0  y0 w0   h0  gSEARCH2 ,

Gui,1:Add,Button,x10   y570  w70  h25  gBACKWARD ,<<
Gui,1:Add,Button,x90   y570  w70  h25  gFORWARD  ,>>

Gui,1:Add ,  Edit,   x200  y570  w70 h25 vTOT1 ,
Gui,1:Add ,  Edit,   x290  y570  w70 h25 vPOS1 ,


Gui,1:Add, ListView,x10 y10 h480 w660 grid +hscroll nosorthdr altsubmit vMLV1A gMLV1B, NAME|FULLPATH|SIZE|NR
  LV_ModifyCol(1,T1)
  LV_ModifyCol(2,T2)
  LV_ModifyCol(3,T3)
  LV_ModifyCol(4,T4)

gosub,SB

GuiControl,1:Text,TOT1,%GC%           ;show total
GuiControl,1:Text,POS1,%RF%           ;show position
Gui,1:Show, x2 y0 w680 h600,TEST MP3PLAY
return
;-------------------------------

SB:
Gui,1:ListView,MLV1A
LV_Delete()
I=0
Loop, %A_desktop%\*.mp3, 0, 1
  {
  I++
  ;Lv_Add("", A_LoopFileName,A_LoopFileSizeKB,A_LoopFileTimeModified,A_LoopFileTimeCreated, A_LoopFileTimeAccessed,A_LoopFileAttrib, A_LoopFileFullPath)
  Lv_Add("", A_LoopFileName,A_LoopFileFullPath,A_LoopFileSizeKB,I)
  }

  GC:=LV_GetCount()
  LV_ModifyCol(3,"integer")
  LV_ModifyCol(4,"integer")
  LV_Modify(LV_GetCount(), "Vis")
return

/*
LV_Delete()
  loop,read,%F1%
   {
  stringsplit,C,A_LoopReadLine,`;,
  LV_Add("",C1,C2,C3)
   }
return
*/

;=================================================


;================== FORWARD =======================
FORWARD:
Gui,1:submit,nohide
Gui,1: ListView,MLV1A

SoundPlay, Nonexistent.avi

       if (RF=(GC))
          {
          RF:=(GC)
          LV_GetText(C2,RF,2)
          SoundPlay,%C2%
          msgbox,,,PLAYS LAST,2
          return
          }

        LV_Modify(RF, "-Select -Focus")
        RF:=(RF+1)
        LV_Modify(RF, "+Select +Focus")
        LV_GetText(C2,RF,2)
        GuiControl,1:Text,POS1,%RF%
        SoundPlay,%C2%
return
;===================================================




;================== BACKWARD =======================
BACKWARD:
Gui,1:submit,nohide
Gui,1: ListView,MLV1A
 SoundPlay, Nonexistent.avi
       if RF=1
          {
          LV_Modify(1, "+Select +Focus")
          LV_GetText(C2,RF,2)
          SoundPlay,%C2%
          msgbox,,,PLAYS FIRST,2
          return
          }

        LV_Modify(RF, "-Select -Focus")
        RF:=(RF-1)
        LV_Modify(RF, "+Select +Focus")

        LV_GetText(C2,RF,2)
        GuiControl,1:Text,POS1,%RF%
        SoundPlay,%C2%

return
;===================================================



;---- SEARCH first example ---------------
SEARCH1:
Gui,1:submit,nohide
if URLX=
   gosub,SB
   RF:=LV_GetNext("F")
   RF:=1
   Loop % LV_GetCount()
      {
      LV_GetText(C1,RF,1)
      LV_GetText(C2,RF,2)
      LV_GetText(C3,RF,3)
      CX=%C1% %C2% %C3%
       ifinstring,CX,%URLX%
        {
        RF:=(RF+1)
        continue
         }
      LV_Delete(RF)
      }
 return


;--- second example reads a file ----
SEARCH2:
Gui,1:submit,nohide
LV_Delete()
loop,read,%F1%
  {
  LR=%A_loopreadline%
  stringsplit,C,LR,`;,
  CX=%C1% %C2% %C3%
  ifinstring,CX,%URLX%
       {
       LV_Add("",C1,C2,C3)
       }
  }
return

;-----------------------------------------------
MLV1B:
Gui,1:Submit,nohide
Gui,1:ListView,MLV1A

    RN:=LV_GetNext("C")
    RF:=LV_GetNext("F")
    GC:=LV_GetCount()

if A_GuiEvent=normal
{
    LV_GetText(C2,A_EventInfo,2)
    GuiControl,1:Text,POS1,%RF%
    soundplay,%C2%
    return
}
return
;================================================

Guiclose:
exitapp



================= 4th EXAMPLE =============================
4th Example Search in a TextFile ( and UP / DOWN )

Code:
;===============================================================
MODIFIED=20100310
;-- NAME1   =TEST LISTVIEW FWD/BACK SEARCH  File
;-- http://www.autohotkey.com/forum/topic4526.html   4th example
;===============================================================

NAME1=LV_TEST
F1=%A_scriptdir%\LV_TestFile.txt
F2=%A_scriptdir%\PrintListview.txt

Gui,1:default
Gui,1:Font,S10 cDefault, Verdana

;------- create a test-file ----
EF=`r
ifnotexist,%F1%
{
 AA=
(
Line1A;1AA;1AAA;1AAAA%EF%
Line2B;2BB;2CCC;2DDDD%EF%
Line3A;3BB;3TEST;3DDDD%EF%
Line4A;4BB;4TEST;4DDDD%EF%
Line5A;5BB;5CCC;5DDDD%EF%
)
Fileappend,%AA%`n,%F1%
}
;---------------------------------

RSSINI =%A_scriptdir%\LV_TEST_INI.txt
ifnotexist,%RSSINI%
   IniWrite,EMPTY    , %RSSINI%  ,srccfile  , KEY1

     ;--------------- SETTINGS MENU ----------------
     menu ,S1 ,Add,&Source          ,MH1
     menu, myMenuBar, Add, SELECT SOURCE FILE  ,:S1
gui,1:menu,MyMenuBar
;----------------------------------------------------


LSW:=(T1+T2+T3+T4+20)    ;Listview width
GSW:=(LSW+30)            ;GUI      width

Gui,1:Add ,  Edit,   x10  y430   w195 h20 vURLX gSEARCH2
Gui,1:Add,Button,default x0  y0 w0   h0  gSEARCH2 ,

Gui,1:Add,Button,x10   y470  w70  h25  g<<  ,<<
Gui,1:Add,Button,x90   y470  w70  h25  g>>  ,>>
Gui,1:Add,Button,x350  y430  w70  h25  gPrintlv  ,PrintLV


Gui,1:Add ,  Edit,   x200  y470  w70 h25 vTOT1 ,
Gui,1:Add ,  Edit,   x290  y470  w70 h25 vPOS1 ,


T1=200       ;column1 width
T2=100       ;column2 width
T3=100       ;column3 width
T4=100       ;column4 width

T1A:=T1
T2A:=T1+T2
T3A:=T1+T2+T3
T4A:=T1+T2+T3+T4

LSW:=(T1+T2+T3+T4+20)    ;Listview width
GSW:=(LSW+30)            ;GUI      width

IniRead,AA1,  %RSSINI%  ,SrccFile  , KEY1
Gui,1:Add,   Edit,   x10   y0  w%LSW%  h20  vSRC2  ,%aa1%        ;show selected file

Gui,1:Add, ListView,x10 y30 h380 w%LSW%  -hdr  grid +hscroll nosorthdr altsubmit vMLV1A gMLV1B, AA|BB|CC|DD
  LV_ModifyCol(1,T1)
  LV_ModifyCol(2,T2)
  LV_ModifyCol(3,T3)
  LV_ModifyCol(4,T4)

gosub,SB

Gui,1:Show, x2 y0 w%GSW% h510,%name1%
return
;-------------------------------

SB:
Gui,1:ListView,MLV1A
IniRead,F1,   %RSSINI%  ,SrccFile  , KEY1
GuiControl,1:text,src2,%F1%
R=0
LV_Delete()
  loop,read,%F1%
  {
  R++
  stringsplit,C,A_LoopReadLine,`;,
  LV_Add("",C1,C2,C3,C4)
  }

GC:=LV_GetCount()
LV_Modify(LV_GetCount(), "Vis")    ;jumps to last row
LV_Modify(GC, "+Select +Focus")    ;focus last row
GuiControl,1:Text,TOT1,%GC%
GuiControl,1:Text,POS1,%R%           ;show position
return

;=================================================



MH1:
MF=
FileSelectFile, MF, 3,%A_Scriptdir%, Bitte wählen Sie Katalog, Text Documents (*.csv; *.txt; *.doc)
if MF=
   return
IniWrite,%mf%    , %RSSINI%  ,srccfile      , KEY1
gosub,SB
return
;---------------------------------------------------------------------




;============== PRINTLV =========================
PRINTLV:
Gui,1:submit,nohide
Gui,1:ListView, A1
ifexist,%F2%
  filedelete,%F2%

RF:=1
GD:=LV_GetCount()

 loop,%gd%
 {
    I2++
     LV_GetText(C1,RF,1)
     LV_GetText(C2,RF,2)
     LV_GetText(C3,RF,3)
     LV_GetText(C4,RF,4)
     Fileappend,%C1%`;%C2%`;%C3%`;%C4%`r`n,%F2%
     RF:=(RF+1)
  }
run,%F2%
return
;=============== END PRINTLV ===================

;================== FORWARD =======================
>>:
Gui,1:submit,nohide
Gui,1: ListView,MLV1A
       if (RF=(GC))
          {
          RF:=(GC)
          LV_GetText(C1,RF,1)
          msgbox, 262208, Forward, Reached END`n%C1% , 2
          return
          }

        LV_Modify(RF, "-Select -Focus")
        RF:=(RF+1)
        LV_Modify(RF, "+Select +Focus")
        LV_GetText(C1,RF,1)
        GuiControl,1:Text,POS1,%RF%
return
;===================================================


;================== BACKWARD =======================
<<:
Gui,1:submit,nohide
Gui,1: ListView,MLV1A
       if RF=1
          {
          LV_Modify(1, "+Select +Focus")
          LV_GetText(C1,RF,1)
          msgbox, 262208, Backward, Reached FirstRow`n%C1% , 2
          return
          }

        LV_Modify(RF, "-Select -Focus")
        RF:=(RF-1)
        LV_Modify(RF, "+Select +Focus")
        LV_GetText(C1,RF,1)
        GuiControl,1:Text,POS1,%RF%
return
;===================================================


;--- second example reads a file ----
SEARCH2:
Gui,1:submit,nohide
LV_Delete()
loop,read,%F1%
  {
  LR=%A_loopreadline%
  stringsplit,C,LR,`;,
  CX=%C1% %C2% %C3% %C4%
  ifinstring,CX,%URLX%
       LV_Add("",C1,C2,C3,C4)
  LV_Modify(GC, "+Select +Focus")
  }
return

;-----------------------------------------------
MLV1B:
Gui,1:Submit,nohide
Gui,1:ListView,MLV1A
    RN:=LV_GetNext("C")
    RF:=LV_GetNext("F")
    GC:=LV_GetCount()

if A_GuiEvent=normal
    {
    LV_GetText(C1,A_EventInfo,1)
    GuiControl,1:Text,POS1,%RF%
    ;msgbox, 262208, NORMAL, %C1% , 2
    return
    }

 ; ARROW KEYS UP / DOWN
 if A_GuiEvent=K
 {
 If GetKeyState("UP","P")
    {
    LV_GetText(C1,RF,1)
    GuiControl,1:Text,POS1,%RF%
    if RF=1
      {
      msgbox, 262208, Backward, Reached FirstRow`n%C1% , 1
      return
      }
    msgbox, 262208, UP, %C1% , 1
    }

 If GetKeyState("DOWN","P")
    {
    LV_GetText(C1,RF,1)
    GuiControl,1:Text,POS1,%RF%
    if (RF=(GC))
       {
       RF:=(GC)
       msgbox, 262208, Forward, Reached LastLine`n%C1% , 1
       return
       }
    msgbox, 262208, DOWN, %C1% , 1
    }
 }


if A_GuiEvent = Doubleclick
{
if (RN=0 or RN="")
   return
MouseGetPos,x,y
 {
if x<%T1A%
   {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)
  LV_GetText(C4,A_EventInfo,4)
  if C1=
     return
  ControlGet, List, List, Selected, SysListView321,%name1%
  Loop, Parse, List, `;
    {
    Loop, Parse, A_LoopField, %A_Tab%
       {
        A=%A_INDEX%
        if A=1
            MsgBox, ROW=#%RN%  COL=#%A_Index%`nC1=%C1%`nC2=%C2%`nC3=%C3%`nC4=%C4%`nA_Loopfield=%A_LoopField%
        }
    }
  return
   }

if x<%T2A%
   {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)
  LV_GetText(C4,A_EventInfo,4)
   if C2=
     return
  ControlGet, List, List, Selected, SysListView321,%name1%
  Loop, Parse, List, `;
    {
    Loop, Parse, A_LoopField, %A_Tab%
       {
        A=%A_INDEX%
        if A=2
            MsgBox, ROW=#%RN%  COL=#%A_Index%`nC1=%C1%`nC2=%C2%`nC3=%C3%`nC4=%C4%`nA_Loopfield=%A_LoopField%
        }
    }
  return
   }


if x<%T3A%
   {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)
  LV_GetText(C4,A_EventInfo,4)
  if C3=
     return
  ControlGet, List, List, Selected, SysListView321,%name1%
  Loop, Parse, List, `;
    {
    Loop, Parse, A_LoopField, %A_Tab%
       {
        A=%A_INDEX%
        if A=3
            MsgBox, ROW=#%RN%  COL=#%A_Index%`nC1=%C1%`nC2=%C2%`nC3=%C3%`nC4=%C4%`nA_Loopfield=%A_LoopField%
        }
    }
  return
   }



if x<%T4A%
   {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)
  LV_GetText(C4,A_EventInfo,4)
  if C4=
     return
  ControlGet, List, List, Selected, SysListView321,%name1%
  Loop, Parse, List, `;
    {
    Loop, Parse, A_LoopField, %A_Tab%
       {
        A=%A_INDEX%
        if A=4
            MsgBox, ROW=#%RN%  COL=#%A_Index%`nC1=%C1%`nC2=%C2%`nC3=%C3%`nC4=%C4%`nA_Loopfield=%A_LoopField%
        }
    }
  return
   }


 }
}
return
;================================================

Guiclose:
exitapp
;======================= ENDE =======================


5th example
Listview adress order

-adress listview
-product listview

create adress, click column order, check what you want
quick change quantity > doubleclick,overwrite,enter
create an order file

-modify
-addnew
-delete

Code:
MODIFIED=20100315
CREATED =20100313

;===================================================================
/*
TAG=2Listview Listview Edit Add Delete Multiple Lines

-- no CELL EDIT but quick change Quantity (doubleclick, overwrite, enter)

-adress    1st Listview
-product   2nd Listview

-AddNew
-Modify
-Delete multiple marked lines

*/
;===================================================================


#NoTrayIcon
autotrim,off
setworkingdir, %A_scriptdir%
SetBatchlines -1
SendMode Input

;-------------- BLOCK GUI-1 SHOW --------------------------
Filename1=LV_ADRESS     [Rightclick column to EDIT]
setformat,float,0.2

Gui,1:default
Gui,1:Color, 000000
Gui,1:Font,  S10 CDefault , FixedSys

F1=%A_scriptdir%\Adress.txt
F2=%A_scriptdir%\Adress_checked.txt

transform,S,chr,32
VARN00=%S%
VARN01=PRIVAT
VARN02=FIRMA1
VARN03=FIRMA2


;----- for test ----
;Filedelete,%F1%
ifnotexist,%f1%
{
e4=
(
2010-03-10;%varn01%;20100310141522;Meier Walter Herr;Berlin,Dammstrasse 12;Bezahlt;;0`r
2010-03-07;%varn02%;20100307220947;Muller Werner Herr;Frankfurt,Mainstrasse 97;;;1`r
2010-03-09;%varn03%;20100309104534;Schmutz Harry Herr;Luedenscheid,Erfurtestrasse 4;;;0`r
2010-03-08;%varn01%;20100308175255;Hohler Franz Herr;Hamburg,Hafenstrasse 18;Bezahlt;;1`r
2010-03-07;%varn02%;20100307190712;Merkel Franziska Frau;CH-8000 Zurich,Bahnhofstrasse 48;;;0`r
)
Fileappend,%e4%`n,%F1%
}


T1=120       ; DATE
T2=130       ; Privat
T3=150       ; KDNR
T4=100       ; Name
T5=100       ; City
T6=60        ; Bezahlt
T7=100       ; Order
T8=0         ; Checked

T1A:=T1
T2A:=T1+T2
T3A:=T1+T2+T3
T4A:=T1+T2+T3+T4
T5A:=T1+T2+T3+T4+T5
T6A:=T1+T2+T3+T4+T5+T6
T7A:=T1+T2+T3+T4+T5+T6+T7
T8A:=T1+T2+T3+T4+T5+T6+T7+T8


LSW:=(T1+T2+T3+T4+T5+T6+T7+T8+20)
GSW:=(LSW+35)
Gui,1:Add, ListView,grid r17 w%LSW% +hscroll altsubmit checked vMLV1 gMLV2, DATE|FIRMA|KDNR-[X]|Name|City|Bezahlt|Order-[X]|Checked
  LV_ModifyCol(1,T1)
  LV_ModifyCol(2,T2)
  LV_ModifyCol(3,T3)
  LV_ModifyCol(4,T4)
  LV_ModifyCol(5,T5)
  LV_ModifyCol(6,T6)
  LV_ModifyCol(7,T7)
  LV_ModifyCol(8,T8)

  ;LV_ModifyCol(1,"Integer")

  Gui,1:Font, S8 cwhite,FixedSys
  Gui,1:Add, Edit, x12 y325 w%LSW% h20 ReadOnly vC,

  Gui,1:Add, Edit, cBlue x12 y350 w200 h20  vSEARCH1 gSEARCH1,
  Gui,1:Font, S8 cDefault,Verdana

  ;Gui,1:Add,Button, x400    y350 w120  h20 gALLE1      ,SHOWALL
  Gui,1:Add,Button, x400    y380 w120  h20 gPrintCK1   ,PRINT-Checked
  Gui,1:Add,Button, x400    y410 w120  h20 gPrintLV1   ,PRINT-LV
  ;Gui,1:Add,Button, x400    y440 w120  h20 g2ndLV      ,2ND-LV


  Gui,1:Add,Text  , x20    y380 w50 h20 cWhite, Alle
  Gui,1:Add,Text  , x70    y380 w50 h20 cWhite, Checked
  Gui,1:Add,Text  , x140   y380 w50 h20 cWhite, Bezahlt
  Gui,1:Add,Edit  , x10    y405 w50 h20 vIX1 cBlack right,     ;I alle
  Gui,1:Add,Edit  , x70    y405 w50 h20 vIX2 cBlack right,     ;I checked
  Gui,1:Add,Edit  , x130   y405 w50 h20 vIX3 cBlack right,     ;I bezahlt


  Gui,1:Add,Button, x1      y500 w90   h20 gAddNew1 vAddNew1 ,AddNew
  Gui,1:Add,Button, x100    y500 w90   h20 gDelete1 vDelete1 ,Delete

  Gui,1:Add,Button, x230    y500 w90   h20 gSelectall        ,Selectall
  Gui,1:Add,Button, x330    y500 w90   h20 gDeSelectall      ,DeSelectall
  ;Gui,1:Add,Button, x430    y500 w120  h20 gSaveChecked vSaveChecked1   ,Save-Checked

  ;Gui,1:Add,Button, x690    y465 w90 h20 gClearBez        ,CLRBEZ    ;clear alle bezahlte


  ; Gui,1:Add, MonthCal ,x10   y495 w190 h160 ,
  ;Gui,1:Add,DateTime    ,x10   y495 w110 h22 vMydate2 gDatecalc,
gosub,LB
;GSW:=800
Gui,1:Show, x2 y0 w%GSW% h560,%filename1%
return
;-------------- END BLOCK GUI-1 SHOW --------------------------

;------------------ BLOCK READ LV-1 adress -------------------
LB:
Gui,1:default
Gui,1:submit,nohide
GuiControl,1:Enable,AddNew1
GuiControl,1:Enable,Delete1
;GuiControl,1:Enable,SaveChecked1
I1=0
I3=0
LV_Delete()
  loop,read,%F1%
   {
   stringsplit,C,A_LoopReadLine,`;,

   VarOut := C6
     if VarOut is not space        ;bezahlt
       I3++

   I1++
   LV_Add("",C1,C2,C3,C4,C5,C6,C7,C8)

   LV_GetText(B8,I1,8)
   if B8=1
        LV_Modify(I1, "check")
   }

;LV_ModifyCol(1, "SortAsc")
;LV_ModifyCol(1, "Logical SortAsc")
;LV_ModifyCol(1,"integer")
LV_ModifyCol(1, "Sort")
LV_Modify(LV_GetCount(), "Vis")
GuiControl,1:,IX1,%I1%
GuiControl,1:,IX3,%I3%
return
;------------------ END BLOCK READ LV-1 adress ------------------------


;----------------- BLOCK GUI-1 close -----------
Guiclose:
gosub,savechecked
exitapp
;----------------- END BLOCK GUI-1 close -------


;-------------- BLOCK SELECT DESELECT ----------
SELECTALL:
LV_Modify(0, "check")
I2  =0
RNM =0
Loop % LV_GetCount()
    {
    RNM := LV_GetNext(RNM,"checked")
    if not RNM
        break
    I2++
    }
GuiControl,1:,IX2,%I2%
return



DESELECTALL:
LV_Modify(0, "-check")
GuiControl,1:,IX2,0
return
;-------------- END BLOCK SELECT DESELECT ----------


;---------------- read all not used ---------
ALLE1:
VARX=
gosub,lb
return
;---------------------------------------------



;============ BLOCK LISTVIEW-1 adress =========================
MLV2:
   GuiControlGet,MLV1
   Gui,1:Submit,nohide

     RN:=LV_GetNext("C")
     RF:=LV_GetNext("F")
     GC:=LV_GetCount()


   I2  =0
   RNM =0
   Loop
      {
      RNM := LV_GetNext(RNM,"checked")
      if not RNM
         break
      I2++
      }
    GuiControl,1:,IX2,%I2%


   if A_GuiEvent=Normal
     {
     if (RN="" OR RN=0)
         return
    MouseGetPos,x,y
        {
       if x<%T1A%
          return

       if x<%T2A%
          return

       if x<%T3A%
          {
          LV_GetText(C1,A_EventInfo,1)
          LV_GetText(C3,A_EventInfo,3)
          LV_GetText(C4,A_EventInfo,4)
          Q1=
          Q2=
          Q3=
          stringsplit,Q,C4,%s%,
          FOLD2=%A_scriptdir%\KUNDEN\%c3%_%q1%
          ifexist,%fold2%
              run,%fold2%
          return
          }

       if x<%T4A%
          return

       if x<%T5A%
          return

       if x<%T6A%
          return

       if x<%T7A%
          {
          LV_GetText(C1,A_EventInfo,1)
          LV_GetText(C2,A_EventInfo,2)
          LV_GetText(C3,A_EventInfo,3)
          LV_GetText(C4,A_EventInfo,4)
          LV_GetText(C5,A_EventInfo,5)
          LV_GetText(C6,A_EventInfo,6)
          LV_GetText(C7,A_EventInfo,7)
          LV_GetText(C8,A_EventInfo,8)
          Q1=
          Q2=
          Q3=
          stringsplit,Q,C4,%s%,
          F11=%A_scriptdir%\KUNDEN\%c3%_%q1%\%c3%_%A_now%.txt
          ifnotexist,%f11%
            gosub,2ndLV
          else
            run,%f11%
          return
          }


       if x<%T8A%
          return

        }
    }


   if A_GuiEvent = RightClick
      {
     LV_GetText(C1,A_EventInfo,1)
     LV_GetText(C2,A_EventInfo,2)
     LV_GetText(C3,A_EventInfo,3)
     LV_GetText(C4,A_EventInfo,4)
     LV_GetText(C5,A_EventInfo,5)
     LV_GetText(C6,A_EventInfo,6)
     LV_GetText(C7,A_EventInfo,7)
     LV_GetText(C8,A_EventInfo,8)

     goto, Edit1
     return
      }
return
;============ END BLOCK LISTVIEW-1 adress ==============




;------------- BLOCK SEARCH LV-1 adress -------------------
SEARCH1:
Gui,1:submit,nohide
gosub,lb
GuiControl,1:Disable,AddNew1
GuiControl,1:Disable,Delete1
;GuiControl,1:Disable,SaveChecked1
GuiControl,1:Text,Edit1,%NOTHING%

if search1=
  goto,lb

LV_Delete()
I=0
  loop,read,%F1%
 {
  LR=%A_loopReadLine%
  C1  =
  C2  =
  C3  =
  C4  =
  C5  =
  C6  =
  C7  =
  C8  =
  if (search1<>"")
     {
     if LR contains %search1%
         {
         stringsplit,C,A_LoopReadLine,`;,
         I++
         LV_Add("",C1,C2,C3,C4,C5,C6,C7,C8)
         }
      }
  else
  continue
   }

  LV_Modify(LV_GetCount(), "Vis")     ;scrollt nach unten
return
;------------- END BLOCK SEARCH LV-1 adress -------------------





;---------------- BLOCK ADDNEW LV-1 adress -------------------
AddNew1:
Name2=AddNew
IfWinExist, %Name2%
return

    {
    C1=
    C2=
    C3=
    C4=
    C5=
    C6=
    C7=
    C8=
    }

     Gui,4:Font,  S10 CDefault , FixedSys
     Gui,4:Add,DateTime,x80  y5  w180 h20 vTB ,%A41%

     Gui,4:Add,Text,        x1  y35  w80  h20,Firma
     Gui,4:Add,DropDownList,x80 y35  w420  vA42, %VARN00%|%VARN01%|%VARN02%|%VARN03%

     ;Gui,4:Add,Text,        x1  y65  w80  h20,KDNR
     ;Gui,4:Add,Edit, x80 y65   w420 h20 vA43 readonly,%C3%

     Gui,4:Add,Text, x1  y95   w80  h20,Name
     Gui,4:Add,Edit, x80 y95   w420 h20 vA44,%C4%

     Gui,4:Add,Text, x1  y125  w80  h20,City
     Gui,4:Add,Edit, x80 y125  w420 h20 vA45,%C5%


     ;Gui,4:Add,Text, x1  y155  w80  h20,BEZAHLT
     ;Gui,4:Add,Edit, x80 y155  w420 h20 vA46 readonly,%C6%

     ;Gui,4:Add,Text, x1  y185  w80  h20,ORDER
     ;Gui,4:Add,Edit, x80 y185  w420 h20 vA47 readonly,%C7%

     ;Gui,4:Add,Text, x1  y215  w80  h20,CHECKED
     ;Gui,4:Add,Edit, x80 y215  w420 h20 vA48 readonly ,%C8%


   ;Gui,4:Add, Button, x510 y130 w85 h25 gBEZAHLT4,<Bezahlt


   Gui,4:Add, Button, x550 y180 w40 h25 gOK4, OK
   Gui,4:Show, x2 y110 w600 h210,%name2%
   Guicontrol,4:choosestring,A42,%varn01%
   return
;-----------------------------------------------


   ;-----------
   4GuiClose:
   4GuiEscape:
   Gui,4:Destroy
   Gui,1:Default
   return
   ;-----------

   ;Bezahlt4:
   ;GuiControl,4:Text,A45,Bezahlt

   OK4:
   Gui,4:submit

stringmid,YR4,TB,1,4
stringmid,MN2,TB,5,2
stringmid,DY2,TB,7,2
TDS=%YR4%-%MN2%-%DY2%
TDS2=%DY2%.%MN2%%YR4%
A43=%tb%

   FileAppend,%TDS%;%A42%;%A43%;%A44%;%A45%;%A46%;%A47%;0`r`n,%F1%
   Gui,4:Destroy
   Gui,1:Default
   A41=
   Gosub,LB
return
;---------------- END BLOCK ADDNEW LV-1 adress -------------------





;----------- BLOCK EDIT LV-1 adress  --------------------------
Edit1:
Gui,1:submit,nohide
Name3=Edit1
IfWinExist, %Name3%
return


  Gui,6:Font,  S10 CDefault , FixedSys

  Gui,6:Add,Text, x1  y5   w80  h20,DATE
  Gui,6:Add,Edit, x80 y5   w420 h20 vA61,%C1%

  Gui,6:Add,DropDownList,x80  y35  w420 r20 vA62, %VARN00%|%VARN01%|%VARN02%|%VARN03%

  Gui,6:Add,Text, x1  y65  w80  h20,KDNR
  Gui,6:Add,Edit, x80 y65  w420 h20 vA63 readonly,%C3%

  Gui,6:Add,Text, x1  y95  w80  h20,Name
  Gui,6:Add,Edit, x80 y95  w420 h20 vA64,%C4%

  Gui,6:Add,Text, x1  y125  w80  h20,City
  Gui,6:Add,Edit, x80 y125  w420 h20 vA65,%C5%

  Gui,6:Add,Text, x1  y155  w80  h20,BEZAHLT
  Gui,6:Add,Edit, x80 y155  w420 h20 vA66 readonly,%C6%

  Gui,6:Add,Text, x1  y185  w80  h20,ORDER
  Gui,6:Add,Edit, x80 y185  w420 h20 vA67 readonly,%C7%

  Gui,6:Add,Text, x1  y215  w80  h20,Checked
  Gui,6:Add,Edit, x80 y215  w420 h20 vA68 readonly,%C8%

  Gui,6:Add, Button, x510 y155 w85  h25 gBEZAHLT6    ,<Bezahlt
  Gui,6:Add, Button, x605 y155 w65  h25 gBEZAHLT6clr ,<Clear

  Gui,6:Add, Button, x550 y200 w40 h25 gOK6, OK
  GuiControl,6:Choose,A62,%C2%
  GuiControl,6:Choose,A63,%C3%
  Gui,6:Show, x2 y110 w670 h260,%Name3%
  return
  ;-----------
  6GuiClose:
  6GuiEscape:
  Gui,6:Destroy
  Gui,1:Default
  return
  ;-----------


  Bezahlt6:
  GuiControl,6:Text,A66,Bezahlt
  goto,OK6

  Bezahlt6clr:
  GuiControl,6:Text,A66,

  OK6:
  Gui,6:submit,nohide

  ;if A62=
  ;   A62=%C2%

   FileRead,AA,%F1%
   FileDelete,%F1%
   StringReplace,BB,AA,%C1%;%C2%;%C3%;%C4%;%C5%;%C6%;%C7%;%c8%,%A61%;%A62%;%A63%;%A64%;%A65%;%A66%;%A67%;%A68%
   FileAppend,%BB%,%F1%
  Gui,6:Destroy
  Gui,1:Default
  gosub,LB
  GuiControl,1:Text,Search1,%NOTHING%
return
;----------- END BLOCK EDIT LV-1 adress  --------------------------





;--------- BLOCK DELETE MULTIPLELINES LV-1 adress -----------------
Delete1:
C4 =
RF = 0      ;First line
RFL =
Loop
 {
   RF:=LV_GetNext(RF)
   if RF=0
      break
   RFL = %RF%|%RFL%
   LV_GetText(C4_Temp, RF, 4)
   C4 = %C4%`n%C4_Temp%
 }

if C4 !=
 {
   MsgBox, 4, ,Want you really delete %C4% ?
   IfMsgBox,No
      Return
   Else
    {
      Loop, parse, RFL, |
             LV_Delete(A_LoopField)

     filedelete,%F1%
     Loop % LV_GetCount()
       {
        BX1=
        BX2=
        BX3=
        BX4=
        BX5=
        BX6=
        BX7=
        BX8=
        LV_GetText(BX1,A_INDEX,1)
        LV_GetText(BX2,A_INDEX,2)
        LV_GetText(BX3,A_INDEX,3)
        LV_GetText(BX4,A_INDEX,4)
        LV_GetText(BX5,A_INDEX,5)
        LV_GetText(BX6,A_INDEX,6)
        LV_GetText(BX7,A_INDEX,7)
        LV_GetText(BX8,A_INDEX,8)

        e5=%e5%%BX1%;%BX2%;%BX3%;%BX4%;%BX5%;%BX6%;%BX7%;%BX8%`r`n
        }
     Fileappend,%e5%,%f1%
    }
 }
C4 =
RF = 0
RFL =
e5=
Gosub,LB
return
;--------- END BLOCK DELETE MULTIPLELINES LV-1 adress -----------------



;--------- BLOCK PRINTLISTVIEW-1 print what you see -------------
Printlv1:
Gui,1:submit,nohide
Gui,1:ListView, MLV1

TAB1 =10
TAB2 =18
TAB3 =20
TAB4 =12
TAB5 =12
TAB6 =10
TAB7 =10
TAB8 =10

Filedelete,%F2%
RF:=1
GD:=LV_GetCount()
I2=0

 loop,%gd%
 {
  I2++
     LV_GetText(C1,RF,1)
     LV_GetText(C2,RF,2)
     LV_GetText(C3,RF,3)
     LV_GetText(C4,RF,4)
     LV_GetText(C5,RF,5)
     LV_GetText(C6,RF,6)
     LV_GetText(C7,RF,7)
     LV_GetText(C8,RF,8)

     C1 := LP(C1,TAB1,S,"R")
     C2 := LP(C2,TAB2,S,"R")
     C3 := LP(C3,TAB3,S,"R")
     C4 := LP(C4,TAB4,S,"R")
     C5 := LP(C5,TAB5,S,"R")
     C6 := LP(C6,TAB6,S,"R")
     C7 := LP(C7,TAB7,S,"R")
     C8 := LP(C8,TAB8,S,"R")

     Fileappend,%C1% %C2% %C3% %C4% %C5% %C6% %C7% %C8%`r`n,%F2%
     RF:=(RF+1)
 }
run,%F2%
RF=0
return
;--------- END BLOCK PRINTLISTVIEW-1 print what you see -------------





;--------- BLOCK PRINTLISTVIEW-1 print CHECKED -------------
PrintCK1:
Gui,1:submit,nohide
Gui,1:ListView, MLV1

TAB1 =10
TAB2 =18
TAB3 =20
TAB4 =12
TAB5 =12
TAB6 =12
TAB7 =12
TAB8 =10

Filedelete,%F2%
RF:=1
GD:=LV_GetCount()
I2=0

 loop,%gd%
 {
  I2++
     LV_GetText(C1,RF,1)
     LV_GetText(C2,RF,2)
     LV_GetText(C3,RF,3)
     LV_GetText(C4,RF,4)
     LV_GetText(C5,RF,5)
     LV_GetText(C6,RF,6)
     LV_GetText(C7,RF,7)
     LV_GetText(C8,RF,8)

     C1 := LP(C1,TAB1,S,"R")
     C2 := LP(C2,TAB2,S,"R")
     C3 := LP(C3,TAB3,S,"R")
     C4 := LP(C4,TAB4,S,"R")
     C5 := LP(C5,TAB5,S,"R")
     C6 := LP(C6,TAB6,S,"R")
     C7 := LP(C7,TAB7,S,"R")
     C8 := LP(C8,TAB8,S,"R")

     if C8=1
     Fileappend,%C1% %C2% %C3% %C4% %C5% %C6% %C7%`r`n,%F2%
     RF:=(RF+1)
 }
run,%F2%
RF=0
return
;--------- END BLOCK PRINTLISTVIEW-1 print CHECKED -------------



;------------ BLOCK LV-1 checked 0/1 speichern ---------------------------
SaveChecked:
     K1=0
     K2=0
     filedelete,%F1%
     Loop % LV_GetCount()
       {
        K1++
        BX1=
        BX2=
        BX3=
        BX4=
        BX5=
        BX6=
        BX7=

        LV_GetText(BX1,A_INDEX,1)
        LV_GetText(BX2,A_INDEX,2)
        LV_GetText(BX3,A_INDEX,3)
        LV_GetText(BX4,A_INDEX,4)
        LV_GetText(BX5,A_INDEX,5)
        LV_GetText(BX6,A_INDEX,6)
        LV_GetText(BX7,A_INDEX,7)

        if K1=1
          K2 := LV_GetNext(K2,"checked")
        if (K1=K2)
          {
          Fileappend,%BX1%;%BX2%;%BX3%;%BX4%;%BX5%;%BX6%;%BX7%;1`r`n,%F1%
          K2 := LV_GetNext(K2,"checked")
          }
        else
          Fileappend,%BX1%;%BX2%;%BX3%;%BX4%;%BX5%;%BX6%;%BX7%;0`r`n,%F1%
        }
return
;------------ END BLOCK LV-1 checked 0/1 speichern ---------------------------













;======================== 2ND LISTVIEW-2 Products ============================
;----------------- BLOCK GUI SHOW LV-2 ---------------
2NDLV:
Gui,1:submit,nohide
FilenameLV2=Artikel  [DELETE=Mark lines and then Rightclick]  [EDIT=doubleclick]
IfWinExist, %FilenameLV2%
return

;Gui,2:Color, 000000
Gui,2:Font,  S10 CDefault , FixedSys

setformat,float,0.2

F3=%A_scriptdir%\Artikel.txt
F4=%A_scriptdir%\Artikel_Checked.txt

;----- for test ----
;Filedelete,%F3%
ifnotexist,%f3%
{
e5=
(
1;Auto Ford Taunus 1970;100.00;USED;0`r
1;Radio Grundig Concert Boy 1968;20.00;USED;1`r
1;Photocamera Panasonic DMC-TZ7;10.00;NEU;0`r
1;Sharp Basic Rechner PC-1201;30.00;USED;1`r
1;Television Sony 70-cm;10.00;NEU;0`r
)
Fileappend,%e5%`n,%F3%
}
e5=


Gui,2:default

L1:=60        ;Anzahl
L2:=240       ;Product
L3:=100       ;Preis
L4:=70        ;ART
L5:=50        ;Checked

LSW2:=(L1+L2+L3+L4+L5+20)
GSW2:=(LSW2+50)
; logical
Gui,2:Add, ListView,grid r17 w%LSW2% +hscroll altsubmit checked v2MLV1 g2MLV2, Anzahl|Product|Preis|Zustand|Checked
  LV_ModifyCol(1,L1)
  LV_ModifyCol(2,L2)
  LV_ModifyCol(3,L3)
  LV_ModifyCol(4,L4)
  LV_ModifyCol(5,L5)

  LV_ModifyCol(1,"Integer")
  LV_ModifyCol(3,"Integer")

  Gui,2:Add,Edit  , x10    y320 w280  h20 vSearch2 gSearch2 cBlack ,           ;Search2

  Gui,2:Add,Edit  , x310   y320 w120 h20 vTotal1 cRed right,     ;Total

  Gui,2:Add,Text  , x20    y360 w50 h20 cWhite, Alle
  Gui,2:Add,Text  , x70    y360 w50 h20 cWhite, Checked
  Gui,2:Add,Edit  , x10    y385 w50 h20 v2IX1 cBlack right,     ;I alle
  Gui,2:Add,Edit  , x70    y385 w50 h20 v2IX2 cBlack right,     ;I checked

  Gui,2:Add,Button, x10     y405 w120   h20 g2Selectall   v2Selectall      ,Selectall
  Gui,2:Add,Button, x150    y405 w120   h20 g2DeSelectall v2DeSelectall    ,DeSelectall

  Gui,2:Add,Edit  , x10     y430 w370  h20 vKDNR1 cBlue ,        ;Kunde
  Gui,2:Add,Button, x390    y430 w90   h20 g2SaveChecked vSaveChecked2   ,<--OK--

  Gui,2:Add,Button, x10     y450 w90   h20 gAddNew2 vAddNew2 ,AddNew2


gosub,2LB
Gui,2:Show, x200 y10 w%GSW2% h500,%FilenameLV2%
return
;----------------- END BLOCK GUI SHOW LV-2 ---------------


2Guiclose:
Gui,1:default
Gui,2:destroy
return

;------------ BLOCK LV-2 READ ------------------
2LB:
Gui,2:submit,nohide
Gui,2:default
Gui, 2:ListView,2MLV1

I1=0
I2=0

; A_INDEX
LV_Delete()
  loop,read,%F3%
   {
   stringsplit,H,A_LoopReadLine,`;,
   I1++
   LV_Add("",H1,H2,H3,H4,H5)
   LV_GetText(B5,I1,5)
   if B5=1
      {
      I2++
      LV_Modify(I1, "check")
      }
   }

;LV_ModifyCol(1, "SortAsc")
;LV_ModifyCol(1, "Logical SortAsc")
;LV_ModifyCol(1,"integer")
;LV_ModifyCol(1, "Sort")

LV_Modify(LV_GetCount(), "Vis")
GuiControl,2:,2IX1,%I1%
GuiControl,2:,2IX2,%I2%
GuiControl,2:,KDNR1,Bestellung für KUNDE=%c3%-%c4%
return
;------------ END BLOCK LV-2 READ ------------------






;---------  try ---- BLOCK SEARCH LV-2 product -------------------
SEARCH2:
Gui,2:submit,nohide
gosub,2lb
GuiControl,2:Disable,AddNew2

if search2=
  goto,2lb

LV_Delete()
I=0
  loop,read,%F3%
 {
  LR=%A_loopReadLine%
  r1  =
  r2  =
  r3  =
  r4  =
  r5  =
  if (search2<>"")
     {
     if LR contains %search2%
         {
         stringsplit,R,A_LoopReadLine,`;,
         I++
         LV_Add("",r1,r2,r3,r4,r5)
         }
      }
  else
  continue
   }

  LV_Modify(LV_GetCount(), "Vis")     ;scrollt nach unten
return
;------------- END BLOCK SEARCH LV-2 products  -------------------















;===========  BLOCK LV-2 ============================
2MLV2:
   ;GuiControlGet,2MLV1
   Gui,2:Submit,nohide
   Gui, 2:ListView,2MLV1

     RN:=LV_GetNext("C")
     RF:=LV_GetNext("F")
     GC:=LV_GetCount()

   I2  =0
   2RNM =0
   P3:=0
   Y3:=0

   Loop
      {
      2RNM := LV_GetNext(2RNM,"checked")
      if not 2RNM
         break
      I2++
      LV_GetText(P1,2RNM,1)   ;Anzahl
      LV_GetText(P3,2RNM,3)   ;Preis
      PR:=(P1*P3)
      Y3:=(PR+Y3)             ;Addiere Preis column3 which is checked
      }
    GuiControl,2:,2IX2,%I2%
    GuiControl,2:,total1,%Y3%


   if A_GuiEvent = Normal
      {
      return
      }

   if A_GuiEvent = DoubleClick
      {
     LV_GetText(H1,A_EventInfo,1)
     LV_GetText(H2,A_EventInfo,2)
     LV_GetText(H3,A_EventInfo,3)
     LV_GetText(H4,A_EventInfo,4)
     LV_GetText(H5,A_EventInfo,5)
     gosub,editLV2
     return
      }

   if A_GuiEvent = Rightclick
      {
     gosub,delete2
     return
      }


return
;===========  END BLOCK LV-2 ============================


;------------- BLOCK SELECT DESELECT LV-2 ------------
2SELECTALL:
LV_Modify(0, "check")
I2  =0
2RNM =0
   P3:=0
   Y3:=0

Loop % LV_GetCount()
    {
    2RNM := LV_GetNext(2RNM,"checked")
    if not 2RNM
        break
    I2++
    LV_GetText(P3,2RNM,3)
    Y3:=(P3+Y3)             ;Addiere Preis column3 which is checked
    }
GuiControl,2:,2IX2,%I2%
GuiControl,2:,total1,%Y3%
return


;---------------------
2DESELECTALL:
LV_Modify(0, "-check")
GuiControl,2:,2IX2,0
GuiControl,2:,total1,0
return
;------------- END BLOCK SELECT DESELECT LV-2 ------------



;---------------------- 2 write checked  not used ------------
2WriteChecked:
     filedelete,%F3%
     Loop % LV_GetCount()
       {
        K1++
        CX1=
        CX2=
        CX3=
        CX4=

        LV_GetText(CX1,A_INDEX,1)
        LV_GetText(CX2,A_INDEX,2)
        LV_GetText(CX3,A_INDEX,3)
        LV_GetText(CX4,A_INDEX,4)

        if K1=1
          K2 := LV_GetNext(K2,"checked")
        if (K1=K2)
          {
          Fileappend,%CX1%;%CX2%;%cx3%;%cx4%;1`r`n,%F3%
          K2 := LV_GetNext(K2,"checked")
          }
        else
          Fileappend,%CX1%;%CX2%;%cx3%;%cx4%;0`r`n,%F3%
        }
return
;------------------------ END save checked not used --------------------






;------------ BLOCK LV-2  checked 0/1 speichern and write ---------------------------
2SaveChecked:
Gui,1:submit,nohide
q1=
q2=
q3=
stringsplit,Q,C4,%s%,
FOLD1=%A_scriptdir%\KUNDEN\%c3%_%q1%
ifnotexist,%fold1%
     FileCreateDir,%fold1%
sleep,500

TB=%A_now%
stringmid,YR4,TB,1,4
stringmid,MN2,TB,5,2
stringmid,DY2,TB,7,2
TDS=%YR4%-%MN2%-%DY2%

w1=
w2=
stringsplit,W,C5,`,,

q1=
q2=
q3=
stringsplit,Q,C4,%s%,


TABLM =5                   ;--Left margin
LMM := LP(LMM,TABLM,S,"R")


TABL1=42

DL1:="Datum    = " . tds
DL2:="Absender = Uwe Mayer"
DL3:="City     = Mannheim"
DL4:="Strasse  = Neckarstrasse 17"

DR1:="Kundennummer = " . c3
DR2:="Name         = " . q1 " " . q2
DR3:="City         = " . w1
DR4:="Strasse      = " . w2


DL1 := LP(DL1,TABL1,S,"L")   ;reserve space TABL1 (Left1-48)
DL2 := LP(DL2,TABL1,S,"L")
DL3 := LP(DL3,TABL1,S,"L")
DL4 := LP(DL4,TABL1,S,"L")


e21=
(
`r
%lmm%%dl1%%dr1%`r
%lmm%%dl2%%dr2%`r
%lmm%%dl3%%dr3%`r
%lmm%%dl4%%dr4%`r
`r
`r
`r
%lmm%Guten Tag %q3% %q1% ,`r
%lmm%Anbei ihre Bestellung vom %tds%`r
`r
`r
`r
)

Fileappend,%e21%`n,%f11%


TAB1 =4   ;Anzahl
TAB2 =40  ;Product
TAB3 =10  ;Preis
TAB4 =8   ;Zustand

TABPR=11  ;Preis Anzahl*product
TABY3=11  ;Preis Total

     K1=0
     K2=0
     PR:=0
     Y3:=0





;--- reads Listview,  in case search dont overwrite F3 -------------
     ;filedelete,%F3%
     Loop % LV_GetCount()
       {
        K1++
        BX1=
        BX2=
        BX3=
        BX4=

        CX1=
        CX2=
        CX3=
        CX4=

        LV_GetText(BX1,A_INDEX,1)
        LV_GetText(BX2,A_INDEX,2)
        LV_GetText(BX3,A_INDEX,3)
        LV_GetText(BX4,A_INDEX,4)

        LV_GetText(CX1,A_INDEX,1)
        LV_GetText(CX2,A_INDEX,2)
        LV_GetText(CX3,A_INDEX,3)
        LV_GetText(CX4,A_INDEX,4)


        BX1 := LP(BX1,TAB1,S,"R")
        BX2 := LP(BX2,TAB2,S,"L")
        BX3 := LP(BX3,TAB3,S,"R")
        BX4 := LP(BX4,TAB4,S,"R")
        stringmid,bx2,bx2,1,tab2

        if K1=1
          K2 := LV_GetNext(K2,"checked")

        ;-- 1; or cx1;
        if (K1=K2)
          {
          ;Fileappend,1;%CX2%;%cx3%;%cx4%;1`r`n,%F3%
            LV_GetText(P1,A_INDEX,1)
            LV_GetText(P3,A_INDEX,3)
            PR:=(P1*P3)
            Y3:=(PR+Y3)             ; Multiply Preis column3
            PR := LP(PR,TABPR,S,"R")

          Fileappend,%LMM%%BX1%  %BX2%  %bx3%%bx4%%PR%`r`n,%F11%       ;write to ORDER
          K2 := LV_GetNext(K2,"checked")
          }
        ;else
          ;Fileappend,1;%CX2%;%cx3%;%cx4%;0`r`n,%F3%
        }


   FileRead,AA,%F1%
   FileDelete,%F1%
   StringReplace,BB,AA,%C1%`;%C2%`;%C3%`;%C4%`;%C5%`;%C6%`;%C7%`;%C8%,%C1%`;%C2%`;%C3%`;%C4%`;%C5%`;%C6%`;ORDED`;%C8%
   FileAppend,%BB%,%F1%

TABPR2:=(TAB1+TAB2+TAB3+TAB4+TABPR+4)
Y3:=LP(Y3,TABPR2,S,"R")

ifexist,%f11%
   {
   Fileappend,%LMM%-----------------------------------------------------------------------------`r`n%LMM%%Y3%`r`n,%f11%
   Fileappend,`r`n`r`n          Mit freundlichen Grüssen`r`n                    Uwe`r`n,%f11%
   run,%f11%
   }
gosub,LB
gui,2:destroy
return
;------------ END BLOCK LV-2  checked 0/1 speichern and write ---------------------------






;---------------- BLOCK ADDNEW2 LV-2 product -------------------
AddNew2:
Name9=AddNew2
IfWinExist, %Name9%
return

    {
    H1=
    H2=
    H3=
    H4=
    H5=
    }

VARP01=NEU
VARP02=USED
A93 :=0


     Gui,9:Font,  S10 CDefault , FixedSys

     ;Gui,9:Add,Text, x1  y5   w80  h20,Anzahl
     ;Gui,9:Add,Edit, x80 y5   w420 h20 vA91 readonly,%H1%

     Gui,9:Add,Text, x1  y35  w80  h20,Product
     Gui,9:Add,Edit, x80 y35  w420 h20 vA92,%H2%

     Gui,9:Add,Text, x1  y65  w80  h20,Preis
     Gui,9:Add,Edit, x80 y65  w420 h20 vA93,%H3%

     Gui,9:Add,Text,        x1  y95  w80  h20,ZUSTAND
     Gui,9:Add,DropDownList,x80 y95  w420  vA94, %VARP01%|%VARP02%

     ;Gui,9:Add,Text, x1  y125  w80  h20,CHECKED
     ;Gui,9:Add,Edit, x80 y125  w420 h20 vA95 readonly ,%H5%


   Gui,9:Add, Button, x550 y180 w40 h25 gOK9, OK
   Gui,9:Show, x2 y110 w600 h210,%name9%
   Guicontrol,9:choosestring,A94,%varp01%
   return
;-----------------------------------------------


   ;-----------
   9GuiClose:
   9GuiEscape:
   Gui,9:Destroy
   Gui,2:Default
   return
   ;-----------


   OK9:
   Gui,9:submit

   if A93 =
      A93 :=0

      A93 +=0.00


   FileAppend,1;%A92%;%A93%;%A94%;0`r`n,%F3%
   Gui,9:Destroy
   Gui,2:Default
   A91=
   Gosub,2LB
return
;---------------- END BLOCK ADDNEW2 LV-2 product -------------------







;--------- BLOCK DELETE MULTIPLELINES LV-2 product -----------------
Delete2:
C2 =
RF = 0      ;First line
RFL =
Loop
 {
   RF:=LV_GetNext(RF)
   if RF=0
      break
   RFL = %RF%|%RFL%
   LV_GetText(C2_Temp, RF, 2)
   C2 = %C2%`n%C2_Temp%
 }

e9=
if C2 !=
 {
   MsgBox, 4, ,Want you really delete %C2% ?
   IfMsgBox,No
      Return
   Else
    {
      Loop, parse, RFL, |
             LV_Delete(A_LoopField)

     filedelete,%F3%
     Loop % LV_GetCount()
       {
        BX1=
        BX2=
        BX3=
        BX4=
        BX5=
        LV_GetText(BX1,A_INDEX,1)
        LV_GetText(BX2,A_INDEX,2)
        LV_GetText(BX3,A_INDEX,3)
        LV_GetText(BX4,A_INDEX,4)
        LV_GetText(BX5,A_INDEX,5)

        e9=%e9%%BX1%;%BX2%;%BX3%;%BX4%;%BX5%`r`n
        }
     Fileappend,%e9%,%f3%
    }
 }
C2 =
RF = 0
RFL =
e9=
Gosub,2LB
return
;--------- END BLOCK DELETE MULTIPLELINES LV-1 adress -----------------







;------------ BLOCK EDIT LV-2 ---------------------------------
EDITLV2:
   Gui,2:Submit,nohide
   Gui, 2:ListView,2MLV1

Name4=EditLV2
IfWinExist, %Name4%
return

A73 :=0
VARP01=NEU
VARP02=USED

  Gui,7:Font,  S10 CDefault , FixedSys

  Gui,7:Add,Text, x1  y5   w80  h20,ANZAHL
  Gui,7:Add,Edit, x80 y5   w420 h20 vA71,%H1%

  Gui,7:Add,Text, x1  y35   w80  h20,PRODUCT
  Gui,7:Add,Edit, x80 y35   w420 h20 vA72,%H2%

  Gui,7:Add,Text, x1  y65  w80  h20,PREIS
  Gui,7:Add,Edit, x80 y65  w420 h20 vA73,%H3%

  Gui,7:Add,Text,        x1  y95  w80  h20,ART
  Gui,7:Add,DropDownList,x80 y95  w420  vA74, %VARP01%|%VARP02%

  Gui,7:Add,Text, x1  y125  w80  h20,CHECKED
  Gui,7:Add,Edit, x80 y125  w420 h20 vA75 readonly,%H5%

  Gui,7:Add, Button, x550 y200 w40 h25 default gOK7, OK
  Gui,7:Show, x2 y110 w600 h240,%Name4%
  GuiControl,7:Focus,A71
  ;Guicontrol,7:choosestring,A74,%varp01%
  GuiControl,7:Choose,A74,%H4%

  return
  ;-----------
  7GuiClose:
  7GuiEscape:
  Gui,7:Destroy
  Gui,1:Default
  return
  ;-----------


;--------------- 7-OK ------------
  OK7:
  Gui,7:submit,nohide

  Gui,2:default
  Gui,2:ListView,2MLV1


         if A73 =
            A73 :=0

       A73 +=0.00




P1:=0
P3:=0
Gui +LastFound      ; needs for SendMessage
     e5=
     Loop % LV_GetCount()
       {
        B1=
        B2=
        B3=
        B4=
        B5=

        LV_GetText(B1,A_INDEX,1)
        LV_GetText(B2,A_INDEX,2)
        LV_GetText(B3,A_INDEX,3)
        LV_GetText(B4,A_INDEX,4)
        LV_GetText(B5,A_INDEX,5)

        SendMessage, 4140, A_INDEX - 1, 0xF000, SysListView321   ;show if it is checked
        IsChecked := (ErrorLevel >> 12) - 1
        if IsChecked=0
           b5=0
        else
           b5=1
         e5=%e5%%B1%;%B2%;%B3%;%b4%;%b5%`r`n
        }


new1=
LV_Delete()

Loop, Parse,e5, `n
    {
    new1=%a_loopfield%
    if new1=
       break
    stringreplace,new1,new1,%H1%`;%H2%`;%H3%`;%H4%,%A71%`;%A72%`;%A73%`;%A74%
    stringsplit,M,new1,`;,
    stringreplace,M5,M5,`r,
    LV_Add("",M1,M2,M3,M4,M5)
    }
new1=
e5=


I2=0
Y3:=0
P1:=0
P3:=0
Loop % LV_GetCount()
    {
    B5=
    LV_GetText(B5,A_INDEX,5)
    if B5=1
       {
       I2++
       LV_Modify(A_INDEX, "check")
       LV_GetText(P1,A_INDEX,1)        ;Anzahl
       LV_GetText(P3,A_INDEX,3)        ;Preis
       PR:=(P1*P3)
       Y3:=(PR+Y3)             ;Total Addiere Preis column3 which is checked
       }
    }


  Gui,7:Destroy
  ;Gui,2:Default
  ;gosub,LB2
e5=
e6=
return
;------------ END BLOCK EDIT LV-2 ---------------------------------




;####################### FUNCTION PLACE KEEPER LinePadding BoBo ##################
/*
LinePadding("Text",20,A_Space,"L")

1. Parameter: Text/Wert welcher in der Zeile übergeben wird, hier das Wort Text
2. Parameter: Die Gesamtlänge der Zeile, hier 20 Zeichen
3. Parameter: Füllzeichen, hier A_Space (das Leerzeichen)
4. Parameter: Die Ausrichtung, hier L (heisst Linksbündig)
*/

;A:= LP(A,TAB1,S,"R")
;B:= LP(B,TAB1,S,"R")

;Line := LinePadding("TestString",20,A_Space,"L")
;MsgBox |%Line%| ; zu Testzwecken

LP(String,FieldLen,ToAppend,Justification)
 {
   StringLen, StringLen, String ; Anzahl Zeichen der Zeichenkette ermitteln
   LCnt := FieldLen-StringLen ; Anzahl Füllzeichen ermitteln
   Loop, % LCnt
     Appended := (Appended . ToAppend) ; Auffüllen
   If Justification = R
      Return (Appended . String) ; Linksbündig
   If Justification = L
         Return (String . Appended) ; Rechtsbündig
 }
;======================== ENDE ==================================================
;####################################################################################




Last edited by garry on January 24th, 2012, 11:03 am, edited 14 times in total.

Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: July 18th, 2005, 9:02 pm 
Offline

Joined: March 2nd, 2004, 3:36 pm
Posts: 10720
It looks interesting; thanks for sharing it.

ListViews in XP and beyond have the ability to select columns, but I forget exactly how to enable it. If it can't be enabled through SendMessage, perhaps it can be built into the program someday.


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: September 27th, 2009, 1:49 pm 
Offline

Joined: September 6th, 2009, 4:22 pm
Posts: 20
Hi garry, I really like this stuff; can you post your test55.txt for Example 3 please?


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: September 27th, 2009, 8:55 pm 
Offline

Joined: April 19th, 2005, 10:26 am
Posts: 2249
Location: switzerland
hello rootey
added 4th example to search in a text file


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: November 20th, 2011, 12:39 am 
Offline

Joined: April 19th, 2005, 10:26 am
Posts: 2249
Location: switzerland
continue here with
Listview example-6
-ADD
-EDIT MODIFY
-DELETE row
-SEARCH
Code:
MODIFIED=20120113

;-- a listview example with 3-columns
;-- ADDNEW -MODIFY -DELETE -SEARCH
;--------------------------------------------------


#NoEnv                        ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input                ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%
SetBatchLines -1
filename1:=%modified% . "ADD-MODIFY-DELETE          Edit=RightClick            DELETE=DEL"

;transform,S,chr,32          ;-- SPACE is the delimiter
;transform,S,chr,165         ;-- ANSI YEN  is the delimiter
S=;                          ;-- COMMA is the delimiter




;--- create a test-file ----
F1=testbasic.txt
ifnotexist,%f1%
{
e4x=
(Ltrim Join`r`n
016%s%CCC%s%1193
9017%s%BBB%s%92
9018%s%AAA%s%1191
)
Fileappend,%e4x%`r`n,%f1%
}
;-----------------------------

T1=80                  ;-- width column-1
T2=100                 ;-- width column-2
T3=70                  ;-- width column-3
tot:=(T1+T2+T3+50)     ;-- width listview
xpos=110
T1A:=(xpos+T1)
T2A:=(xpos+T1+T2)
T3A:=(xpos+T1+T2+T3)

Gui,1:Font,S13 CDefault,Lucida Console
Gui,1:Add, ListView,backgroundteal csilver grid r10 x%xpos% y0 w%tot% +hscroll altsubmit gLW2 vLV_1, A|B|C
;LV_ModifyCol()                               ;-- fit automatic size
LV_ModifyCol(1,T1)                            ;-- size
LV_ModifyCol(2,T2)
LV_ModifyCol(3,T3)

Gui,1:Add,Button,gAddUrl             x5   y230 w120 h20,Add
Gui,1:add,text,   x140 y230 w60 ,Search=
Gui,1:add,edit,   x210 y230 h20 w200 vWordToSearch gSearch
Gui,1:add,edit,   x450 y230 h20 w60 right readonly vIx
Gui,1:Add,Button, x530 y230 h20 w60 gWriteFile,WRITE
Gui,1:Show,x0 y0 w620 h260,%filename1%

gosub,lb
GuiControl,Focus,WordToSearch
return
;-------------- end gui show ------------------




;------------ fill listview columns -----------
LB:
Gui,1:default
LV_Delete()
I=0
loop,read,%F1%
  {
  LR:=A_LoopReadLine
  if LR=
     continue
  ;LR:=RegExReplace(LR,"\x20{2,}"," ")       ;-- allow only on space
  LR=%LR%                                    ;-- remove leading space
  stringsplit,C,LR,%s%                       ;-- split with delimiter
  I++
  LV_Add("",C1,C2,C3)
  }

LV_ModifyCol(1, "Sort")                        ;-- sort column-1
;LV_ModifyCol(2, "SortAsc")                    ;-- sort column-2
;LV_ModifyCol(1, "Logical SortAsc")
LV_ModifyCol(1,"integer")
LV_ModifyCol(3,"integer")
;LV_ModifyCol(2, "AutoHdr")
LV_Modify(LV_GetCount(), "Vis")              ;-- scrolls to last line
GuiControl,1:,ix,%i%
return
;==============================================================


;======== close exit ===
GuiClose:
ExitApp



;=================== search ========================
search:
gui,1:submit,nohide
I=0
LV_Delete()
loop,read,%F1%
  {
  LR:=A_LoopReadLine
  if LR=
     continue
  LR=%LR%                                    ;-- remove leading space
  stringsplit,C,LR,%s%                       ;-- split with delimiter
  If InStr(LR,WordToSearch)
      {
      i++
      LV_Add("",C1,C2,C3)
      }
  }
GuiControl,1:,ix,%i%
return



;============ write what you see to a file  =====================
;--- odlanir  http://www.autohotkey.com/forum/viewtopic.php?p=505196#505196
WriteFile:
clm=0
TempFile=%a_scriptdir%\LV_Print_content.txt
ifexist,%tempfile%
  filedelete,%tempfile%
  Loop % LV_GetCount("Column")
    clm++

loop, % LV_GetCount()
 {
   RowNum := A_Index
   loop, %clm%
      LV_GetText(col%A_Index% , RowNum, a_index)
   FileAppend, % col1 ";" col2 ";" col3 "`r`n", % TempFile
}
Run, % TempFile
return



;================= ADD-NEW ====================================
AddUrl:
Gui,2:Font,  S10 CDefault , FixedSys

Gui,2:Add,Text, x1 y5 w80 h20, C1
Gui,2:Add,Edit,   x80 y5 w500 h20 vA21,

Gui,2:Add,Text,   x1  y30 w80  h20, C2
Gui,2:Add,Edit,   x80 y30 w500 h20 vA22,

Gui,2:Add,Text,   x1  y60 w80  h20, C3
Gui,2:Add,Edit,   x80 y60 w500 h20 vA23,

Gui,2:Add, Button, x550 y90 w40 h25, OK
Gui,2:Show, x2 y385 w600 h120, ADD_NEW
return
;---------------------------------------
2GuiClose:
2GuiEscape:
Gui,2: Destroy
return


2ButtonOK:
Gui,2:submit
FILEAPPEND, %A21%%s%%A22%%s%%A23%`r`n,%F1%
Gui,2: Destroy
GoSub, LB         ;-- update LV
return
;=========== end ADD NEW ==========================================










;============= Listview event ===============================================
LW2:
Gui, Submit,nohide
Gui,1:ListView, LV_1
  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()


;------- which column  LV_1 is the name of Listview variable -----------------
if A_GuiEvent=ColClick
   {
   gosub,cc
   return
   }
;----------------------------------


;------- one-click ----------------
if A_GuiEvent = Normal
  {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)

  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()
  }


;------- Doubleclick shows only content from clicked column -----
if A_GuiEvent = DoubleClick
   {
   gosub,cc
   LV_GetText(C1,A_EventInfo,columnx)
   msgbox, 262208, ColumnInfo,You have DoubleClicked on`nRow= %A_EventInfo%`nColumn=%columnx%`nHeader=%thisheader%`nContent=%c1%
   return
   }




;------------ EDIT MODIFY LV --------

if A_GuiEvent = RightClick
 {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)

  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()


GuiControl,3:Focus,Name
Gui,3:Font,  S10 CDefault , FixedSys

Gui,3:Add,Text,  x1  y5 w80 h20, AA
Gui,3:Add,Edit,  x80 y5 w500 h20 vA31, %C1%

Gui,3:Add,Text,  x1  y30 w80  h20, BB
Gui,3:Add,Edit,  x80 y30 w500 h20 vA32, %C2%

Gui,3:Add,Text,  x1  y60 w80  h20, CC
Gui,3:Add,Edit,  x80 y60 w500 h20 vA33, %C3%

Gui,3:Add, Button, x550 y90 w40 h25, OK
Gui,3:Show, x2 y385 w600 h120, MODIFY
return
;----------


3ButtonOK:
Gui,3:submit
FileRead, FileContent, %F1%
FileDelete, %F1%
StringReplace, FileContent, FileContent, %C1%%s%%C2%%s%%C3% , %A31%%s%%A32%%s%%A33%
FileAppend, %FileContent%, %F1%
GoSub, LB

3GuiClose:
3GuiEscape:
Gui, 3:Destroy
return
 }
;------------ END EDIT MODIFY LV --------



;------------ DELETE Listview ROW -------------------
if A_GuiEvent=K
{
GetKeyState,state,DEL
if state=D
  {
   LV_GetText(C1, RF, 1)
   LV_GetText(C2, RF, 2)
   LV_GetText(C3, RF, 3)
   CT=%c1%%s%%c2%%s%%c3%
   msgbox, 262436,Delete,Want you really delete the row %rf%=`n%ct% ?
    IfMsgBox,No
       Return
      FileRead,AA,%F1%
      Filedelete,%F1%
      StringReplace,BB,AA,%ct%`r`n,,
      FileAppend,%BB%,%F1%
  gosub,lb
  return
  }
}
;============= end Listview event ===============================================






;-------------- Function Get Listviewx  Columnx  --------------------------------------------------------
   CC:
   ;---- user jaysp Fri Aug 20, 2010 3:42 pm  Get Listview columnx
   ;-------- http://www.autohotkey.com/forum/viewtopic.php?t=61655&highlight=clicked+column ---
   ;MouseGetPos,x,y,%Filename1%                   ;-- Get mouse position relative to the window

   MouseGetPos X, Y, WinID, Ctrl
   GuiControlGet, LV_1, Pos                      ;-- Get the x coordinate of the listview relative to the window
   scrollpos := DllCall("GetScrollPos", "UInt", ChildHWND, "Int", 0) ;--Get the position of the scrollbar
   highcoord := LV_1X - scrollpos                ;-- Get the relative position on the x axis

   ;-- Get the widths of all columns
   w_index=0
   Loop % LV_GetCount("Column")
      {
      SendMessage, 4125, A_Index - 1, 0, SysListView321 ;-- Gets the width of each cell
      w_index += 1
      columnWidth%w_index% := ErrorLevel
      }

   ;-- Get the relative position of each cell, see if x falls in the range and display the column
   Loop, %w_index%
      {
      highcoord := highcoord + columnWidth%A_Index%
      lowcoord  := highcoord - columnWidth%A_Index%
      If x between %lowcoord% and %highcoord%
          Columnx:=A_index
      LV_GetText( ThisHeader, 0, columnx )       ; Get column header.
      }
return
;========================= end script Listview basics ==========================================






ListView example-7
-ADD
-EDIT MODIFY
-DELETE multiple rows
-column


Code:
MODIFIED=20111120

;-- a listview example with 3-columns toggle columnx
;-- ADDNEW -MODIFY -DELETE multiple
;--------------------------------------------------
#NoEnv                        ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input                ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%
SetBatchLines -1
filename1:=%modified% . "ADD-MODIFY-DELETE multiple          Edit_F12            DELETE_Rightclick"

;transform,S,chr,32          ;-- SPACE is the delimiter
S=,                          ;-- COMMA is the delimiter

;--- create a test-file ----
F1=test.txt
ifnotexist,%f1%
{
e4x=
(Ltrim Join`r`n
016%s%CCC%s%1193
9017%s%BBB%s%92
9018%s%AAA%s%1191
)
Fileappend,%e4x%`r`n,%f1%
}
;-----------------------------

T1=80                  ;-- width column-1
T2=100                 ;-- width column-2
T3=70                  ;-- width column-3
tot:=(T1+T2+T3+50)     ;-- width listview
xpos=110
T1A:=(xpos+T1)
T2A:=(xpos+T1+T2)
T3A:=(xpos+T1+T2+T3)

Gui,1:Font,S13 CDefault,Lucida Console
Gui,1:Add, ListView,backgroundteal csilver grid r10 x%xpos% y0 w%tot% +hscroll altsubmit gLW2 vLV_1, A|B|C
;LV_ModifyCol()                               ;-- fit automatic size
LV_ModifyCol(1,T1)                            ;-- size
LV_ModifyCol(2,T2)
LV_ModifyCol(3,T3)

Gui,1:Add,Button,gAddUrl             x5   y230 w120 h20,Add
Gui,1:Add,Button,gHeader1 vHeader1a  x150 y230 w150 h20,Header-Toggle    ;-- Toggle between last selected column and column-1

Gui,1:Show,x0 y0 w600 h260,%filename1%
GuiControl,1: Disable, Header1a

gosub,lb
return
;=================================================================================================================


;--- toggle between last selected column and column-1
header1:
   Q:=!Q
   If Q
   LV_ModifyCol(1, "Sort")
   else
   LV_ModifyCol(Columnx, "Sort")
return



LB:
Gui,1:default
LV_Delete()
loop,read,%F1%
  {
  LR:=A_LoopReadLine
  if LR=
     continue
  ;stringreplace,LR,LR,",,all
  ;LR:=RegExReplace(LR,"\x20{2,}"," ")       ;-- allow only on space
  LR=%LR%                                    ;-- remove leading space
  stringsplit,C,LR,%s%                       ;-- split with delimiter
  LV_Add("",C1,C2,C3)
  }

LV_ModifyCol(1, "Sort")                        ;-- sort column-1
;LV_ModifyCol(2, "SortAsc")                    ;-- sort column-2
;LV_ModifyCol(1, "Logical SortAsc")
LV_ModifyCol(1,"integer")
LV_ModifyCol(3,"integer")
;LV_ModifyCol(2, "AutoHdr")
LV_Modify(LV_GetCount(), "Vis")              ;-- scrolls to last line
return
;==============================================================

;================= ADD-NEW ====================================
AddUrl:
Gui,2:Font,  S10 CDefault , FixedSys

Gui,2:Add,Text, x1 y5 w80 h20, AA
Gui,2:Add,Edit,   x80 y5 w500 h20 vA21, %A21%

Gui,2:Add,Text,   x1  y30 w80  h20, BB
Gui,2:Add,Edit,   x80 y30 w500 h20 vA22, %A22%

Gui,2:Add,Text,   x1  y60 w80  h20, CC
Gui,2:Add,Edit,   x80 y60 w500 h20 vA23, %A23%

Gui,2:Add, Button, x550 y90 w40 h25, OK
Gui,2:Show, x2 y385 w600 h120, ADD_NEW
return
;---------------------------------------
2GuiClose:
2GuiEscape:
return

2ButtonOK:
Gui,2:submit
if A21=
  {
  Gui,2: Destroy
  return
  }
FILEAPPEND, %A21%%s%%A22%%s%%A23%`r`n,%F1%
Gui,2: Destroy
GoSub, LB         ;-- update LV
return
;============================================================


;============================================================
LW2:
Gui, Submit,nohide
Gui,1:ListView, LV_1


;------- which column  LV_1 is the name of Listview variable ----------------------------
if A_GuiEvent=ColClick
   {
   gosub,cc
   GuiControl, Enable, Header1a
   return
   }
;----------------------------------




/*
if A_GuiEvent=ColClick
   {
   Header_Line =
   Loop, % LV_GetCount( "Col" )         ; Loop for however many columns are in the listview.
     {
     LV_GetText( myHeader, 0, A_INDEX ) ; Get column header.
     Header_Line .= myHeader . "|"      ; Build output data.
     }
  MsgBox, % Header_Line
  Header_Line =
  return
  }
*/


if A_GuiEvent = Normal
  {
  LV_GetText(C1,A_EventInfo,1)
  LV_GetText(C2,A_EventInfo,2)
  LV_GetText(C3,A_EventInfo,3)

  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()
  Goto,SK12
  }

;----------------------------
;=================== MODIFY ============
SK12:
if A_GuiEvent=K

{
GetKeyState,state,F12
if state=D
 {
GuiControl,3:Focus,Name
Gui,3:Font,  S10 CDefault , FixedSys

Gui,3:Add,Text,  x1  y5 w80 h20, AA
Gui,3:Add,Edit,  x80 y5 w500 h20 vA31, %C1%

Gui,3:Add,Text,  x1  y30 w80  h20, BB
Gui,3:Add,Edit,  x80 y30 w500 h20 vA32, %C2%

Gui,3:Add,Text,  x1  y60 w80  h20, CC
Gui,3:Add,Edit,  x80 y60 w500 h20 vA33, %C3%

Gui,3:Add, Button, x550 y90 w40 h25, OK
Gui,3:Show, x2 y385 w600 h120, MODIFY
return
;---------------------------------------
3GuiClose:
3GuiEscape:
Gui, 3:Destroy
return
3ButtonOK:
Gui,3:submit

FileRead, FileContent, %F1%
FileDelete, %F1%
StringReplace, FileContent, FileContent, %C1%%s%%C2%%s%%C3% , %A31%%s%%A32%%s%%A33%
FileAppend, %FileContent%, %F1%
GoSub, LB
Goto,3guiclose
 }
}
;=====================================================



/*
;===== Doubleclick shows only clicked column =========
if A_GuiEvent = DoubleClick
   {
    MouseGetPos,x,y
        {
       if x<%T1A%
          {
          LV_GetText(C1,A_EventInfo,1)
          msgbox, 262208, C1,%c1%
          return
          }
       if x<%T2A%
          {
          LV_GetText(C2,A_EventInfo,2)
          msgbox, 262208, C2,%c2%
          return
          }
       if x<%T3A%
          {
          LV_GetText(C3,A_EventInfo,3)
          msgbox, 262208, C3,%c3%
          return
          }
        }
   }
;=====================================================
*/




;===== Doubleclick shows only content from clicked column =========
if A_GuiEvent = DoubleClick
   {
   gosub,cc
   LV_GetText(C1,A_EventInfo,columnx)
   msgbox, 262208, C1,DoubleClicked on`nRow= %A_EventInfo%`nColumn=%columnx%`nHeader=%thisheader%`nContent=%c1%
   return
   }
;=====================================================







;============= DELETE multiple marked rows ===========
if A_GuiEvent = RightClick
{
C1 =
RF = 0
RFL =
Loop
   {
   RF:=LV_GetNext(RF)
   if RF=0
      {
      ;msgbox,Select a row
      break
      }
   RFL = %RF%|%RFL%
   LV_GetText(C1_Temp, RF, 1)
   C1 = %C1%`n%C1_Temp%
  }

if C1 !=
 {
   msgbox, 262436,Delete,Want you really delete %C1% ?
   IfMsgBox,No
      Return
   Else
   {
      Loop, parse, RFL, |
         LV_Delete(A_LoopField)

     filedelete,%F1%
     Loop % LV_GetCount()
        {
        BX1=
        BX2=
        BX3=
        LV_GetText(BX1,A_INDEX,1)
        LV_GetText(BX2,A_INDEX,2)
        LV_GetText(BX3,A_INDEX,3)
        fileappend,%BX1%%s%%BX2%%s%%BX3%`r`n,%F1%
       }
   }
      C1=
      C2=
      C3=
 }
return
}
return
;===================================================






;-------------- Get Listview  Columnx  --------------------------------------------------------
   CC:
   ;---- user jaysp Fri Aug 20, 2010 3:42 pm  Get Listview columnx
   ;-------- http://www.autohotkey.com/forum/viewtopic.php?t=61655&highlight=clicked+column ---
   ;MouseGetPos,x,y,%Filename1%                   ;-- Get mouse position relative to the window

   MouseGetPos X, Y, WinID, Ctrl
   GuiControlGet, LV_1, Pos                      ;-- Get the x coordinate of the listview relative to the window
   scrollpos := DllCall("GetScrollPos", "UInt", ChildHWND, "Int", 0) ;--Get the position of the scrollbar
   highcoord := LV_1X - scrollpos                ;-- Get the relative position on the x axis

   ;-- Get the widths of all columns
   w_index=0
   Loop % LV_GetCount("Column")
      {
      SendMessage, 4125, A_Index - 1, 0, SysListView321 ;-- Gets the width of each cell
      w_index += 1
      columnWidth%w_index% := ErrorLevel
      }

   ;-- Get the relative position of each cell, see if x falls in the range and display the column
   Loop, %w_index%
      {
      highcoord := highcoord + columnWidth%A_Index%
      lowcoord  := highcoord - columnWidth%A_Index%
      If x between %lowcoord% and %highcoord%
          Columnx:=A_index
      LV_GetText( ThisHeader, 0, columnx )       ; Get column header.
      }
return



GuiClose:
ExitApp




Listview Example -8
----------------------------
;-- 2-Listviews with 3/4 columns 1 hidden see 5 columns
;-- column/header-size fixed
;-- Doubleclick column start specified extensions
;-- RightClick see Row/Column-Info

Code:
MODIFIED=20120124
;-- ahk_basic xp ---

;--  2-Listviews with 3/4 columns 1 hidden see 5 columns
;--  column/header-size fixed
;--  Doubleclick column start specified extensions
;--  RightClick see Row/Column-Info

;-- bron:
;-- http://www.autohotkey.com/forum/topic58717.html
;-- http://www.autohotkey.com/forum/post-507425.html#507425
;-- http://www.autohotkey.com/forum/post-186741.html#186741

;-- tagx listviewx columnx headerx blockx blockedx ------------------------


#SingleInstance, force
#NoEnv
SetTitleMatchMode 2
SetBatchLines, -1

Gui,2:default
OnMessage(0x4E, "WM_NOTIFY")

;-- when doubleclick column-1 (filename) ---------
runthese=jpg,bmp,png,txt,wav,mp3,mp4,flv,vob


;--- width columns , listview, gui
T1a :=100
T2a :=100
T3a :=0
lsw1:=(t1a+t2a+t3a+30)

T1b :=200
T2b :=100
T3b :=100
T4b :=0
lsw2:=(t1b+t2b+t3b+t4b+30)

lvx1:=(10)              ;-- LV1 x-position left border
lvx2:=(lvx1+lsw1+50)    ;-- LV2 x-position left border

Gsw:=(lsw1+lsw2+100)
;---------------------------------------


Gui,2: Add, ListView, x%lvx1%  y5  r10  w%lsw1%  vLV1  gLV -LV0x10 altsubmit, Windir|Size|Fullpath
Gui,2: Add, ListView, x%lvx2%  y5  r10  w%lsw2%  vLV2  gLV -LV0x10 altsubmit, Desktop|Size|Folder|Fullpath


Loop, %A_WinDir%\*.*
    {
     Gui,2: ListView, LV1
     LV_Add("",A_LoopFileName,A_Loopfilesize,A_Loopfilefullpath)
    }
     LV_ModifyCol(1,T1a)
     LV_ModifyCol(2,T2a)
     LV_ModifyCol(3,T3a)

Loop, %A_desktop%\*.*,,1
     {
     Gui,2: ListView, LV2
       StringSplit,CX, a_loopfilefullpath,`\
       C:=(CX0-1)   ; path oneflashback
       D=% CX%C%    ; name from path position -1
     LV_Add("",A_LoopFileName,A_Loopfilesize,D,A_Loopfilefullpath)
     }
     LV_ModifyCol(1,T1b)
     LV_ModifyCol(2,T2b)
     LV_ModifyCol(3,T3b)
     LV_ModifyCol(4,T4b)


Gui,2:Show,x0 y0 w%gsw% h260,Listview_Fixed_Column_Header-%modified%
return
;-------------- end gui show ------------------


;-- listviewx columnx headerx blockx blockieren ------------------------
WM_NOTIFY(wParam, lParam, msg, hwnd) {
    Code:=(~NumGet(lParam+0,8))+1
    Return,Code=306||Code=326 ? True:""
}

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



;------------------ Listview --------------------------
LV:
gui,2: ListView, %A_GuiControl%
Gui,2:submit,nohide
ctrl=%A_GuiControl%

  RN:=LV_GetNext("C")
  RF:=LV_GetNext("F")
  GC:=LV_GetCount()

;------------ rightclick ------------------
;-- http://www.autohotkey.com/forum/post-186741.html#186741
If (A_EventInfo > 0) AND (A_GuiEvent = "RightClick") ;If the user right clicks a row
{   Message=                                         ;Clear our message
   ThisRow:=A_EventInfo                              ;Grab the row number that was clicked
   Columns:=LV_GetCount("Col")                       ;Count the columns (could be pre-defined)
   Loop, %Columns%                                   ;Run once for each column
   {  LV_GetText(Col%A_Index%,0,A_Index)             ;Get header name
      LV_GetText(CellText,ThisRow,A_Index)           ;Get cell contents
      Message.=Col%A_Index% . ": " . CellText . "`n" ;Add header name to cell contents
   }
   msgbox, 262208, Row/Column-Info, %Message%
}
;---------------



;--- doubleclick -------------------
if A_GuiEvent = DoubleClick
   {
   LV_GetText(C1,A_EventInfo,1)
   LV_GetText(C2,A_EventInfo,2)
   LV_GetText(C3,A_EventInfo,3)
   LV_GetText(C4,A_EventInfo,4)

   ;--- x-position columns -----
   if (ctrl="LV1")
      {
      x1:=(lvx1+t1a)
      x2:=(lvx1+t1a+t2a)
      x3:=(lvx1+t1a+t2a+t3a)
      SplitPath,C3, name, dir, ext, name_no_ext, drive
      }
   if (ctrl="LV2")
      {
      x1:=(lvx2+t1b)
      x2:=(lvx2+t1b+t2b)
      x3:=(lvx2+t1b+t2b+t3b)
      x4:=(lvx2+t1b+t2b+t3b+t4b)
      SplitPath,C4, name, dir, ext, name_no_ext, drive
      }

   MouseGetPos,x,y
     {
    if x<%x1%
      {
     if (ctrl="LV1")
        {
        if ext in %runthese%
          run,%c3%
        else
          msgbox, 262208, test, %c1%`n%c2%`n%c3%
         return
        }
     if (ctrl="LV2")
        {
        if ext in %runthese%
          run,%c4%
        else
          msgbox, 262208, test, %c1%`n%c2%`n%c3%`n%c4%
         return
        }
      }

     if x<%x2%
        {
        msgbox, 262208, test,Size=%c2%
        return
        }

     if x<%x3%
       {
       if (ctrl="LV2")
           run,%dir%
       }
     }
   }
;-------
return
;------------------------------------------------



2Guiclose:
exitapp
;=============== end script ==================================


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: Google Feedfetcher and 11 guests


You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group