[Gambas-user] Combobox returns item and item_key

Charlie Reinl Karl.Reinl at ...9...
Thu Aug 13 19:36:58 CEST 2009


Am Montag, den 10.08.2009, 19:49 -0700 schrieb Hugo Chillon:
> For people who looks for a combobox to show items from a database table
> column but need combobox returns item_key from another column, this is a
> class for them:
> 
> ' Gambas class file
> '***************************************************************************
> '*  ComboBoxPlus class
> '*
> '* Autor: Hugo Chillon Estefanell
> '* Date: 09/08/2009
> '*
> '* ComboBoxPlus is a class designed to allow a ComboBox works with 2
> '* columns from a database table. First column for the key_item, second
> '* column for the item. Combobox shows item and ComboBoxPlus.ItemId()
> '* returns key_item
> 
> '* This class call a class (MysqlConnection) to access a database and obtain
> '* a Result object with data. You should use your own method to obtain the
> '* Result object
> '**************************************************************************
> 
> PRIVATE cboBase AS NEW Object[]
> PRIVATE cbo AS ComboBox
> 
> 
> PUBLIC SUB _New(combo AS ComboBox)
>     cbo = combo 
> END
> 
> 
> PUBLIC SUB Populate(strTable AS String, strIndex AS String, strValue AS
> String, strWhere AS String)
>     
>     DIM conn AS MysqlConnection
>     DIM strSQL AS String
>     DIM res AS Result
>     
>     strSQL = "SELECT " & strIndex & ", " & strValue & " FROM " & strTable &
> " " & strWhere
>     
>     conn = NEW MysqlConnection
>     res = conn.RunDSQ(strSQL)
>     IF res.Count > 1 THEN 
>         res.MoveFirst
>         cbo.Add("")
>         cboBase.Add(["", ""])
>         DO WHILE res.Available
>             cbo.Add(res[1])
>             cboBase.Add([res[0], res[1]])
>             res.MoveNext
>         LOOP
>     ENDIF
> END
> 
> 
> PUBLIC FUNCTION ItemId() AS Integer
>   
>     DIM intValue AS Integer
>     
>     intValue = cboBase[cbo.Index][0]
>     RETURN intValue
>   
> END

Salut,

did you know that <object>.Tag is not a String

PROPERTY Tag AS Variant
Returns or sets the control tag. 

This property is intended for the programmer and is never used by the
component. It can contain any Variant value.

So you can use an String[] or what ever you need to  store your  
return-values and set it after having filled the combobox to its TAG.

Asked for the value, you return   combobox.tag[combobox.index] 


-- 
Amicalment
Charlie





More information about the User mailing list