FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Changing itemlist in a combobox
Posts: 1467
Joined: Mon Oct 10, 2005 11:26 AM
Changing itemlist in a combobox
Posted: Sun Dec 04, 2022 11:58 AM

Hello,

I think I asked this question some years ago, but I can't it find it anymore, nore do I remember the solution that was given then.

This is my question:

In a window, I use a combobox. The list that is defined, need to be changed, depending on changing the data in the window.

How can I change a itemlist of an active combobox in my window?

Thank you very much in advance for any help.

Regards,

Michel D.
Genk (Belgium)


_____________________________________________________________________________________________

I use : FiveWin for (x)Harbour v. 25.12 - Harbour 3.2.0 (May 2025) - xHarbour Builder (January 2020) - Bcc773

Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: Changing itemlist in a combobox
Posted: Sun Dec 04, 2022 12:18 PM
Marc Venken

Using: FWH 23.08 with Harbour
Posts: 1344
Joined: Wed Nov 16, 2005 09:14 PM
Re: Changing itemlist in a combobox
Posted: Sun Dec 04, 2022 12:36 PM
Driessen:
Algo asi?
Code (fw): Select all Collapse
#include "fivewin.ch"
function Prue_Combo()
   local oDlg, oCom1, oCom2, cVar1, cVar2
   local aList1, aList2

   aList1 := {"Opcion1","Opcion2"}

   aList2 := {"Opcion 1 - Item 1", "Opcion 1 - Item2", "Opcion 1 - Iteme3"}
   
   cVar1 := aList1[1]

   cVar2 := aList2[1]



   DEFINE DIALOG oDlg FROM 1,1 TO 300, 600 PIXEL TITLE "Combobox Relacionados"

   @ 20, 10 COMBOBOX oCom1 VAR cVar1 ITEMS aList1 SIZE 130,200 PIXEL OF oDlg ;
            ON CHANGE ( aList2:=MiFunction(oCom1),oCom2:SetItems(aList2 ), oCom2:Set(aList2[1]))

   @ 20,160 COMBOBOX oCom2 VAR cVar2 ITEMS aList2 SIZE 130,200 PIXEL OF oDlg
   
   @ 100,(300/2)-(100/2) BUTTON "Ok" SIZE 100, 20 PIXEL OF oDlg ;
            ACTION oDlg:End()

  
   ACTIVATE DIALOG oDlg CENTERED 

return nil

Function MiFunction(oCom1)
local aResp
IF oCom1:nAt = 1
   aResp :=  {"Opcion 1 - Item 1", "Opcion 1 - Item 2", "Opcion 1 - Iteme 3"}
   ELSE 
   aResp := {"Opcion 2 - Item 1", "Opcion 2 - Item 2", "Opcion 2 - Item 3","Opcion 2 - Item 4"}
ENDIF
Return aResp

Continue the discussion