On Thu, 23 Feb 2006 18:05:07 +0200
"A.J. Venter" <[EMAIL PROTECTED]> wrote:

> It's a bug in ipro.
> I checked the code at the stack trace and found this:
> function TIpHtmlInternalPanel.HtmlPanel: TIpHtmlCustomPanel;
> begin
> Result := TIpHtmlPanel(Parent);
>   while (Result.ClassType <> TIpHtmlPanel) do
>     Result := TIpHtmlPanel(Result.Parent);
> end;
> 
> The exception gets thrown in the while line.

It means, the TIpHtmlInternalPanel expects to have a TIpHtmlCustomPanel
parent.
It should be

   while not (Result is TIpHtmlPanel) do

 
> Now WHY they do it this way I do not know, but it means you get a real
> problem  if you derive a component from it.
> I commented out the lines in the function like so:
> function TIpHtmlInternalPanel.HtmlPanel: TIpHtmlCustomPanel;
> begin
> //Result := TIpHtmlPanel(Parent);
> //  while (Result.ClassType <> TIpHtmlPanel) do
> //    Result := TIpHtmlPanel(Result.Parent);
> end;
> 
> And now my test program works as beautifully as you could wish.

?
But now the Result is undefined.

 
> From the context I get the idea this is somehow used if you wish to embed
> two  htmlpanels inside one another, which doesn't affect me - but the
> method they  are using is NOT good because it causes crashes if you derive
> anything (which  changes the classtype of course).
> 
> So do I report a bug ? Or how does this get fixed ?

Please check above fix. If it works, I will change it.

Mattias

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to