Example with ListView control lswResults ----------------------------------------------- ' Gambas class file PRIVATE sFileArray AS String[] = [""] PRIVATE iKeyArray AS Integer[] = [0] PRIVATE bKeyControlPressed AS Boolean = FALSE PRIVATE bSellectAllPressed AS Boolean = FALSE
PUBLIC SUB Form_Open() sFileArray.Clear 'reset private array iKeyArray.Clear 'reset private array END PUBLIC SUB btnSelectAll_Click() bSellectAllPressed = TRUE lswResults.SelectAll END PUBLIC SUB lswResults_KeyRelease() IF Key.Control = TRUE THEN bKeyControlPressed = FALSE ENDIF END PUBLIC SUB lswResults_KeyPress() IF Key.Control = TRUE THEN bKeyControlPressed = TRUE ENDIF END PUBLIC SUB lswResults_Select() DIM iKey AS Integer = 0 DIM sElement AS String = "" DIM sFile AS String[] = [""] DIM sRow AS String = "" DIM iCounter AS Integer sFile.Clear sRow = Replace$(lswResults.Current.Text, " ", "\n") 'format string sFile = Split(sRow, "\n") 'split row and take only path, reject virus description ' PRINT lswResults.Current.Text ' PRINT sFile[0] 'HERE IS WHAT YOU LOOK FOR ------------------------------- 'if user select with CTRL IF bKeyControlPressed = TRUE THEN 'check if in sFileArray there is a current selection IF sFileArray.Count > 0 THEN 'if there is one user clicked unselect IF sFileArray.Exist(sFile[0]) THEN 'delete entry of current selected item from sFileArray and from iKeyArray iKey = sFileArray.Find(sFile[0]) 'find key sFileArray.Delete(iKey) 'delete selection according found key iKey = iKeyArray.Find(lswResults.Current.Key) 'find key for second array iKeyArray.Delete(iKey) 'delete selection according found key ' lswResults.Current.Selected = FALSE ELSE 'if there is not, add the new selection sFileArray.Add(sFile[0]) iKeyArray.Add(lswResults.Current.Key) ENDIF ELSE 'add into Arrays for first time, sFileArray.Count=0 sFileArray.Add(sFile[0]) iKeyArray.Add(lswResults.Current.Key) ENDIF ELSE IF bSellectAllPressed = TRUE THEN 'if user pressed btnSelectAll sFile.Clear 'clear array sFileArray.Clear iKeyArray.Clear lswResults.MoveFirst 'add all items of listview into arrays FOR iCounter = 0 TO lswResults.Count - 1 sRow = Replace$(lswResults[lswResults.Item.Key].Text, " ", "\n") 'format string sFile = Split(sRow, "\n") 'split row and take only path, reject virus description sFileArray.Add(sFile[0]) iKeyArray.Add(lswResults[lswResults.Item.Key].Key) lswResults.MoveNext NEXT bSellectAllPressed = FALSE ELSE 'user makes single clicks sFileArray.Clear iKeyArray.Clear sFileArray.Add(sFile[0]) iKeyArray.Add(lswResults.Current.Key) ENDIF '-------------------------------------------------------- ' PRINT "----------------------" ' FOR EACH sElement IN sFileArray ' PRINT sElement ' NEXT END On Fri, 2010-11-05 at 15:09 +1100, Michael wrote: > I'm a newbie to Gambas and very impressed. Managed to solve all my > queries and port apps from VB. However I have one problem that has me beat:) > I have a GridView with Mode = Multiple and can select multiple rows; > either sequentially or at random. So far so good as similar to VB. > I want to loop through the selected items and take some action on each > item. eg: Delete the row. > I cannot find a way to read the selected row. The Gridview.Row property > only returns the last selected row. > Typically my grid may contain 1000 rows and I use this function to > delete old records. It would be tedious one at a time. I could get > around it by asking the user to enter a cutoff date or range of row > numbers to delete but this raises the question "What is the point of > having a Multiple mode attribute?" > Thanks > Mike > > ------------------------------------------------------------------------------ > The Next 800 Companies to Lead America's Growth: New Video Whitepaper > David G. Thomson, author of the best-selling book "Blueprint to a > Billion" shares his insights and actions to help propel your > business during the next growth cycle. Listen Now! > http://p.sf.net/sfu/SAP-dev2dev > _______________________________________________ > Gambas-user mailing list > Gambas-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gambas-user ------------------------------------------------------------------------------ The Next 800 Companies to Lead America's Growth: New Video Whitepaper David G. Thomson, author of the best-selling book "Blueprint to a Billion" shares his insights and actions to help propel your business during the next growth cycle. Listen Now! http://p.sf.net/sfu/SAP-dev2dev _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user