Hi, I'm trying to highlight values in a listbox
based on values i read in from a table using DBQuery.
The values are correct compared with the db table.
I then use SetDialogProperty to update the dialog with the variable values.
PROBLEM: only the Text boxes update. ListBoxes do not update. I need the correct ListBox value to be selected.
I believe the properties are correct because I can use GetDialogProperty to read the Dialog values I input by hand or select from the ListBoxes.
SetDialogProperty>Dialog1,Edit2,Text,CUDFS_1_1
SetDialogProperty>Dialog1,MSListBox1,SelectedItems,CUDFS_1_2
SetDialogProperty>Dialog1,MSListBox2,SelectedItems,CUDFS_1_6
SetDialogProperty>Dialog1,Edit3,Text,CUDFS_1_3
SetDialogProperty>Dialog1,MSListBox3,SelectedItems,CUDFS_1_4
SetDialogProperty>Dialog1,MSListBox4,SelectedItems,CUDFS_1_5
Here are the corresponding GetDialogProperty commands.
GetDialogProperty>Dialog1,Edit2,Text,QTY_N_TEST
GetDialogProperty>Dialog1,MSListBox1,SelectedItems,TESTING_FINISH_COMP
GetDialogProperty>Dialog1,MSListBox2,SelectedItems,GR_RED_TAG
GetDialogProperty>Dialog1,Edit3,Text,REASONS
GetDialogProperty>Dialog1,MSListBox3,SelectedItems,HRS_RETEST
GetDialogProperty>Dialog1,MSListBox4,SelectedItems,HRS_REWORK
Many thanks in advance. James.
Highlight Value in ListBox based on variable value
Moderators: Dorian (MJT support), JRL
Highlight Value in ListBox based on variable value
Last edited by Jamball77 on Wed Sep 23, 2015 12:47 pm, edited 2 times in total.
Re: SetDialogProperty from array via DBQuery
Hi, not sure if you can use 'SelectedItems' that way. Until someone can help with that you can always use something like the SetList SRT below:
Code: Select all
Gosub>LoadDialog
Let>target1=Banana
Let>target2=Orange
Gosub>SetList,Dialog1,MSListBox1,target1
Gosub>SetList,Dialog1,MSListBox2,target2
Wait>3
SRT>SetList
Let>LOCALVARS=1
Let>tmpDialog=SetList_VAR_1
Let>tmpObject=SetList_VAR_2
Let>tmptarget=SetList_VAR_3
LowerCase>tmptarget,tmptarget
GetDialogProperty>tmpDialog,tmpObject,Text,tmplist
Separate>tmplist,%CRLF%,tmplist
Let>ct=0
While>ct<tmplist_COUNT
Add>ct,1
LowerCase>tmplist_%ct%,tmplistval
If>tmplistval=tmptarget
Let>SelectedId=%ct%-1
Endif
EndWhile
SetDialogProperty>tmpDialog,tmpObject,SelectedIndex,SelectedId
Let>LOCALVARS=0
END>SetList
SRT>LoadDialog
LabelToVar>Dialog,Dialog
IncludeFromVar>Dialog
Show>Dialog1
END>LoadDialog
/*
Dialog:
Dialog>Dialog1
object Dialog1: TForm
Left = 247
Top = 96
HelpContext = 5000
BorderIcons = [biSystemMenu]
Caption = 'CustomDialog'
ClientHeight = 290
ClientWidth = 202
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = True
ShowHint = True
OnTaskBar = False
PixelsPerInch = 96
TextHeight = 13
object MSListBox1: tMSListBox
Left = 35
Top = 17
Width = 121
Height = 64
ItemHeight = 13
Items.Strings = (
'Apple'
'Banana'
'Tomato')
TabOrder = 0
Text = 'Apple'#13#10'Banana'#13#10'Tomato'#13#10
SelectedIndex = -1
end
object MSListBox2: tMSListBox
Left = 34
Top = 114
Width = 121
Height = 97
ItemHeight = 13
Items.Strings = (
'Green'
'Yellow'
'Blue'
'Orange')
TabOrder = 9
Text = 'Green'#13#10'Yellow'#13#10'Blue'#13#10'Orange'#13#10
SelectedIndex = -1
end
end
EndDialog>Dialog1
*/
Re: SetDialogProperty from array via DBQuery
Thank you Hagchr!
That really helps and does exactly what I need, to highlight a value in listbox based on a variable.
As you pointed out it does seem to be an issue with SelectedItems since TEXT works just fine.
Such a pity, but makes sense that reading/writing a value is different from changing the format of an object.
With gratitude, James.
That really helps and does exactly what I need, to highlight a value in listbox based on a variable.
As you pointed out it does seem to be an issue with SelectedItems since TEXT works just fine.
Such a pity, but makes sense that reading/writing a value is different from changing the format of an object.
With gratitude, James.
Re: Highlight Value in ListBox based on variable value
Followup:
A less elegant but easy fix is to put in a second "Current Values" text box to receive the array variables.
That gives me a field for current values and a second field (listbox) to push values into the database.
A less elegant but easy fix is to put in a second "Current Values" text box to receive the array variables.
That gives me a field for current values and a second field (listbox) to push values into the database.