Setting a textbox returning error 'Unable to resolve the name'

I have a GUI function that defines a few text boxes under the structure S. When calling to update the value of the text box named 'S.Text_for_display' within a seperate function called 'Speak' I recive the error 'Unable to resolve the name 'S.Text_for_display'.'.
function []=Speak(txt)
set(S.Text_for_display,'String','','LineStyle','none','FontSize',14,'FontName','Comic Sans... MS','FitBoxToText','off');
len=length(txt);
for i=1:len;
if i<=len;
Display(txt(1:i));
pause(.05);
else
Display(txt);
end
end
end

1 Comment

for i=1:len;
if i<=len;
Display(txt(1:i));
pause(.05);
else
Display(txt);
end
In a for loop that goes 1:len it is certain that i <= len so there is no point in having the if

Sign in to comment.

Answers (1)

The function does not know what "S" is. You need to pass it as an input.
And the font name 'Comic Sans MS' does not have ellipses (3 dots) in it.
%For cross-check
listfonts
ans = 14×1 cell array
{'Arial' } {'Arial Black' } {'Arial Narrow' } {'Comic Sans MS' } {'Courier' } {'Courier New' } {'Georgia' } {'Helvetica' } {'Impact' } {'Terminal' } {'Times' } {'Times New Roman'} {'Trebuchet MS' } {'Verdana' }

4 Comments

Thanks for the reply. So I actually included the '...' for the fomatting of the question but I reaslise now that this would be bad and would not work, thank you. additionally, how would I pass "S" into the function?
If you want to use ellipses, you should use it after a name-value arguement pair, I've shown an example below -
%Modify function to add S as an input
% v
function []=Speak(txt, S)
set(S.Text_for_display,'String','','LineStyle','none','FontSize',14,...
'FontName','Comic Sans MS','FitBoxToText','off');
len=length(txt);
for i=1:len;
if i<=len;
Display(txt(1:i));
pause(.05);
else
Display(txt);
end
end
end
Ok, I'm still not sure how to parse the acutal textbox into the function here. If i try running your fucntion you have provided It does not recognise the textbox: 'method, property, or field 'Text_for_display' for class 'matlab.graphics.shape.TextBox''
Could you share the struct "S"? Use the paperclip button to attach.
How are you calling the function?

Sign in to comment.

Categories

Products

Release

R2023a

Asked:

on 18 Jan 2024

Commented:

on 20 Jan 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!