[Lazarus] How can i mask an input on dbedit? Maskedit not ready!

Osvaldo Filho arquivostcf at gmail.com
Tue Oct 6 00:38:51 CEST 2009


Michael Van Canneyt wrote:
> 
> 
> On Mon, 5 Oct 2009, Lee Jenkins wrote:
> 
>> Sergei Gorelkin wrote:
>>> Lee Jenkins wrote:
>>>
>>>>
>>>> Definitely related to TXMLDocument.  Apparently, it is either a 
>>>> complete mess and fraught with memory leaks or am misunderstanding 
>>>> how to use it. Although, its not the first XML API I've used.
>>>>
>>>> Once again, its back to Delphi I go :-(
>>>>
>>> Your trouble looks like issue 13605, which was fixed in the meantime.
>>> One way out is to update the FPC; if that's not possible, you might 
>>> want to change your code to look like this:
>>>
>>>
>>>   lRegItem := lRegs.FirstChild;
>>>   while Assigned(lRegItem) do
>>>     begin
>>>       if lRegItem.nodeType = ELEMENT_NODE then
>>>       begin
>>> {1}     lClassName := TDOMElement(lRegItem).GetAttribute('classname');
>>>         lDataTable := ...
>>>         lObjType := ...
>>>         lObjReg := gMapppings.RegisterMapping(lClassName, lDataTable, 
>>> lObjType);
>>>         with lObjReg do
>>>         begin
>>>           lNode := lRegItem.FirstChild;
>>>           while Assigned(lNode) do
>>>             begin
>>>               if lNode.nodeType = ELEMENT_NODE tnen
>>>               begin
>>>                 lpK := ...
>>>                 lPropName := ...
>>>                 lColName := ...
>>>                 lValType := ...
>>>
>>>               //dtInteger, dtFloat, dtString, dtDateTime, dtBookean, 
>>> dtBinary)
>>>                 lObjReg.RegisterProperty(lPropName, lColName,
>>>                   
>>> TFlexDataType(Integer(gDataTypeStrToInt(lValType))), lPK);
>>>               end;  // if lNode.nodeType
>>>               lNode := lNode.NextSibling;
>>>             end;  // while
>>>         end;  // with lObjReg
>>>      end;     // if lRegItem.nodeType
>>>      lRegItem := lRegItem.nextSibling;
>>>    end;       // while
>>>
>>> Note that the change marked as {1} is not related to the problem, it 
>>> just shows how to get the attribute value in a more short way.
>>>
>>
>> I'll give it a try.  I'm updating my snapshot installation of Lazarus 
>> on Windows, though I'm not sure if the fix will be included.
>>
>> Also, Node.NextSibling doesn't seem to work either as it seems to 
>> return the exact same node and results in an endless loop.
> 
> I have really a LOT of XML code in lazarus, and I've never encountered 
> this.
> 
> Apart from private code, the whole of the FPC reference documentation is
> in XML, and is built almost daily. We'd definitely notice a problem of
> this magnitude.
> 

Thanks Michael, that is very reassuring to know.  I've updated my Lazarus 
install with latest snapshot and it seems to be ok as long as I only use 
.FirstSibling and .NextSibling to iterate over elements/nodes.

That seems to work fine.

Thanks again,

--
Warm Regards,

Lee




More information about the Lazarus mailing list