[Pas2js] Is it possible to keep the text defined in html for a TWebWidget?
Michael Van Canneyt
michael at freepascal.org
Fri Jul 7 17:05:13 CEST 2023
On Fri, 7 Jul 2023, Luca Olivetti via Pas2js wrote:
> El 7/7/23 a les 15:42, Michael Van Canneyt ha escrit:
>>
>>
>> On Fri, 7 Jul 2023, Luca Olivetti via Pas2js wrote:
>>
>>> Let's say I have this in the html
>>>
>>> <button type="button" id="testbutton">Test</button>
>>>
>>> and in code
>>>
>>> MyButton:=TButtonWidget.Create(self);
>>> MyButton.ElementID:='testbutton';
>>> MyButton.Refresh;
>>>
>>>
>>> This will remove the text from the button, unless I add
>>> MyButton.Text:='Test'.
>>>
>>> Is there a way to keep the original text defined in the html?
>>>
>>> This doesn't happen, e.g., with a TDivWidget or a
>>> TCheckboxInputWidget (they both keep the original content).
>>>
>>> I'm using this version of pas2js
>>>
>>>
>>> commit abaa86d44662735e31f1a93663f54152cfe334c0 (HEAD -> main,
>>> origin/main, origin/HEAD)
>>> Author: Michaël Van Canneyt <michael at freepascal.org>
>>> Date: Wed Oct 5 11:04:23 2022 +0200
>>>
>>> * ApplyText introduced, properly get/set empty text
>>
>> There is currently no way. I'm open for suggestions.
>
> OK, not a biggie, and I'd have no idea on how to implement it but...
>
>>
>> Maybe introduce a new value tmAsIs for textmode, and set textmode to tmAsIs
>> as soon as ElementID is set to a non-empty value.
>
> ...I tried to follow the code and I cannot find how a TDivWidget
> preserves the content while a TButtonWidget nukes it (and, btw, I was
> wrong about the TCheckBoxInputWidget, since its caption has to be
> enclosed in a <label>).
For TDivWidget, aForceEmpty is set to false when calling ApplyText from
ApplyWidgetSettings.
But ApplyText does not have this parameter in TButton. A simpler solution is
probably to add the parameter in TButton.ApplyText and pass false in
ApplyWidgetSettings.
Michael.
More information about the Pas2js
mailing list