cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - Help us improve the PTC Community by taking this short Community Survey! X

How to add and remove objects from the list

CHASEONHO
18-Opal

How to add and remove objects from the list

I want to take input and add it to the List.
Like this!

image 1.png
However, the triple and double pointers described in the API are hard to understand
If you know how to take text and add it to the list, please help me
thanks

 

PS.attach code and res file

void ListAdd(char* dialog, ProAppData data)
{
	int names=0,i,labels;
	ProError status;
	int n_labels,n_names;
	char value,test[10];
	char *value_arr = &value;
	char **get_value_arr = &value_arr;

	wchar_t **get_label_arr;



	status = ProArrayAlloc(0,sizeof(char),1,(ProArray*)&get_value_arr);
	status = ProArrayAlloc(0,sizeof(wchar_t),1,(ProArray*)&get_label_arr);


	status = ProUIListNamesGet(dialog, "List1", &names,&get_value_arr);
	status = ProUIListLabelsGet(dialog, "List1", &labels,&get_label_arr);


	get_value_arr[names+1]=(char *)calloc(30,sizeof(char));
	get_value_arr[names+1]="fs\tfs";
	get_label_arr[names+1]=(wchar_t *)calloc(30,sizeof(wchar_t));
	ProStringToWstring(get_label_arr[names+1],"fs\tfs");
	itoa(i,test,10);
	ProMessageDisplay(MSGFIL, (char *)"USER %0s", (char*)get_label_arr[0]);


	status = ProUIListNamesSet(dialog,"List1", names+1,get_value_arr);
	status = ProUIListLabelsSet(dialog,"List1", names+1,get_label_arr);

}

 

(Dialog test_dialog
    (Components
		(SubLayout inputlayout)
        (SubLayout Content)
        (Separator CommitSeparator)
        (PushButton CommitClose)
		(PushButton Ok)
    )
    (Resources
        (Ok.Label "Create")
        (Ok.TopOffset 10)
        (Ok.BottomOffset 10)
        (Ok.LeftOffset 40)
        (Ok.RightOffset 10)
		
		(CommitClose.Label "Cancel")
        (CommitClose.TopOffset 10)
        (CommitClose.BottomOffset 10)
        (CommitClose.LeftOffset 40)
        (CommitClose.RightOffset 10)
		
		(.Label			"Parameter Control Panel")
        (.TopOffset 0)
        (.BottomOffset 0)
        (.LeftOffset 0)
        (.RightOffset 0)
        (.DefaultButton "CommitClose")
        (.Accelerator "Esc")
        (.AttachLeft True)
        (.Layout
			(Grid
				(Rows 1 0) (Cols 1)
				inputlayout
				(Grid
					(Rows 1 0 0)(Cols 1)
					Content
					CommitSeparator
					(Grid
						(Rows 1 1)
						(Cols 1 1)
						Ok	CommitClose
					)
                )
            )
        )
    )
)
(Layout inputlayout
    (Components
        (InputPanel                     param_name_input)
		(InputPanel                     param_value_input)
		(Label                     		param_name_label)
		(Label                     		param_value_label)
		(PushButton                     param_set_btn)
		(RadioGroup						radio)
    )

    (Resources
        (param_name_input.Columns				15)
		(param_name_input.InputType				1)
        (param_name_input.TopOffset				5)
        (param_name_input.BottomOffset			5)
        (param_name_input.LeftOffset			5)
        (param_name_input.RightOffset			5)
        
		(param_value_input.Columns				15)
		(param_value_input.InputType			1)
        (param_value_input.TopOffset			5)
        (param_value_input.BottomOffset			5)
        (param_value_input.LeftOffset			5)
        (param_value_input.RightOffset			5)
		
		(param_set_btn.Label					"Set")
        (param_set_btn.TopOffset				5)
        (param_set_btn.BottomOffset				5)
        (param_set_btn.LeftOffset				5)
        (param_set_btn.RightOffset				5)
		(param_set_btn.AttachRight			True)
		
		(radio.Labels					"Session" "Directory")
		(radio.Names					"Session" "Directory")
		(radio.ButtonStyle				0)
        (radio.TopOffset				5)
        (radio.BottomOffset				5)
        (radio.LeftOffset				5)
        (radio.RightOffset				5)
		(radio.AttachRight			True)
		
		(param_name_label.Label					"Parameter Name:")
        (param_name_label.TopOffset				5)
        (param_name_label.BottomOffset			5)
        (param_name_label.LeftOffset			5)
        (param_name_label.RightOffset			5)
		(param_name_label.AttachLeft			True)
		
		(param_value_label.Label				"Parameter Value:")
        (param_value_label.TopOffset			5)
        (param_value_label.BottomOffset			5)
        (param_value_label.LeftOffset			5)
        (param_value_label.RightOffset			5)
		(param_value_label.AttachLeft			True)
		
        (.Layout
			(Grid (Rows 1 0)(Cols 1 0)
			radio param_set_btn			
				(Grid (Rows 1 1) (Cols 1 1)
					param_name_label
					param_name_input
					param_value_label  
					param_value_input
					
				)
            )
        )
    )
)
(Layout Content
    (Components
        (List List1)
    )
    (Resources
        (List1.Names "as	as""vs	vs")
        (List1.Labels "as	as""vs	vs")
		(List1.ColumnLabel "Name	Value")
		(List1.MinRows	5)
        (List1.TopOffset 0)
        (List1.BottomOffset 0)
        (List1.LeftOffset 0)
        (List1.RightOffset 0)
		(List1.ListType 1)
        (.AttachLeft True)
        (.AttachRight True)
        (.AttachTop True)
        (.TopOffset 16)
        (.BottomOffset 16)
        (.LeftOffset 10)
        (.RightOffset 10)
        (.AttachBottom True)
        (.Layout
            (Grid
                (Rows 1)
                (Cols 1)
                List1
            )
        )
    )
)
4 REPLIES 4

The problem between double pointers and triple pointers has been resolved.
I can now add the list.
We are currently working on implementing the removal.
If anyone is facing the same problem as me, please mail me
We will provide sample code and a dialog resource file.

Hi CHASEONHO,

 

I like to add values to list from text file, kindly share tips or some help document..

 

Regards,

Manjunath S

The first, line of the file is read and stored in a string.
Then it creates a list of the strings.

///

FILE *f;

char **namearr;

wchar_t **labelarr;

int i= 0;

status = ProArrayAlloc(10, sizeof(char *), 1, (ProArray *)&namearr);
status = ProArrayAlloc(10, sizeof(wchar_t *), 1, (ProArray *)&labelarr);

f= fopen("D:\\list.txt","r");

if(f != NULL)
{

char strTemp[255];
char *pStr;

while(1)

{

pStr = fgets( strTemp, sizeof(strTemp), f );

if(pStr == NULL) break;

labelarr[i] = (wchar_t *)calloc(100, sizeof(wchar_t));
namearr[i] = (char *)calloc(100, sizeof(char));

ProStringToWstring(labelarr[i] ,pStr);

ProWstringToString(namearr[i] ,labelarr[i] )

i++;

}

fclose(f);

}

status = ProUIListNamesSet(dialog,"List2",i,namearr);

status = ProUIListLabelsSet(dialog,"List2",i,labelarr);

///

 

Thanks for sharing ...thank you very much..

Top Tags